github dbt-labs/dbt v2.0.0-rc.2

latest releases: v1.12.6, v1.11.16, v2.0.8...
pre-releaseone month ago

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] table now compatible with MVs (mv_on_schema_change defaults to fail, repopulate_from_mvs_on_full_refresh replays the MV queries), materialized_view supports 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

Don't miss a new dbt release

NewReleases is sending notifications on new releases.