You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Changelog
Added
A string step parameter can list the values it takes. A manifest declares allocate: {type: string, values: [none, revenue, units], default: none}, and a value
outside the list, such as allocate: revenu, is refused with a StepError that names
the allowed values, whether a step wiring sets it or a field mapping or repair recipe
calling a sql_macro does. Before, a misspelled value compiled and the
step ran whichever branch its body fell through to. A manifest is refused if its default is not one of its values, or if a parameter that is not a string declares
them. (#403)
A step input can be optional, so one step serves projects with and without a
source. A sql_model declares it optional: true with typed columns:,
and a wiring may leave it out. The body reads it by name, as the bound relation,
which must carry those columns, or unbound as an empty relation of them. (#402)
Fixed
An entity field no mapping produces is a NULL column of its silver model. It was
left out, so a step whose input requires it compiled and then failed on the engine
(Binder Error: … does not have a column named …). The column is now typed NULL, as a
field only some of a merged entity's sources map already was, so marts and the semantic
layers carry it too. Three kinds stay out: a required field the one mapping omits, a
vector field, and a field spelled as a canonical that a mapped field links, which a
metric's filter would otherwise read as written. A step that requires one of them is
refused at compile. (#404)