What's Changed
Features
- Measure filtering: Support filtering by measures in
query()(#178) - MCP tool: Add
search_dimension_valuesMCP tool for discovering dimension values
Refactoring
- Serialization: Move serialization into dedicated package with singledispatch architecture
- xorq vendored types: Convert
to_untagged()to return xorq-vendored ibis types at the leaf (#203) - Eliminate cloudpickle: Remove cloudpickle from xorq tag serialization (v2.0)
- Deduplicate: Consolidate deserialization, join deprecation, and xorq unwrapping
Bug Fixes
- Preserve mutated group-by columns in
join_manypre-aggregation (#187) - Add join methods to
SemanticFilterforfrom_configcompatibility (#186) - Support multi-level derived dimensions in filters (#182)
- Strip
VARCHAR(N)length from dtype strings in_make_schema(#183) - Make
join_oneuse left outer join by default (Malloy semantics) - Preserve unmatched left-join rows in pre-aggregation
- Resolve ambiguous field reference in multi-way joins with shared column names
- Propagate
is_right_of_manythrough nested joins in pre-aggregation - Compute actual ibis join depth for column rename suffix
- Resolve unprefixed measure names via suffix matching on joined models
- Split join expression in
from_taggedto prevent cross-join on round-trip
Performance
- Compute
COUNT DISTINCTon raw source table when possible
Full Changelog: v0.3.8...v0.3.9