boring-semantic-layer v0.3.14
Highlights
This release fixes joins on plain ibis backends (Snowflake, Databricks, BigQuery), unifies calc-measure compilation on an ibis-native classifier (ADR 0001), and includes several correctness fixes around joins and serialization.
- Fixed
ValueError: Don't know how to handle type <class 'ibis.expr.types.relations.Table'>when joining models on Snowflake / Databricks / BigQuery (#222, fixes #221) - Unified calc measures on the new ibis-native classifier (#262, ADR 0001 phases 1+2)
- Fixed grain mismatch when chaining
with_measuresover joined models (#261) - Fixed serialization content hashing to include BSL metadata (#264)
Why upgrade
- If you're on Snowflake, Databricks, BigQuery, or any other backend xorq doesn't wrap, joined-model queries now execute natively instead of crashing
- The new calc-measure compiler is faster, surfaces clearer errors on type-inference failures, and correctly preserves user casts
- Catalog workflows relying on tag content hashes will now invalidate correctly when BSL metadata changes
Included changes
Fixes
- #222 — handle plain ibis backends in join backend rebinding (fixes #221)
- #261 — preserve preagg + canonical backend through
with_measureson joins - #264 — use
HashingTagso BSL metadata contributes to content hash
Features / refactors
- #262 — unify calc measures on ibis-native classifier (ADR 0001 phases 1+2)
- New
calc_analyzerandcalc_compilermodules - Inline-reduction lift and runtime orchestration
- Windowed totals carried through aggregation (replaces cross-join totals)
- Tighter bare-ref detection, surfaced lift failures, asserted totals substitutions
- New
Upgrade
pip install --upgrade boring-semantic-layer==0.3.14