2.0.0-rc.2
Released September 08, 2026
Features
- [ClickHouse] dbt unit tests are supported; multi-statement SQL containing ClickHouse backslash escapes is now split correctly by the statement splitter (#14585)
- [ClickHouse]
tablenow compatible with MVs (mv_on_schema_change defaults to fail, repopulate_from_mvs_on_full_refresh replays the MV queries),materialized_viewsupports on_schema_change, in-place refresh-schedule updates (MODIFY REFRESH) with safe transition errors, multi-MV update/rename flows and refreshable: false, and projections accept the index form with up-front validation. (#14585) - Add beta support for the Snowflake interactive_table materialization, covering static and dynamic interactive tables and config-change detection for target_lag and warehouse settings (#11798)
Fixes
- Respect full refresh when view_update_via_alter is enabled for Databricks views. (#14359)
- Keep column metadata local to each column instead of inheriting parent resource metadata. (#16097)
- Detect Databricks materialized view query changes and require full refresh when compiled SQL changes (#16123)
- Skip Databricks get_relation_config tag and column-tag metadata queries when the model does not configure tags (#16057)
- Fix state:modified missing a snowflake_interactive_warehouses-only config change, which could cause a --select state:modified run to skip a model whose interactive-warehouse attach/detach reconciliation needed to run
- Fix blank or whitespace-only refresh_warehouse/snowflake_warehouse values being treated as configured, which could bypass interactive_table's target_lag warehouse validation and render an invalid warehouse = clause in generated DDL for both interactive and dynamic tables
- Fix cluster_by change detection for Snowflake dynamic and interactive tables: strip the LINEAR type descriptor SHOW DYNAMIC TABLES wraps cluster_by in, and compare quoted identifiers case-sensitively instead of folding them
- Strip double-quote delimiters from a warehouse name before comparing it case-insensitively during dynamic/interactive table configuration-change detection: SHOW never echoes the quotes back, so a quoted warehouse value never compared equal to its own readback and fired a spurious ALTER on every run
- Treat a single-quoted string literal inside a clustering expression (e.g. to_char(ts, 'MON')) as case-sensitive data during configuration-change detection: the surrounding expression text was folded correctly, but a literal's exact case, and any )/, characters embedded inside it, previously corrupted the comparison and could cause an unnecessary full refresh on every run. Live-verified against Snowflake
Contributors
- @itsnamangoyal (#11798)
- @koletzilla (#14585, #14585)
- @sd-db (#14359, #16097, #16123, #16057)