- reduce CI parallelism by @dataders in #237
- [bug] disable
--limit
onshow
(again) by @dataders in #235 - correct exclude of database by @dataders in #241
- pin to dbt-fabric==1.8.2 due to bug in dbt-fabric
- ignore limit altogether by @dataders in #230
Supporting dbt-core 1.8.0
Decouple imports to common dbt core and dbt adapter interface packages for future maintainability and extensibility.
-
Bump dev requirements
- from pytest~=7.4. to pytest~=8.0.1
- from twine~=4.0.2 to twine~=5.0.0
- from pre-commit~=3.5.0 to pre-commit~=3.6.2
- specify commit SHA of dbt-core and dbt-adapters in dev_requirements.txt, to fix
make dev
-
Inherit dbt-fabric v1.8.0rc2 - Bump adapter packages
- from pyodbc>=4.0.35,<5.1.0" to pyodbc>=4.0.35,<5.2.0
From now on, Apple-silicon users don't have to locally build pyodbc, because M1, M2 binaries is included in pyodbc from 5.1.0 onwards!
- Fix failing test
tests/functional/adapter/test_query_comment.py::TestMacroArgsQueryComments::test_matches_comment
to use correct dbt_version, see dbt-core
- Official release
- Support for dbt-core 1.7
- implement custom
date_spine
andgenerate_series
macro logic for synapse to match nested-CTE limitation
- implement custom
- Decouple
get_catalog
macro (marco override test is skipped as it is not covering the behavior) - Add UTF-8-BOM CSV and exclude from precommit format override
- New/extended adapter test zones
- get_last_relation_modified
- date_spine
- generate_series
- get_intervals_between
- get_powers_of_two
- store_test_failures
- dbt_clone (same target and state)
- seed
- Official release
- Support for dbt-core 1.6
- Dropped support for Python 3.7 (#7082)
- Add support for materialized views (#6911)
- important note! unlike dbt's materialized view, Synapse's materialized view must be created using aggregation and/or "GROUP BY"!
dbt clone (#7258Synapse does not support CLONE)- Revamp dbt debug (#7104)
- Added new adapter zone tests
- constraints
- null_compare
- validate_sql
- equals
- dbt_clone
- Official release
- Support for dbt-core 1.5
- Add support for model contracts by adapting
create_table_as
andcreate_view_as
macros
- Add support for model contracts by adapting
- Define supported constraints in
CONSTRAINT_SUPPORT
Adapter class. - Persist docs via extended properties is not supported in Synapse
- Add adapter tests zones
- caching
- column_types
- constraints
- hooks
- simple_copy
- Official release
- Switch dependency from dbt-sqlserver to dbt-fabric #441
- for Mac users, before running
make dev
, addpyodbc==4.0.39 --no-binary :all:
in dev_requirements.txt - Stackoverflow about pyodbc "Symbol not found: _SQLAllocHandle" error
- for Mac users, before running
- Support for dbt-core 1.4
- Incremental predicates
- Add support for Python 3.11
- Replace deprecated exception functions
- Consolidate timestamp macros
- View https://github.com/dbt-msft/dbt-sqlserver/blob/v1.4.latest/CHANGELOG.md#v140 for latest bugfixes in dbt-sqlserver adapter.
- Added all available tests as of dbt 1.4.6
Full Changelog: https://github.com/microsoft/dbt-synapse/compare/v1.3.2...v1.4.0
You can now create seed tables with different distribution and index strategy by providing required confiuration in dbt_project.yml file #76. The default choice is REPLICATE disttribution and HEAP (no indexing). If you want to override this configuration, the following sample should help.
seeds:
jaffle_shop:
index: HEAP
dist: ROUND_ROBIN
raw_customers:
index: HEAP
dist: REPLICATE
raw_payments:
dist: HASH(payment_method)
index: CLUSTERED INDEX(id,order_id)
Create a new context "seeds:" at the root followed by project name and seed name. In this case the project name is jaffle_shop and seeds are raw_customers and raw_payments. Provide index and distribution values using index and dist keys. Use replicate, round_robin, hash({column name}) as a value. Example: dist: replicate. The raw_customers seed table will be replicated a table. For hash distribution, the user need to provide the vaule HASH(payment_method). Example: dist: hash(payment_method)
To specific index, index as a key and CLUSTERED INDEX({Column1, Column2}), HEAP, CLUSTERED COLUMNSTORE INDEX as a value. Example: index: HEAP. The raw_customers seed table will use heap index strategy. For clustered index, the user need to provide one or more columns to create clustered index on. Example: index: CLUSTERED INDEX(id,order_id). The default value of index and distribution can also be set for all seeds under project name.
Note Multi-column distribution is not supported in this release for seed tables.
Integer seed value set to 0 is ingested as a NULL. Bug fix to handle integer seed value when set to 0. #136.
Make sure to read the changelog for dbt-sqlserver 1.3.0.
- Official compatibility with dbt-core 1.3.0. Python models are not supported in this version.
Make sure to read the changelog for dbt-sqlserver 1.2.0.
- Snapshots with the
merge
strategy now use Synapse's newMERGE
statement
- Seeds with empty values are now correctly inserted as NULL instead of empty strings.
- official release
- see changes in dbt-sqlserver v1.1.0
- Bump dependencies dbt-sqlserver and dbt-core to 1.1.0
- New testing framework
Re-release of v1.0.1 with fixed package.
- re-implement sqlserver's test materialization logic because Synapse adapter can't find it today #74
Please see the following upstream release notes:
Please see the following upstream release notes:
- brings compatibility with dbt-core
v0.20.0
- Fix a bug where snapshots on tables with non-indexable datatypes would throw the error
"The statement failed. Column 'XXXXX' has a data type that cannot participate in a columnstore index. (35343) (SQLExecDirectW)"
#56 thanks MarvinSchenkel - 10+
synapse__
macros no longer have to be defined as they're now auto-defined as part of thev0.20.0
upgrade. Code footprint is now >37 lines smaller!
- fix bug introduced
v0.19.1
where the new macros in dbt-sqlserver#126 were still being used somehow - no longer pin
agate<1.6.2
because it now done as part of dbt 0.19.1
- override new functionality in dbt-sqlserver dbt-sqlserver #126 that allows for cross-database queries. Azure Synapse does not support this, so
sqlserver__
adapter macros that were previously used by dbt-synapse had to be re-implemented assynapse__
macros. #49 - make CI testing auto-start and auto-pause Synapse cluster to save $$$ #47
- Resolves bug where snapshot and seeds materializations weren't working correctly #45 thanks [@alieus]
dbt-synapse
will allow all patches todbt-sqlserver
version 0.19- Per issue with
pyICU
package (fishtown-analytics/dbt/#3161), temporarily pin agate to between1.6.0
and1.6.2
, inclusive, untildbt
0.19.1
is released.
- you must change your profile so that
type=synapse
instead oftype=sqlserver
. The reason is that nowdbt-synapse
now fully inheirits fromdbt-sqlserver
rather than being a fork. The benefit now is that you can havedbt-sqlserver
anddbt-synapse
coexist in the same environment.
- Brings support for
- dbt v0.19.0 (release notes) and
- dbt-sqlserver v0.19.0.1 & v0.19.0 (release notes)
- the snapshot materialization, except for the
MERGE
workaround, now depends entirely on dbt-core's global project. Made possible due to tempdb.INFO_SCHEMA workaround #42 - make the adapter inheirit from
dbt-sqlserver
#32 #33 thanks @jtcohen6 @chaerinlee1 - the snapshot materialization, now depends entirely on dbt-core's global project. See dbt-sqlserver release notes for more info #44
Adds support for:
- SQL Server down to version 2012
- authentication via:
- Azure CLI (see #71, thanks @JCZuurmond !), and
- MSFT ODBC Active Directory options (#53 #55 #58 thanks to @NandanHegde15 and @alieus)
- using a named instance (#51 thanks @alangsbo)
- Adds support down to SQL Server 2012
- The adapter is now automatically tested with Fishtowns official adapter-tests to increase stability when making changes and upgrades to the adapter.
- Fix for lack of precision in the snapshot check strategy. Previously when executing two check snapshots the same second, there was inconsistent data as a result. This was mostly noted when running the automatic adapter tests. NOTE: This fix will create a new snapshot version in the target table on first run after upgrade.
- Adds support for Azure Active Directory as authentication provider
- Fix for lack of precision in the snapshot check strategy. (#74 and #56 thanks @qed) Previously when executing two check snapshots the same second, there was inconsistent data as a result. This was mostly noted when running the automatic adapter tests. NOTE: This fix will create a new snapshot version in the target table on first run after upgrade.
- #52 Fix deprecation warning (Thanks @jnoynaert)
- The adapter is now automatically tested with Fishtowns official adapter-tests to increase stability when making changes and upgrades to the adapter. (#62 #64 #69 #74)
- We are also now testing specific target configs to make the devs more confident that everything is in working order (#75)
-
Adds support for dbt v0.18.0
-
Add CI testing (#19)
-
Remove the external table macros in favor of pulling them directly from
dbt-external-tables
-
Bundle the "
INSERT
&UPDATE
"MERGE
workaround into a transaction that can be rolled back (#23) -
Handle nulls in csv file for seeds (#20)
-
Verifed that adapter works with
dbt
versionv0.18.1
- pull AD auth directly from
dbt-sqlserver
(#13) - hotfix for broken
create_view()
macro (#14) - get
dbt-adapter-tests
up and running (#16)- make
sqlserver__drop_schema()
also drop all tables and views associated with schema - introduce
sqlserver__get_columns_in_query()
for use with testing - align macro args with
dbt-base
- make
- added snapshot functionality
- initial release