github boringdata/boring-semantic-layer v0.3.14

6 hours ago

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_measures over 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_measures on joins
  • #264 — use HashingTag so BSL metadata contributes to content hash

Features / refactors

  • #262 — unify calc measures on ibis-native classifier (ADR 0001 phases 1+2)
    • New calc_analyzer and calc_compiler modules
    • 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

Upgrade

pip install --upgrade boring-semantic-layer==0.3.14

Don't miss a new boring-semantic-layer release

NewReleases is sending notifications on new releases.