Breaking Changes
- Updated query inputs for time series dimensions to use `metric_time` instead of dimension names, since it is now possible for measures to have different time dimensions for time series aggregation. This also removes the restriction that all data sources have the same primary time dimension name. However, users issuing queries might experience exceptions if they are not using `metric_time` as their requested primary time dimension. (plypaul)
- Added enforcement for new reserved keyword `metric_time` (tlento)
- Reordered column output to `time dimension, identifiers, dimensions, metrics`, which could break automation relying on order-dependent parsing of CLI output. We encourage affected users to switch to using the API, and to access the resulting data frame with order-independent (i.e., by name) access to column values. (WilliamDee)
- Removed support for SQLite - expected impact is minimal as the repo has been cut to DuckDB for in memory testing (plypaul)
Added
- Support for specifying measure-specific time dimensions for time series aggregations (plypaul)
- Validation against use of SQL reserved keywords as element names, which previously would have resulted in SQL errors at query time (QMalcolm)
Updated
- Improved code structure around the model validation process (QMalcolm)
- Improved readability of model validation errors in CLI output (QMalcolm)
- Cleaned up DuckDB documentation (yanghua)
- Fixed edge case with model parsing where a constraint like `ds = CURRENT_DATE()` would throw an error (tlento)
- Restructured config parser to rely more on Pydantic's built in object parsing, allowing for more - and more standardized - customization on input types and parsing mechanics (tlento)
- Removed framework operation comments from SQL explain plans by default, added a flag to override (WilliamDee, nhandel)
- Updated Click to 8.1.3 to resolve dependency conflicts and facilitate later addition of command completion (jack-transform)
- Improved developer documentation and workflows for PostgreSQL