Skip to content

Releases: databricks/dbt-databricks

v1.12.2

Choose a tag to compare

@sd-db sd-db released this 09 Jul 11:50
bf1f0c6

dbt-databricks 1.12.2 (Jul 9, 2026)

Features

  • Add catalogs.yml v2 support (requires use_catalogs_v2: true in dbt-core) (#1440)
  • Add skip_optimize model config to opt out of the post-materialization OPTIMIZE call without dropping zorder / liquid_clustered_by / auto_liquid_cluster from the table definition. Useful when OPTIMIZE is delegated to Predictive Optimization or scheduled out of band. Complements the existing run-wide DATABRICKS_SKIP_OPTIMIZE var by allowing project-, folder-, or model-level opt-out via standard dbt config inheritance (#703).
  • Support the connector's Rust kernel backend via connection_parameters: {use_kernel: true} for SQL warehouses, with personal access token or Databricks OAuth (M2M/U2M) auth (requires databricks-sql-connector[kernel] on Python 3.10+; Azure service principals are not supported by the kernel) (#1576)

Fixes

  • Stop dropping existing constraints on incremental runs when contract.enforced is false (#1557)
  • Recognize the skip_not_matched_step merge config in the adapter config schema. It was previously declared with a typo (skip_non_matched_step); the merge macro already read the correct key, so merge behavior is unchanged (#1562).
  • Honor the expression field on primary_key constraints on the V1 materialization path. A primary key declared with expression: RELY (or any trailing clause) previously had its expression silently dropped. (#1551)
  • Apply column-level databricks_tags for incremental models on the V1 materialization path (#1520 closes #1307)
  • Raise a DbtRuntimeError when a Python model job run terminates with a non-success result_state (e.g. FAILED/TIMEDOUT) instead of returning silently (#1477)
  • Fix PK/FK constraints declaring an expression (e.g. RELY) being dropped and re-added on every incremental run. Regression: changing the expression on an existing PK/FK (RELYNORELY, or an expression-form FK's target) is no longer applied on incremental runs — use --full-refresh. (#1552 closes #1513)
  • Honor incremental_apply_config_changes in the V1 incremental merge path, allowing users to skip metadata diff queries (tags, column_tags, constraints, column_masks, tblproperties, describe_extended) when set to false. Matches the existing V2 behavior. (#1467 partially resolves #1402)
  • Fix column-level databricks_tags on Unity Catalog views updated via ALTER (view_update_via_alter: true) (#1526 closes #1525)
  • Apply tblproperties to metric_view models at create time, not only on a later alter/replace run (#1530 closes #1527)
  • Only emit INSERT ... BY NAME in the replace_where/microbatch strategies on DBR 18.0+ (and SQL warehouses), since older clusters reject the BY NAME ... REPLACE WHERE combination with a parse error (#1539 resolves #1532)
  • Fix materialized views always rebuilding because Databricks-internal tblproperties were read as configuration drift; the diff now compares only the configured properties (#1350 closes #1314).
  • Stop metric views with view_update_via_alter from re-issuing a redundant ALTER VIEW ... AS on every run (#1546)
  • Fix column comments being permanently dropped from views when view_update_via_alter issues ALTER VIEW AS; reapply persisted column comments after the query update (#1357)

Under the Hood

  • Raise the databricks-sql-connector upper bound to <4.3.1 to support 4.3.0 (#1518)
  • Raise the dbt-adapters upper bound to <1.25.0 (#1507)
  • Raise the databricks-sdk upper bound to <0.118.0 to pick up 0.117.0, which fixes WorkspaceClient construction failing with CONTEXT_UNAVAILABLE_FOR_REMOTE_CLIENT on Spark Connect clusters (#1517 closes #1252)
  • Raise the dbt-core upper bound to <1.11.13 to include dbt-core 1.11.12 (#1578)
  • Instrument add_query, get_relation_config, is_uniform, has_dbr_capability, and is_cluster for dbt's record/replay framework (test-only, no runtime impact) (#1508)
  • Add a weekly Kernel Integration Tests workflow that runs the functional suite against the SQL-warehouse profile through the connector's Rust kernel backend (DBT_DATABRICKS_USE_KERNEL=1) (test-only, no runtime impact) (#1576).
  • Substantially expand adapter test coverage across the functional and unit suites: broaden functional coverage for materializations (table replace-in-place, view→table conversion), incremental strategies and full-refresh recreate, constraints and row filters, tags and column tags, streaming tables, materialized and metric views, copy_into, clone, seeds, SQL UDFs, split_part, sync_all_columns type widening, catalog table_format, and Python models — shifting assertions to server-observable state rather than compiled SQL or log output; add unit coverage for the live event/logging classes; make stateful functional tests rerun-safe; and add CI upkeep (a weekly Python-model notebook-folder purge and a longer unit-test timeout) (test-only, no runtime impact). (#1511, #1512, #1514, #1521, #1522, #1523, #1524, #1528, #1529, #1531, #1533, #1534, #1535, #1536, #1537, #1538, #1541, #1542, #1543, #1544, #1545, #1548, #1550, #1553, #1558, #1559, #1564, #1565, #1566, #1568, #1569, #1570, #1571, #1573, #1579, #1580, #1581, #1582)

New Contributors

Full Changelog: v1.12.1...v1.12.2

1.12.1

Choose a tag to compare

@sd-db sd-db released this 10 Jun 13:49
86d26c9

dbt-databricks 1.12.1 (June 10, 2026)

Features

  • Expose job_id, job_run_id, and task_run_id from the Databricks Jobs dbt_task runtime in adapter_response, enabling correlation between dbt runs and Databricks workflow executions via run_results.json by @sd-db in #1451, closes #722
  • Add support for SPOG (Single Point of Gateway) hosts: account-level vanity URLs with ?o=<workspace-id> in http_path route correctly for both data-plane (SQL) and control-plane (REST/Jobs/Workspace API) traffic. Requires databricks-sql-connector >= 4.2.6 and databricks-sdk >= 0.76.0. by @sd-db in #1479

Fixes

  • Ignore the server-set delta.parquet.compression.codec tblproperty when diffing relation configs, so streaming tables and materialized views are not flagged as changed after the backend started stamping it automatically by @sd-db in #1489
  • Fix missing f-string prefix in JobRunsApi.submit debug log by @Dev-X25874 in #1471
  • Fix capability-branching macros falling through to their legacy path at parse/compile time on SQL warehouses. The parse-time stub of has_dbr_capability now returns True on warehouse profiles for capabilities flagged sql_warehouse_supported, so macros select the modern branch during compilation instead of the legacy fallback. by @sd-db in #1449, closes #1331
  • Fix snapshots not applying databricks_tags on columns by @themattmorris in #1442, closes #1441
  • Skip DESCRIBE TABLE EXTENDED ... AS JSON for foreign/federated tables in get_columns_in_relation, avoiding repeated failures and extra latency on those sources by @willweld in #1472
  • EXTRACT_CLUSTER_ID_FROM_HTTP_PATH_REGEX now stops the capture at ? / &, so any trailing query string on http_path no longer corrupts the extracted cluster id. Latent issue on legacy hosts; the fix unblocks SPOG cluster paths. by @sd-db in #1479
  • Gate column-level constraints on contract.enforced to match the existing model-level gate, ensuring column-level NOT NULL / PK / FK / CHECK constraints are only applied when contract.enforced: true under use_materialization_v2: true by @sd-db in #1470, closes #1381
  • Fix managed Iceberg incremental models configured with partition_by silently losing their clustering after the first incremental run. Managed Iceberg stores partition_by as liquid clustering server-side, so the reconciler now treats partition_by as the desired clustering and no longer issues a spurious ALTER TABLE ... CLUSTER BY NONE by @sd-db in #1496, closes #1495

Under the Hood

  • Defer SDK Config construction to connection-open time so offline paths (dbt parse/list/compile) don't trigger the host-metadata probe introduced in databricks-sdk>=0.103; as a side effect, auth errors now surface at first connection rather than during profile parsing. by @sd-db in #1474
  • Bump ceilings on databricks-sdk (now <0.105.0) and databricks-sql-connector[pyarrow] (now <4.3.0) to admit newer releases; floors unchanged. by @sd-db in #1474
  • BREAKING: users who relied on column-level constraints (NOT NULL, primary key, foreign key, check) being applied under use_materialization_v2: true without contract.enforced: true must now set contract.enforced: true explicitly on the model. by @sd-db in #1470
  • Bump upper bound of dbt-core to <1.11.12 to include dbt-core 1.11.9, 1.11.10, and 1.11.11 by @sd-db in #1505

Full Changelog: v1.12.0...v1.12.1

v1.12.0

Choose a tag to compare

@sd-db sd-db released this 18 May 08:56
f91eb2a

Features

  • Add support for metric views as a materialization by @benc-db in #1285
  • Add support for row filters by @sd-db in #1294
  • Add support for Python UDFs by @sd-db in #1336
  • Add support for key-only databricks_tags for table and column tagging. This can now be configured by setting tag values to empty strings "" or None. by @canbekley in #1339
  • Fetch relation metadata like constraints, column masks, row filters, etc with a single DESCRIBE TABLE EXTENDED ... AS JSON call, replacing multiple information_schema queries. Falls back to information_schema on older runtimes. Gated behind use_describe_as_json_for_relation_metadata behavior flag, off by default. by @tejassp-db in #1432
  • Support SCHEDULE EVERY and TRIGGER ON UPDATE refresh modes for materialized views and streaming tables, with parser and diff coverage so relations whose actual refresh is not CRON no longer crash on subsequent runs by @sd-db in #1434, closes #1293

Fixes

  • Fix metric_view failing with METRIC_VIEW_INVALID_VIEW_DEFINITION when models use bare {{ ref(...) }} for the source: field by @sd-db in #1430, closes #1361
  • Fix RefreshConfig.__eq__ self/other typo where two configs with the same cron but different time_zone_value compared equal by @sd-db in #1434
  • Fix streaming-table DROP-SCHEDULE path that was silently filtered out of the changeset by @sd-db in #1434
  • Use pydantic v1-compatible API in refresh.py so the adapter imports on environments shipping pydantic v1 by @sd-db in #1461

Under the Hood

  • BREAKING: databricks_tags defined at different hierarchy levels (e.g. project-level and model-level) now merge additively instead of the child config completely replacing the parent. by @canbekley in #1340
  • Skip information_schema.tags and information_schema.column_tags metadata fetches when table tags and column tags are not configured on a model. by @tejassp-db in #1387

Full Changelog: v1.11.8...v1.12.0

v1.11.8

Choose a tag to compare

@sd-db sd-db released this 11 May 09:18
82be9a6

What's Changed

Features

Fixes

  • fix: enforce 255-character identifier length limit for Databricks relations by @psaikaushik in #1391
  • fix: prevent spurious MicrobatchConcurrency warning on every run (#1406) by @sd-db in #1409
  • fix: prevent _cache_dbr_capabilities from caching None-version entries (#1398) by @sd-db in #1414
  • fix: missing metadata handling in is_hudi and is_iceberg by @aarushisingh04 in #1435
  • test: fix failing TestStreamingTableLiquidClusteringChanges by @sd-db in #1436
  • fix: stop emitting insert_overwrite noise warning on every run (#1305) by @sd-db in #1425
  • fix: warn on contract.enforced=true for materialized_view by @sd-db in #1421
  • fix: suppress use_managed_iceberg warning for non-Iceberg projects by @tejassp-db in #1429
  • fix: refresh materialized_view when databricks_tags is set (#1419) by @sd-db in #1424
  • fix: prevent agate type-conflict during catalog merge (#1392) by @sd-db in #1428
  • fix: suppress warning on materialization v2 behavior flags. by @tejassp-db in #1431

New Contributors

Full Changelog: v1.11.7...v1.11.8

v1.11.7

Choose a tag to compare

@sd-db sd-db released this 20 Apr 05:07
b1047b5

What's Changed

Features

  • feat: Add Notebook-scoped packages for command submits or notebook job run by @fedemgp in #1321

Fixes

  • fix: convert workflow job spec to SDK dataclasses before jobs.create() (#1338) by @aarushisingh04 in #1364
  • fix: enable TestWorkflowJob functional test that was unreachable on all profiles by @sd-db in #1401
  • fix: prevent duplicate alias in --empty mode for inline ref/source by @sd-db in #1397
  • fix: add insert-by-name support to microbatch and replace_where strategies (#1338) by @aarushisingh04 in #1348
  • fix: capability detection for named compute (databricks_compute) by @trouze in #1355

Under the Hood

  • chore: bump dbt-core upper bound to <1.11.9 by @sd-db in #1400
  • feat(PECOBLR-2328): bump databricks-sql-connector upper bound to <4.1.6 by @tejassp-db in #1363

New Contributors

Full Changelog: v1.11.6...v1.11.7

v1.11.6

Choose a tag to compare

@sd-db sd-db released this 11 Mar 09:55
65b24ca

What's Changed

Features

Fixes

New Contributors

Full Changelog: v1.11.5...v1.11.6

v1.12.0a1

v1.12.0a1 Pre-release
Pre-release

Choose a tag to compare

@sd-db sd-db released this 26 Feb 16:18

What's Changed

Full Changelog: v1.11.5...v1.12.0a1

v1.11.5

Choose a tag to compare

@sd-db sd-db released this 19 Feb 19:19
24325a3

What's Changed

  • Fix: Retain multiple foreign-keys from one table to another after an incremental run by @Ewan-Keith in #1296
  • fix: Use DROP + CREATE for MV partition_by changes by @benc-db in #1327
  • chore: Allow dbt-core 1.11.6 by @QMalcolm in #1322

New Contributors

Full Changelog: v1.11.4...v1.11.5

v1.10.19

Choose a tag to compare

@benc-db benc-db released this 21 Jan 20:29

What's Changed

  • chore: Updating the dbt-core pin for 1.10.latest by @zqureshi in #1306

Full Changelog: v1.10.18...v1.10.19

v1.10.18

Choose a tag to compare

@benc-db benc-db released this 13 Jan 21:23
a07fcf4

What's Changed

  • chore: Updating dbt-common and dbt-adapter pins for 1.10.x by @benc-db in #1300

Full Changelog: v1.10.17...v1.10.18