Skip to content

Latest commit

 

History

History
326 lines (218 loc) · 21.6 KB

File metadata and controls

326 lines (218 loc) · 21.6 KB

Changelog

  • This file provides a full account of all changes to dbt-snowflake
  • The format is based on Keep a Changelog, adheres to Semantic Versioning, and is generated by Changie
  • Changes are listed under the (pre-)release in which they first appear
  • Subsequent releases include changes from previous releases
  • "Breaking changes" listed under a version may require action from end users or external maintainers when upgrading to that version
  • Do not edit this file directly. This file is auto-generated using changie
  • For details on how to document a change, see the contributing guide

dbt-snowflake 1.12.0-rc1 - July 09, 2026

Features

  • snowflake__generate_database_name reads catalog_database from the catalog relation via build_catalog_relation; when set it takes highest priority over model database config and target.database. catalog_database is now surfaced on BuiltInCatalogRelation and IcebergRestCatalogRelation. (#2004)

Fixes

  • Allow Workload Identity Federation (e.g. OIDC) auth to use a token without a user by exempting the workload_identity authenticator from the token/user profile validation (#)

Dependencies

  • bump dbt-adapters lower bound to 1.24.4 to pick up catalog_database support (#2053)

dbt-snowflake 1.12.0-b2 - June 15, 2026

Fixes

  • Use SHOW USER FUNCTIONS in list_function_relations_without_caching to filter built-in functions server-side; eliminates per-schema large-result chunked S3 fetches that saturated customer-owned VPCe stage endpoints (#1973)

Dependencies

  • Add upper bound <2.0 on dbt-core to prevent pip from resolving to dbt-core 2.0 (Fusion engine), which is incompatible with the python adapter (#2013)

dbt-snowflake 1.12.0-b1 - May 22, 2026

Breaking Changes

  • Add transient support for Snowflake dynamic tables via transient config option and snowflake_default_transient_dynamic_tables behavior flag. (#716)

Features

  • Add COPY GRANTS support for dynamic tables to inherit object-level privileges during table creation and replacement (#1154)
  • Introduction of Workload Identity Federation as a supported method of authentication to Snowflake (#1234)
  • Add information on number of rows in CTAS (#1531)
  • Add snowflake_initialization_warehouse parameter for dynamic tables (#1566)
  • Add immutable_where parameter for dynamic tables (#none)
  • Add support for Snowflake Programmatic Access Token (PAT) authentication (#1688)
  • Support PyPI packages for Python UDFs - when packages are specified in function config, they are templated into the CREATE statement (PACKAGES = (...)) for scalar and aggregate Python UDFs (#1737)
  • Add scheduler configuration support for Snowflake dynamic tables, enabling dbt-managed refresh scheduling that is decoupled from upstream and downstream dynamic table dependencies. (#none)
  • Add change_tracking support for regular Snowflake tables. (#722)
  • Add refresh_warehouse config for Snowflake dynamic tables, allowing a separate warehouse for self-refresh independent of the DDL execution warehouse (#1193)
  • Add support for iceberg_version config to enable Iceberg V3 table creation via model config or catalogs.yml adapter_properties. (#1779)
  • Add support for the Snowflake COPY TAGS parameter in CREATE OR REPLACE TABLE, clone operations, and built-in Iceberg table creation (#1857)
  • Added support for JS UDFs (#1859)
  • Added support for --empty in dbt seed (#1865)
  • Add tmp_relation_type=transient support for incremental models, enabling Snowflake lineage tracking; add snowflake__resolve_incremental_tmp_relation dispatch macro for controlling tmp relation destination (#1893)
  • Add bridge_v2_catalog support: _v2_to_v1_type, _v2_table_format (uppercase), _translate_v2_properties (linked field map), and Capability.CatalogsV2 (#1920)

Fixes

  • Enable discovering pre-existing functions by updating list_relations_without_caching to include function relations (#1488)
  • Add override of diff_column_data_types to preserve collation while altering column (#1258)
  • Fix record/replay support for cursor.stats attribute access. (#1573)
  • Add cluster_by ALTER support for Snowflake dynamic tables. (#706)
  • equals macro now uses IS NOT DISTINCT FROM clause for comparison (#1663)
  • When persist_docs.columns is enabled, dbt now warns about columns defined in YAML that don't exist in the database and filters them via the validate_doc_columns helper. (#1690)
  • Fix PARTITION BY clause placement in CREATE ICEBERG TABLE DDL for Snowflake built-in catalog (#1720)
  • Fix schema mismatch error for structured types (OBJECT, ARRAY, MAP) in Iceberg v3 tables by normalizing VARCHAR(134217728) to VARCHAR(16777216) (#1721)
  • Use INSERT OVERWRITE to make dbt seed atomic on Snowflake, preventing concurrent readers from seeing an empty table between truncate and insert (#740)
  • Add regression test for unit test fixture string values being silently truncated when database column has a narrow varchar type (#1806)
  • Normalize show objects results to avoid type inference edge cases (#1826)
  • Fix ALTER DYNAMIC TABLE with immutable where sometimes causing a syntax error (#1836)
  • Fix Python incremental __dbt_tmp being created as a permanent table, restore the transient config for Python materialized='table', and accept tmp_relation_type='table' for Python models. (#1928)
  • Add snowflake__persist_docs override and warn from snowflake__alter_column_comment so persist_docs emits the missing-column warning on Snowflake without an extra get_columns_in_relation call (#1937)

Under the Hood

  • leverage new expanded_data_type field to avoid impacting downstream use cases for data_type (#1510)

Dependencies

  • Update dbt-adapters dep to 1.22.3 (#1528)
  • Bump dbt-adapters floor to 1.24.1 for catalogs v2 and JS UDF support (#1963)

Contributors

dbt-snowflake 1.11.0-rc3 - December 17, 2025

Features

  • Log when underscores in Snowflake account names are replaced with hyphens. (#1467)

Fixes

  • Ensure selection time filter timezone matches the delete filter for microbatch (#955, #892)
  • Correct volatility specification for python functions (#1504)

Contributors

dbt-snowflake 1.11.0-rc2 - December 10, 2025

Features

  • Add support for UDF/UDAF default arguments (#1442)
  • Add support for py3.13 (#1475)

Fixes

  • Preserve collation when altering a column size (#1258)

Under the Hood

  • Update default python runtime version (#1492)

Contributors

dbt-snowflake 1.11.0-rc1 - November 19, 2025

Features

  • Add support for python UDFs (#1410)
  • Allow partition_by model config for Snowflake Iceberg tables (#1349)
  • Add support for python aggregate functions (#1432)

Dependencies

  • Bump minimum dbt-adapters to 1.19.0█ (#1421)

Contributors

dbt-snowflake 1.11.0-b2 - November 04, 2025

Features

  • Add cluster by config in Snowflake for dynamic tables (#706)
  • Remove catalog from target_relation in incremental macro (#1376)
  • Add basic support for materializing tables in a Glue Catalog Linked Database with Iceberg REST (#1377)
  • Add platform_detection_timeout_seconds configuration param to disable eager metadata detection in the snowflake-connector (#1278)
  • Support volatility setting in sql UDFs (#1345)

Fixes

  • Set client prefetch threads to 1 to prevent deadlock at exit (#1368)

Under the Hood

  • Improve snowflake connector log handling (#1399)
  • Update bigquery job handling to invoke job.cancel on timeout (#1355)
  • Test handling of unknown function macro lookup (#1344)

Dependencies

  • Upgrade snowflake-connector-python to 4.0.0 (#1368)
  • Drop support for python 3.9 (#1412)

Contributors

dbt-snowflake 1.11.0-b1 - October 07, 2025

Features

  • Support Iceberg REST with Catalog Linked Databases in Snowflake (#1251)
  • Add support for incremental materializations using iceberg rest catalog / catalog linked db (#1123)
  • Support for scalar functions (#1292)

Fixes

  • Fix adapter.get_relation to find quoted case-sensitive relations (#694)
  • quote columns when altering tables for incremental materialization (#695)
  • fix table and column descriptions for snowflake iceberg tables (#1015)
  • Rename DT temp tables to avoid problematic drops (#713)
  • Omit external volume from DDL when not provided in the YAML file (#772)
  • fix issue where incorrect varchar size is applied for iceberg table columns (#1257)
  • handle non-model node types being passed to generate_database_name (#1309)
  • Fix references to function properties in funciton macros (#1365)

Dependencies

  • bump dbt-adapters version pin floor to >=1.16.6 (#1328)

Contributors

dbt-snowflake 1.10.0-rc3 - June 24, 2025

Features

  • Add support for optional iceberg builtin catalog relation parameters for data retention/extension, storage serialization & change tracking (#1158)
  • Add 's3_stage_vpce_dns_name' session parameter (#1161)

Under the Hood

  • remove reliance on setting session quoted_identifiers_ignore_case parameter to normalize snowflake metadata queries (#1159)

Dependencies

  • update the lower bound for dbt-adapters version in dbt-snowflake to >=1.16 (#1148)

Contributors

dbt-snowflake 1.10.0-rc2 - June 04, 2025

Features

  • Add row_access_policy and table_tag config for Snowflake models (#697)
  • Use catalog_name as signifier for logical catalog (#1134)

Under the Hood

  • populate file_format from top level integration config field (#1134)

Contributors

dbt-snowflake 1.10.0-rc1 - May 28, 2025

Fixes

  • Set append=True as default query comment append behaviour (#1066)
  • Apply cluster keys via a separate ALTER statement after creating a table via a CTAS statement. (#1071)
  • Respect QUOTED_IDENTIFIERS_IGNORE_CASE with dynamic tables. (#993)

Under the Hood

  • Remove enable_iceberg_materializations behavior flag now that 2025_01 is required (#1025)
  • Expand snapshot testing. (#1068)
  • Raise the dbt-adapters pin to 1.14.3 to make dbt-adapter dependency resolution more reliable for higher versions of snowflake. (#1098)

dbt-snowflake 1.9.4 - May 02, 2025

Fixes

  • correct cluster_by type check to return str as-is (#1050)

dbt-snowflake 1.9.3 - April 29, 2025

Breaking Changes

  • Update iceberg_managed catalog type to built_in (#1011)

Features

  • Add support for Snowflake's managed Iceberg catalog via dbt's catalog framework (#932)

Fixes

  • Correctly detect Iceberg tables when using multiple databases. (#846)
  • Dynamic table metadata queries now ignore the QUOTED_IDENTIFIERS_IGNORE_CASE setting (#917)
  • datetime.datetime.utcnow() is deprecated as of Python 3.12 (#980)
  • Fix regression in list_relations pagination that did not properly handle projects with more than 1,000 models (#989)
  • Pin certifi library to address regression in version 2025.4.26 (#1027)

Under the Hood

  • Simple fix to record/replay annotation. (#761)
  • Update list_relations_without_caching macro to reuse the same query on pagination and handle the quoted_identifiers_ignore_case setting (#967)

Contributors

dbt-snowflake 1.9.2 - March 07, 2025

Features

  • Support MicrobatchConcurrency (#1260)
  • Added support for custom iceberg base_location_root (#1284)
  • Add insert_overwrite 'incremental' strategy. (#736)

Fixes

  • Fix parsing of the VECTOR type (#1098)
  • Use timestamp_tz type in microbatch delete DDL (#1256)
  • AUTO should no longer lead to rebuilds of dynamic tables. (#1267)
  • Loosen pin for snowflake-connector-python to pin at 3.x (#835)

Under the Hood

  • Move from setup.py to pyproject.toml and to hatch as a dev tool (#1250)
  • Use new batch context variables over node.config.__dbt_internal ones (#1263)
  • Update default Python version for python models (#1203)
  • Expand types allowed in columns to allow structured types. (#310)

Security

  • Resolve CVE-2025-24794 (#859)

Contributors

Previous Releases

For information on prior major and minor releases, see their changelogs: