Skip to content

v1.12.0rc1

Pre-release
Pre-release

Choose a tag to compare

@axellpadilla axellpadilla released this 29 Jul 22:19
f51fd39

dbt-sqlserver v1.12.0rc1

Together with @Benjamin-Knight and @joshmarkovic, we used the releases leading up to v1.11.0 to bring the adapter closer to current dbt-core versions while fixing several bugs along the way.

The v1.12.x release series formalizes that work and begins addressing the deprecations and behavior changes required to align the adapter with upcoming dbt-core v2.0 behavior and its pending migration. This includes support for the v2 parser, which will be available for use in this project. Please leave any insights on discussions.

Important behavior changes

This release changes several defaults. Review the following items carefully before upgrading.

  • pyodbc is no longer included in the default installation.

    You must explicitly choose and install the backend you want to use, suggested ADBC if you want to test future compatibility (mostly user pass login), or mssql-python otherwise.

  • dbt_sqlserver_use_dbt_transactions now defaults to True.

    dbt-managed transaction hooks now emit real BEGIN TRANSACTION and COMMIT TRANSACTION T-SQL statements instead of no-ops.

    As a result, when a model fails, its statements are rolled back rather than potentially leaving partial results behind under autocommit.

    Setting this option to False preserves the legacy autocommit behavior. This option is deprecated and will be removed in a future release.

  • dbt_sqlserver_use_native_string_types now defaults to True.

    String types now use the following mappings:

    • STRINGVARCHAR(MAX)
    • NCHARNCHAR(1)
    • NVARCHARNVARCHAR(4000)

    Previously, the adapter used legacy mappings such as VARCHAR(8000) and CHAR(1).

    Setting this option to False preserves the legacy behavior. This option is deprecated and will be removed in a future release.

  • An experimental ADBC backend is now available.

    Configure it with:

    backend: adbc

    This backend provides an alternative to pyodbc and mssql-python. It is built on [ADBC](https://arrow.apache.org/adbc/) and connects to SQL Server through go-mssqldb rather than an ODBC or DB-API bridge.

    Install it with the dbt-sqlserver[adbc] extra and the separate driver binary installed through the dbc CLI.

    The initial implementation supports SQL Server username-and-password authentication only.

    See [docs/adbc_backend.md](docs/adbc_backend.md) and [#771](#771) for details.

What's Changed

  • Added dbt-core 1.12 compatibility, Python 3.14 support, and transaction-safety fixes by @axellpadilla in [#772](#772)
  • Added a workflow to synchronize the main branch in preparation for the default-branch migration by @axellpadilla in [#781](#781)
  • Added a compiler error for the deprecated sql_header configuration, with guidance to use pre_hooks or query_options, by @axellpadilla in [#777](#777)
  • Added the experimental ADBC backend by @axellpadilla in [#783](#783)

Full Changelog: [v1.11.0...v1.12.0rc1](v1.11.0...v1.12.0rc1)