dbt-adapters 1.16.5__tar.gz → 1.16.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of dbt-adapters might be problematic. Click here for more details.
- dbt_adapters-1.16.7/.changes/1.16.7.md +21 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/CHANGELOG.md +9 -37
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/PKG-INFO +1 -1
- dbt_adapters-1.16.7/src/dbt/adapters/__about__.py +1 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/base/impl.py +8 -13
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/catalogs/__init__.py +1 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/catalogs/_exceptions.py +7 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/exceptions/compilation.py +12 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/base.py +85 -2
- dbt_adapters-1.16.7/src/dbt/adapters/record/serialization.py +63 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/sql/impl.py +4 -1
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/snapshots/helpers.sql +1 -1
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/tests/unit.sql +3 -10
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/unit_test_sql/get_fixture_sql.sql +4 -7
- dbt_adapters-1.16.5/.changes/1.16.1.md +0 -8
- dbt_adapters-1.16.5/.changes/1.16.2.md +0 -9
- dbt_adapters-1.16.5/.changes/1.16.3.md +0 -10
- dbt_adapters-1.16.5/.changes/1.16.4.md +0 -12
- dbt_adapters-1.16.5/.changes/1.16.5.md +0 -5
- dbt_adapters-1.16.5/src/dbt/adapters/__about__.py +0 -1
- dbt_adapters-1.16.5/src/dbt/adapters/record/serialization.py +0 -31
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.0.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.1.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.1.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.10.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.10.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.10.2.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.10.3.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.10.4.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.11.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.12.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.13.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.13.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.13.2.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.14.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.14.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.14.3.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.14.4.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.14.5.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.14.6.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.14.7.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.14.8.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.15.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.15.2.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.15.3.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.15.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.16.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.2.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.3.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.3.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.3.2.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.3.3.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.4.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.4.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.5.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.6.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.6.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.7.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.7.1.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.7.2.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.8.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/1.9.0.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/header.tpl.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changes/unreleased/.gitkeep +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.changie.yaml +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/.gitignore +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/CONTRIBUTING.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/LICENSE +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/README.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/hatch.toml +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/pyproject.toml +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/base/README.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/base/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/base/column.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/base/connections.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/base/meta.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/base/plugin.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/base/query_headers.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/base/relation.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/cache.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/capability.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/catalogs/_client.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/catalogs/_constants.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/catalogs/_integration.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/clients/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/clients/jinja.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/contracts/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/contracts/connection.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/contracts/macros.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/contracts/relation.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/events/README.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/events/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/events/adapter_types_pb2.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/events/base_types.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/events/logging.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/events/types.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/exceptions/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/exceptions/alias.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/exceptions/cache.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/exceptions/connection.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/exceptions/database.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/factory.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/protocol.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/py.typed +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/cursor/cursor.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/cursor/description.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/cursor/execute.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/cursor/fetchall.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/cursor/fetchmany.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/cursor/fetchone.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/cursor/rowcount.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/record/handle.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/reference_keys.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/relation_configs/README.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/relation_configs/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/relation_configs/config_base.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/relation_configs/config_change.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/relation_configs/config_validation.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/sql/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/sql/connections.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/adapters/utils.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/dbt_project.yml +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/docs/overview.md +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/apply_grants.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/columns.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/freshness.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/indexes.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/metadata.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/persist_docs.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/relation.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/schema.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/show.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/timestamps.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/adapters/validate_sql.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/etc/datetime.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/etc/statement.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/generic_test_sql/accepted_values.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/generic_test_sql/not_null.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/generic_test_sql/relationships.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/generic_test_sql/unique.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/get_custom_name/get_custom_alias.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/get_custom_name/get_custom_database.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/get_custom_name/get_custom_schema.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/configs.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/hooks.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/clone/can_clone_table.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/clone/clone.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/clone/create_or_replace_clone.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/incremental/column_helpers.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/incremental/incremental.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/incremental/is_incremental.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/incremental/merge.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/incremental/on_schema_change.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/incremental/strategies.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/materialized_view.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/table.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/models/view.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/seeds/helpers.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/seeds/seed.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/snapshots/snapshot.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/snapshots/snapshot_merge.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/snapshots/strategies.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/tests/helpers.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/tests/test.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/materializations/tests/where_subquery.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/python_model/python.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/column/columns_spec_ddl.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/create.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/create_backup.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/create_intermediate.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/drop.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/drop_backup.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/materialized_view/alter.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/materialized_view/create.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/materialized_view/drop.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/materialized_view/refresh.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/materialized_view/rename.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/materialized_view/replace.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/rename.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/rename_intermediate.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/replace.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/schema.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/table/create.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/table/drop.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/table/rename.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/table/replace.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/view/create.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/view/drop.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/view/rename.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/relations/view/replace.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/any_value.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/array_append.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/array_concat.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/array_construct.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/bool_or.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/cast.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/cast_bool_to_text.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/concat.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/data_types.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/date.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/date_spine.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/date_trunc.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/dateadd.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/datediff.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/equals.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/escape_single_quotes.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/except.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/generate_series.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/hash.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/intersect.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/last_day.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/length.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/listagg.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/literal.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/position.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/replace.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/right.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/safe_cast.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/macros/utils/split_part.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/global_project/tests/generic/builtin.sql +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/src/dbt/include/py.typed +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/behavior_flag_tests/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/behavior_flag_tests/test_behavior_flags.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/behavior_flag_tests/test_empty_project.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/conftest.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/fixtures/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/fixtures/adapter.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/fixtures/catalog_integration.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/fixtures/connection_manager.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/fixtures/credentials.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/record/__init__.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/record/test_record_cursor.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/record/test_record_handle.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/test_adapter_factory.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/test_adapter_telemetry.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/test_base_adapter.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/test_cache.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/test_catalogs.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/test_column.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/test_events.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/test_relation.py +0 -0
- {dbt_adapters-1.16.5 → dbt_adapters-1.16.7}/tests/unit/test_sql_result.py +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
## dbt-adapters 1.16.7 - September 10, 2025
|
|
2
|
+
|
|
3
|
+
### Fixes
|
|
4
|
+
|
|
5
|
+
- Fix Snapshot to avoid inserting redundant entries for records already marked as deleted ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
|
|
6
|
+
- Skip cloning objects if the target and defferal are the same ([#1198](https://github.com/dbt-labs/dbt-adapters/issues/1198))
|
|
7
|
+
- Update dbt snapshot staging table creation to handle new source columns when using hard_deletes == 'new_record' ([#852](https://github.com/dbt-labs/dbt-adapters/issues/852))
|
|
8
|
+
- update alter_relation_add_remove_columns to quote column names ([#63](https://github.com/dbt-labs/dbt-adapters/issues/63))
|
|
9
|
+
|
|
10
|
+
### Under the Hood
|
|
11
|
+
|
|
12
|
+
- Record adapter.add_query as Available record ([#1285](https://github.com/dbt-labs/dbt-adapters/issues/1285))
|
|
13
|
+
- Record adapter.list_relations_without_caching as Available record ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
|
|
14
|
+
|
|
15
|
+
### Dependencies
|
|
16
|
+
|
|
17
|
+
- upgrade protobuf to 6.0 ([#1259](https://github.com/dbt-labs/dbt-adapters/pull/1259))
|
|
18
|
+
|
|
19
|
+
### Contributors
|
|
20
|
+
- [@jasonlin45](https://github.com/jasonlin45) ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
|
|
21
|
+
- [@lpillmann](https://github.com/lpillmann) ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
|
|
@@ -10,57 +10,29 @@ and is generated by [Changie](https://github.com/miniscruff/changie)
|
|
|
10
10
|
- Do not edit this file directly. This file is auto-generated using [changie](https://github.com/miniscruff/changie)
|
|
11
11
|
- For details on how to document a change, see the [contributing guide](/CONTRIBUTING.md#changelog-entry)
|
|
12
12
|
|
|
13
|
-
## dbt-adapters 1.16.
|
|
14
|
-
|
|
15
|
-
### Fixes
|
|
16
|
-
|
|
17
|
-
- Correct column mapping lookup in unit test macro ([#1273](https://github.com/dbt-labs/dbt-adapters/issues/1273))
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## dbt-adapters 1.16.4 - August 15, 2025
|
|
22
|
-
|
|
23
|
-
### Fixes
|
|
24
|
-
|
|
25
|
-
- Apply column quoting to unit tests ([#205](https://github.com/dbt-labs/dbt-adapters/issues/205))
|
|
26
|
-
|
|
27
|
-
### Dependencies
|
|
28
|
-
|
|
29
|
-
- upgrade protobuf to 6.0 ([#1259](https://github.com/dbt-labs/dbt-adapters/pull/1259))
|
|
30
|
-
|
|
31
|
-
### Contributors
|
|
32
|
-
- [@mpatek](https://github.com/mpatek) ([#205](https://github.com/dbt-labs/dbt-adapters/issues/205))
|
|
33
|
-
|
|
34
|
-
## dbt-adapters 1.16.3 - July 21, 2025
|
|
13
|
+
## dbt-adapters 1.16.7 - September 10, 2025
|
|
35
14
|
|
|
36
15
|
### Fixes
|
|
37
16
|
|
|
17
|
+
- Fix Snapshot to avoid inserting redundant entries for records already marked as deleted ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
|
|
18
|
+
- Skip cloning objects if the target and defferal are the same ([#1198](https://github.com/dbt-labs/dbt-adapters/issues/1198))
|
|
38
19
|
- Update dbt snapshot staging table creation to handle new source columns when using hard_deletes == 'new_record' ([#852](https://github.com/dbt-labs/dbt-adapters/issues/852))
|
|
39
20
|
- update alter_relation_add_remove_columns to quote column names ([#63](https://github.com/dbt-labs/dbt-adapters/issues/63))
|
|
40
21
|
|
|
41
22
|
### Under the Hood
|
|
42
23
|
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
## dbt-adapters 1.16.2 - July 14, 2025
|
|
46
|
-
|
|
47
|
-
### Fixes
|
|
48
|
-
|
|
49
|
-
- Fixed hard-coded quoting issue in snapshots. ([#1118](https://github.com/dbt-labs/dbt-adapters/issues/1118))
|
|
50
|
-
- Skip cloning objects if the target and defferal are the same ([#1198](https://github.com/dbt-labs/dbt-adapters/issues/1198))
|
|
24
|
+
- Record adapter.add_query as Available record ([#1285](https://github.com/dbt-labs/dbt-adapters/issues/1285))
|
|
25
|
+
- Record adapter.list_relations_without_caching as Available record ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
|
|
51
26
|
|
|
52
|
-
###
|
|
53
|
-
- [@stevetracvc](https://github.com/stevetracvc) ([#1118](https://github.com/dbt-labs/dbt-adapters/issues/1118))
|
|
54
|
-
|
|
55
|
-
## dbt-adapters 1.16.1 - July 10, 2025
|
|
56
|
-
|
|
57
|
-
### Fixes
|
|
27
|
+
### Dependencies
|
|
58
28
|
|
|
59
|
-
-
|
|
29
|
+
- upgrade protobuf to 6.0 ([#1259](https://github.com/dbt-labs/dbt-adapters/pull/1259))
|
|
60
30
|
|
|
61
31
|
### Contributors
|
|
32
|
+
- [@jasonlin45](https://github.com/jasonlin45) ([#1308](https://github.com/dbt-labs/dbt-adapters/issues/1308))
|
|
62
33
|
- [@lpillmann](https://github.com/lpillmann) ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
|
|
63
34
|
|
|
35
|
+
|
|
64
36
|
## dbt-adapters 1.16.0 - June 04, 2025
|
|
65
37
|
|
|
66
38
|
### Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dbt-adapters
|
|
3
|
-
Version: 1.16.
|
|
3
|
+
Version: 1.16.7
|
|
4
4
|
Summary: The set of adapter protocols and base functionality that supports integration with dbt-core
|
|
5
5
|
Project-URL: Homepage, https://github.com/dbt-labs/dbt-adapters/tree/main/dbt-adapters
|
|
6
6
|
Project-URL: Documentation, https://docs.getdbt.com
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "1.16.7"
|
|
@@ -30,6 +30,7 @@ from dbt.adapters.record.base import (
|
|
|
30
30
|
AdapterGetPartitionsMetadataRecord,
|
|
31
31
|
AdapterConvertTypeRecord,
|
|
32
32
|
AdapterStandardizeGrantsDictRecord,
|
|
33
|
+
AdapterListRelationsWithoutCachingRecord,
|
|
33
34
|
)
|
|
34
35
|
from dbt_common.behavior_flags import Behavior, BehaviorFlag
|
|
35
36
|
from dbt_common.clients.jinja import CallableMacroGenerator
|
|
@@ -103,9 +104,7 @@ from dbt.adapters.exceptions import (
|
|
|
103
104
|
UnexpectedNonTimestampError,
|
|
104
105
|
)
|
|
105
106
|
from dbt.adapters.protocol import AdapterConfig, MacroContextGeneratorCallable
|
|
106
|
-
from dbt.adapters.events.logging import AdapterLogger
|
|
107
107
|
|
|
108
|
-
logger = AdapterLogger(__name__)
|
|
109
108
|
if TYPE_CHECKING:
|
|
110
109
|
import agate
|
|
111
110
|
|
|
@@ -155,25 +154,15 @@ def _catalog_filter_schemas(
|
|
|
155
154
|
"""Return a function that takes a row and decides if the row should be
|
|
156
155
|
included in the catalog output.
|
|
157
156
|
"""
|
|
158
|
-
schemas = frozenset(
|
|
159
|
-
(d.lower(), s.lower()) for d, s in used_schemas if d is not None and s is not None
|
|
160
|
-
)
|
|
161
|
-
if null_schemas := [d for d, s in used_schemas if d is None or s is None]:
|
|
162
|
-
logger.debug(
|
|
163
|
-
f"used_schemas contains None for either database or schema, skipping {null_schemas}"
|
|
164
|
-
)
|
|
157
|
+
schemas = frozenset((d.lower(), s.lower()) for d, s in used_schemas)
|
|
165
158
|
|
|
166
159
|
def test(row: "agate.Row") -> bool:
|
|
167
160
|
table_database = _expect_row_value("table_database", row)
|
|
168
161
|
table_schema = _expect_row_value("table_schema", row)
|
|
169
162
|
# the schema may be present but None, which is not an error and should
|
|
170
163
|
# be filtered out
|
|
171
|
-
|
|
172
164
|
if table_schema is None:
|
|
173
165
|
return False
|
|
174
|
-
if table_database is None:
|
|
175
|
-
logger.debug(f"table_database is None, skipping {table_schema}")
|
|
176
|
-
return False
|
|
177
166
|
return (table_database.lower(), table_schema.lower()) in schemas
|
|
178
167
|
|
|
179
168
|
return test
|
|
@@ -772,6 +761,12 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
772
761
|
"`expand_target_column_types` is not implemented for this adapter!"
|
|
773
762
|
)
|
|
774
763
|
|
|
764
|
+
@record_function(
|
|
765
|
+
AdapterListRelationsWithoutCachingRecord,
|
|
766
|
+
method=True,
|
|
767
|
+
index_on_thread_id=True,
|
|
768
|
+
id_field_name="thread_id",
|
|
769
|
+
)
|
|
775
770
|
@abc.abstractmethod
|
|
776
771
|
def list_relations_without_caching(self, schema_relation: BaseRelation) -> List[BaseRelation]:
|
|
777
772
|
"""List relations in the given schema, bypassing the cache.
|
|
@@ -3,6 +3,7 @@ from dbt.adapters.catalogs._exceptions import (
|
|
|
3
3
|
DbtCatalogIntegrationAlreadyExistsError,
|
|
4
4
|
DbtCatalogIntegrationNotFoundError,
|
|
5
5
|
DbtCatalogIntegrationNotSupportedError,
|
|
6
|
+
InvalidCatalogIntegrationConfigError,
|
|
6
7
|
)
|
|
7
8
|
from dbt.adapters.catalogs._integration import (
|
|
8
9
|
CatalogIntegration,
|
|
@@ -30,3 +30,10 @@ class DbtCatalogIntegrationNotSupportedError(DbtConfigError):
|
|
|
30
30
|
f"Expected one of: {', '.join(supported_catalog_types)}"
|
|
31
31
|
)
|
|
32
32
|
super().__init__(msg)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class InvalidCatalogIntegrationConfigError(DbtConfigError):
|
|
36
|
+
def __init__(self, catalog_name: str, msg: str) -> None:
|
|
37
|
+
self.catalog_name = catalog_name
|
|
38
|
+
msg = f"Invalid catalog integration config: {self.catalog_name}. {msg}"
|
|
39
|
+
super().__init__(msg)
|
|
@@ -255,3 +255,15 @@ class RelationWrongTypeError(CompilationError):
|
|
|
255
255
|
)
|
|
256
256
|
|
|
257
257
|
return msg
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
class InvalidRelationConfigError(CompilationError):
|
|
261
|
+
def __init__(self, relation, config, msg):
|
|
262
|
+
self.relation = relation
|
|
263
|
+
self.config = config
|
|
264
|
+
self.msg = msg
|
|
265
|
+
super().__init__(msg=self.get_message())
|
|
266
|
+
|
|
267
|
+
def get_message(self) -> str:
|
|
268
|
+
msg = f"Invalid relation config: {self.config}"
|
|
269
|
+
return msg
|
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import dataclasses
|
|
4
4
|
|
|
5
|
-
from typing import Optional, Tuple, Dict, Any, TYPE_CHECKING
|
|
5
|
+
from typing import Optional, Tuple, Dict, Any, TYPE_CHECKING, List
|
|
6
6
|
|
|
7
7
|
from dbt.adapters.contracts.connection import AdapterResponse
|
|
8
|
-
from dbt.adapters.record.serialization import serialize_agate_table
|
|
8
|
+
from dbt.adapters.record.serialization import serialize_agate_table, serialize_bindings
|
|
9
9
|
from dbt_common.record import Record, Recorder
|
|
10
10
|
|
|
11
11
|
if TYPE_CHECKING:
|
|
12
12
|
from agate import Table
|
|
13
|
+
from dbt.adapters.base.relation import BaseRelation
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
@dataclasses.dataclass
|
|
@@ -161,3 +162,85 @@ class AdapterStandardizeGrantsDictRecord(Record):
|
|
|
161
162
|
params_cls = AdapterStandardizeGrantsDictParams
|
|
162
163
|
result_cls = AdapterStandardizeGrantsDictResult
|
|
163
164
|
group = "Available"
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
@dataclasses.dataclass
|
|
168
|
+
class AdapterAddQueryParams:
|
|
169
|
+
thread_id: str
|
|
170
|
+
sql: str
|
|
171
|
+
auto_begin: bool = True
|
|
172
|
+
bindings: Optional[Any] = None
|
|
173
|
+
abridge_sql_log: bool = False
|
|
174
|
+
|
|
175
|
+
def _to_dict(self):
|
|
176
|
+
return {
|
|
177
|
+
"thread_id": self.thread_id,
|
|
178
|
+
"sql": self.sql,
|
|
179
|
+
"auto_begin": self.auto_begin,
|
|
180
|
+
"bindings": serialize_bindings(self.bindings),
|
|
181
|
+
"abridge_sql_log": self.abridge_sql_log,
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
@dataclasses.dataclass
|
|
186
|
+
class AdapterAddQueryResult:
|
|
187
|
+
return_val: Tuple[str, str]
|
|
188
|
+
|
|
189
|
+
def _to_dict(self):
|
|
190
|
+
return {
|
|
191
|
+
"return_val": {
|
|
192
|
+
"conn": "conn",
|
|
193
|
+
"cursor": "cursor",
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
@Recorder.register_record_type
|
|
199
|
+
class AdapterAddQueryRecord(Record):
|
|
200
|
+
params_cls = AdapterAddQueryParams
|
|
201
|
+
result_cls = AdapterAddQueryResult
|
|
202
|
+
group = "Available"
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
@dataclasses.dataclass
|
|
206
|
+
class AdapterListRelationsWithoutCachingParams:
|
|
207
|
+
thread_id: str
|
|
208
|
+
schema_relation: "BaseRelation"
|
|
209
|
+
|
|
210
|
+
def _to_dict(self):
|
|
211
|
+
from dbt.adapters.record.serialization import serialize_base_relation
|
|
212
|
+
|
|
213
|
+
return {
|
|
214
|
+
"thread_id": self.thread_id,
|
|
215
|
+
"schema_relation": serialize_base_relation(self.schema_relation),
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
def _from_dict(self, data: Dict[str, Any]):
|
|
219
|
+
from dbt.adapters.record.serialization import deserialize_base_relation
|
|
220
|
+
|
|
221
|
+
self.thread_id = data["thread_id"]
|
|
222
|
+
self.schema_relation = deserialize_base_relation(data["schema_relation"])
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
@dataclasses.dataclass
|
|
226
|
+
class AdapterListRelationsWithoutCachingResult:
|
|
227
|
+
return_val: List["BaseRelation"]
|
|
228
|
+
|
|
229
|
+
def _to_dict(self):
|
|
230
|
+
from dbt.adapters.record.serialization import serialize_base_relation_list
|
|
231
|
+
|
|
232
|
+
return {"return_val": serialize_base_relation_list(self.return_val)}
|
|
233
|
+
|
|
234
|
+
def _from_dict(self, data: Dict[str, Any]):
|
|
235
|
+
from dbt.adapters.record.serialization import deserialize_base_relation_list
|
|
236
|
+
|
|
237
|
+
self.return_val = deserialize_base_relation_list(data["return_val"])
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
@Recorder.register_record_type
|
|
241
|
+
class AdapterListRelationsWithoutCachingRecord(Record):
|
|
242
|
+
"""Implements record/replay support for the BaseAdapter.list_relations_without_caching() method."""
|
|
243
|
+
|
|
244
|
+
params_cls = AdapterListRelationsWithoutCachingParams
|
|
245
|
+
result_cls = AdapterListRelationsWithoutCachingResult
|
|
246
|
+
group = "Available"
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from datetime import datetime, date
|
|
2
|
+
from decimal import Decimal
|
|
3
|
+
from typing import Any, Dict, TYPE_CHECKING, List, Union
|
|
4
|
+
|
|
5
|
+
if TYPE_CHECKING:
|
|
6
|
+
from agate import Table
|
|
7
|
+
from dbt.adapters.base.relation import BaseRelation
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def _column_filter(val: Any) -> Any:
|
|
11
|
+
return (
|
|
12
|
+
float(val)
|
|
13
|
+
if isinstance(val, Decimal)
|
|
14
|
+
else (
|
|
15
|
+
str(val)
|
|
16
|
+
if isinstance(val, datetime)
|
|
17
|
+
else str(val) if isinstance(val, date) else str(val)
|
|
18
|
+
)
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def serialize_agate_table(table: "Table") -> Dict[str, Any]:
|
|
23
|
+
rows = []
|
|
24
|
+
for row in table.rows:
|
|
25
|
+
row = list(map(_column_filter, row))
|
|
26
|
+
rows.append(row)
|
|
27
|
+
|
|
28
|
+
return {
|
|
29
|
+
"column_names": table.column_names,
|
|
30
|
+
"column_types": [t.__class__.__name__ for t in table.column_types],
|
|
31
|
+
"rows": rows,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def serialize_bindings(bindings: Any) -> Union[None, List[Any], str]:
|
|
36
|
+
if bindings is None:
|
|
37
|
+
return None
|
|
38
|
+
elif isinstance(bindings, list):
|
|
39
|
+
return list(map(_column_filter, bindings))
|
|
40
|
+
else:
|
|
41
|
+
return "bindings"
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def serialize_base_relation(relation: "BaseRelation") -> Dict[str, Any]:
|
|
45
|
+
"""Serialize a BaseRelation object for recording."""
|
|
46
|
+
return relation.to_dict(omit_none=True)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def serialize_base_relation_list(relations: List["BaseRelation"]) -> List[Dict[str, Any]]:
|
|
50
|
+
"""Serialize a list of BaseRelation objects for recording."""
|
|
51
|
+
return [serialize_base_relation(relation) for relation in relations]
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def deserialize_base_relation(relation_dict: Dict[str, Any]) -> "BaseRelation":
|
|
55
|
+
"""Deserialize a BaseRelation object from a dictionary."""
|
|
56
|
+
from dbt.adapters.base.relation import BaseRelation
|
|
57
|
+
|
|
58
|
+
return BaseRelation.from_dict(relation_dict)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def deserialize_base_relation_list(relations_data: List[Dict[str, Any]]) -> List["BaseRelation"]:
|
|
62
|
+
"""Deserialize a list of BaseRelation objects from dictionaries."""
|
|
63
|
+
return [deserialize_base_relation(relation_dict) for relation_dict in relations_data]
|
|
@@ -8,7 +8,7 @@ from dbt.adapters.cache import _make_ref_key_dict
|
|
|
8
8
|
from dbt.adapters.contracts.connection import AdapterResponse, Connection
|
|
9
9
|
from dbt.adapters.events.types import ColTypeChange, SchemaCreation, SchemaDrop
|
|
10
10
|
from dbt.adapters.exceptions import RelationTypeNullError
|
|
11
|
-
from dbt.adapters.record.base import AdapterTestSqlRecord
|
|
11
|
+
from dbt.adapters.record.base import AdapterTestSqlRecord, AdapterAddQueryRecord
|
|
12
12
|
from dbt.adapters.sql.connections import SQLConnectionManager
|
|
13
13
|
|
|
14
14
|
LIST_RELATIONS_MACRO_NAME = "list_relations_without_caching"
|
|
@@ -49,6 +49,9 @@ class SQLAdapter(BaseAdapter):
|
|
|
49
49
|
connections: SQLConnectionManager
|
|
50
50
|
|
|
51
51
|
@available.parse(lambda *a, **k: (None, None))
|
|
52
|
+
@record_function(
|
|
53
|
+
AdapterAddQueryRecord, method=True, index_on_thread_id=True, id_field_name="thread_id"
|
|
54
|
+
)
|
|
52
55
|
def add_query(
|
|
53
56
|
self,
|
|
54
57
|
sql: str,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
{% macro default__create_columns(relation, columns) %}
|
|
9
9
|
{% for column in columns %}
|
|
10
10
|
{% call statement() %}
|
|
11
|
-
alter table {{ relation.render() }} add column {{
|
|
11
|
+
alter table {{ relation.render() }} add column "{{ column.name }}" {{ column.data_type }};
|
|
12
12
|
{% endcall %}
|
|
13
13
|
{% endfor %}
|
|
14
14
|
{% endmacro %}
|
|
@@ -4,28 +4,21 @@
|
|
|
4
4
|
|
|
5
5
|
{% set expected_rows = config.get('expected_rows') %}
|
|
6
6
|
{% set expected_sql = config.get('expected_sql') %}
|
|
7
|
-
{% set tested_expected_column_names = expected_rows[0].keys() if (expected_rows | length ) > 0 else get_columns_in_query(sql) %}
|
|
7
|
+
{% set tested_expected_column_names = expected_rows[0].keys() if (expected_rows | length ) > 0 else get_columns_in_query(sql) %} %}
|
|
8
8
|
|
|
9
9
|
{%- set target_relation = this.incorporate(type='table') -%}
|
|
10
10
|
{%- set temp_relation = make_temp_relation(target_relation)-%}
|
|
11
11
|
{% do run_query(get_create_table_as_sql(True, temp_relation, get_empty_subquery_sql(sql))) %}
|
|
12
12
|
{%- set columns_in_relation = adapter.get_columns_in_relation(temp_relation) -%}
|
|
13
13
|
{%- set column_name_to_data_types = {} -%}
|
|
14
|
-
{%- set column_name_to_quoted = {} -%}
|
|
15
14
|
{%- for column in columns_in_relation -%}
|
|
16
15
|
{%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}
|
|
17
|
-
{%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}
|
|
18
|
-
{%- endfor -%}
|
|
19
|
-
|
|
20
|
-
{%- set expected_column_names_quoted = [] -%}
|
|
21
|
-
{%- for column_name in tested_expected_column_names -%}
|
|
22
|
-
{%- do expected_column_names_quoted.append(column_name_to_quoted[column_name|lower]) -%}
|
|
23
16
|
{%- endfor -%}
|
|
24
17
|
|
|
25
18
|
{% if not expected_sql %}
|
|
26
|
-
{% set expected_sql = get_expected_sql(expected_rows, column_name_to_data_types
|
|
19
|
+
{% set expected_sql = get_expected_sql(expected_rows, column_name_to_data_types) %}
|
|
27
20
|
{% endif %}
|
|
28
|
-
{% set unit_test_sql = get_unit_test_sql(sql, expected_sql,
|
|
21
|
+
{% set unit_test_sql = get_unit_test_sql(sql, expected_sql, tested_expected_column_names) %}
|
|
29
22
|
|
|
30
23
|
{% call statement('main', fetch_result=True) -%}
|
|
31
24
|
|
|
@@ -8,12 +8,9 @@
|
|
|
8
8
|
{%- set columns_in_relation = adapter.get_columns_in_relation(this_or_defer_relation) -%}
|
|
9
9
|
|
|
10
10
|
{%- set column_name_to_data_types = {} -%}
|
|
11
|
-
{%- set column_name_to_quoted = {} -%}
|
|
12
11
|
{%- for column in columns_in_relation -%}
|
|
13
|
-
|
|
14
12
|
{#-- This needs to be a case-insensitive comparison --#}
|
|
15
13
|
{%- do column_name_to_data_types.update({column.name|lower: column.data_type}) -%}
|
|
16
|
-
{%- do column_name_to_quoted.update({column.name|lower: column.quoted}) -%}
|
|
17
14
|
{%- endfor -%}
|
|
18
15
|
{%- endif -%}
|
|
19
16
|
|
|
@@ -32,7 +29,7 @@
|
|
|
32
29
|
{%- set default_row_copy = default_row.copy() -%}
|
|
33
30
|
{%- do default_row_copy.update(formatted_row) -%}
|
|
34
31
|
select
|
|
35
|
-
{%- for column_name, column_value in default_row_copy.items() %} {{ column_value }} as {{
|
|
32
|
+
{%- for column_name, column_value in default_row_copy.items() %} {{ column_value }} as {{ column_name }}{% if not loop.last -%}, {%- endif %}
|
|
36
33
|
{%- endfor %}
|
|
37
34
|
{%- if not loop.last %}
|
|
38
35
|
union all
|
|
@@ -41,14 +38,14 @@ union all
|
|
|
41
38
|
|
|
42
39
|
{%- if (rows | length) == 0 -%}
|
|
43
40
|
select
|
|
44
|
-
{%- for column_name, column_value in default_row.items() %} {{ column_value }} as {{
|
|
41
|
+
{%- for column_name, column_value in default_row.items() %} {{ column_value }} as {{ column_name }}{% if not loop.last -%},{%- endif %}
|
|
45
42
|
{%- endfor %}
|
|
46
43
|
limit 0
|
|
47
44
|
{%- endif -%}
|
|
48
45
|
{% endmacro %}
|
|
49
46
|
|
|
50
47
|
|
|
51
|
-
{% macro get_expected_sql(rows, column_name_to_data_types
|
|
48
|
+
{% macro get_expected_sql(rows, column_name_to_data_types) %}
|
|
52
49
|
|
|
53
50
|
{%- if (rows | length) == 0 -%}
|
|
54
51
|
select * from dbt_internal_unit_test_actual
|
|
@@ -57,7 +54,7 @@ union all
|
|
|
57
54
|
{%- for row in rows -%}
|
|
58
55
|
{%- set formatted_row = format_row(row, column_name_to_data_types) -%}
|
|
59
56
|
select
|
|
60
|
-
{%- for column_name, column_value in formatted_row.items() %} {{ column_value }} as {{
|
|
57
|
+
{%- for column_name, column_value in formatted_row.items() %} {{ column_value }} as {{ column_name }}{% if not loop.last -%}, {%- endif %}
|
|
61
58
|
{%- endfor %}
|
|
62
59
|
{%- if not loop.last %}
|
|
63
60
|
union all
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
## dbt-adapters 1.16.1 - July 10, 2025
|
|
2
|
-
|
|
3
|
-
### Fixes
|
|
4
|
-
|
|
5
|
-
- Fix Snapshot to avoid inserting redundant entries for records already marked as deleted ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
|
|
6
|
-
|
|
7
|
-
### Contributors
|
|
8
|
-
- [@lpillmann](https://github.com/lpillmann) ([#654](https://github.com/dbt-labs/dbt-adapters/issues/654))
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
## dbt-adapters 1.16.2 - July 14, 2025
|
|
2
|
-
|
|
3
|
-
### Fixes
|
|
4
|
-
|
|
5
|
-
- Fixed hard-coded quoting issue in snapshots. ([#1118](https://github.com/dbt-labs/dbt-adapters/issues/1118))
|
|
6
|
-
- Skip cloning objects if the target and defferal are the same ([#1198](https://github.com/dbt-labs/dbt-adapters/issues/1198))
|
|
7
|
-
|
|
8
|
-
### Contributors
|
|
9
|
-
- [@stevetracvc](https://github.com/stevetracvc) ([#1118](https://github.com/dbt-labs/dbt-adapters/issues/1118))
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
## dbt-adapters 1.16.3 - July 21, 2025
|
|
2
|
-
|
|
3
|
-
### Fixes
|
|
4
|
-
|
|
5
|
-
- Update dbt snapshot staging table creation to handle new source columns when using hard_deletes == 'new_record' ([#852](https://github.com/dbt-labs/dbt-adapters/issues/852))
|
|
6
|
-
- update alter_relation_add_remove_columns to quote column names ([#63](https://github.com/dbt-labs/dbt-adapters/issues/63))
|
|
7
|
-
|
|
8
|
-
### Under the Hood
|
|
9
|
-
|
|
10
|
-
- gracefully handle null database in _catalog_filter_schemas ([#1216](https://github.com/dbt-labs/dbt-adapters/issues/1216))
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
## dbt-adapters 1.16.4 - August 15, 2025
|
|
2
|
-
|
|
3
|
-
### Fixes
|
|
4
|
-
|
|
5
|
-
- Apply column quoting to unit tests ([#205](https://github.com/dbt-labs/dbt-adapters/issues/205))
|
|
6
|
-
|
|
7
|
-
### Dependencies
|
|
8
|
-
|
|
9
|
-
- upgrade protobuf to 6.0 ([#1259](https://github.com/dbt-labs/dbt-adapters/pull/1259))
|
|
10
|
-
|
|
11
|
-
### Contributors
|
|
12
|
-
- [@mpatek](https://github.com/mpatek) ([#205](https://github.com/dbt-labs/dbt-adapters/issues/205))
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = "1.16.5"
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
from datetime import datetime, date
|
|
2
|
-
from decimal import Decimal
|
|
3
|
-
from typing import Any, Dict, TYPE_CHECKING
|
|
4
|
-
|
|
5
|
-
if TYPE_CHECKING:
|
|
6
|
-
from agate import Table
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
def _column_filter(val: Any) -> Any:
|
|
10
|
-
return (
|
|
11
|
-
float(val)
|
|
12
|
-
if isinstance(val, Decimal)
|
|
13
|
-
else (
|
|
14
|
-
str(val)
|
|
15
|
-
if isinstance(val, datetime)
|
|
16
|
-
else str(val) if isinstance(val, date) else str(val)
|
|
17
|
-
)
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
def serialize_agate_table(table: "Table") -> Dict[str, Any]:
|
|
22
|
-
rows = []
|
|
23
|
-
for row in table.rows:
|
|
24
|
-
row = list(map(_column_filter, row))
|
|
25
|
-
rows.append(row)
|
|
26
|
-
|
|
27
|
-
return {
|
|
28
|
-
"column_names": table.column_names,
|
|
29
|
-
"column_types": [t.__class__.__name__ for t in table.column_types],
|
|
30
|
-
"rows": rows,
|
|
31
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|