dbt-adapters 1.10.1__tar.gz → 1.10.2__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.10.1 → dbt_adapters-1.10.2}/PKG-INFO +1 -1
- dbt_adapters-1.10.2/dbt/adapters/__about__.py +1 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/base/impl.py +55 -2
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/snapshots/helpers.sql +49 -5
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/snapshots/snapshot.sql +1 -1
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/snapshots/strategies.sql +8 -4
- dbt_adapters-1.10.1/dbt/adapters/__about__.py +0 -1
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/.gitignore +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/LICENSE +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/README.md +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/base/README.md +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/base/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/base/column.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/base/connections.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/base/meta.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/base/plugin.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/base/query_headers.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/base/relation.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/cache.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/capability.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/clients/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/clients/jinja.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/contracts/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/contracts/connection.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/contracts/macros.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/contracts/relation.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/events/README.md +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/events/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/events/adapter_types.proto +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/events/adapter_types_pb2.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/events/base_types.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/events/logging.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/events/types.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/exceptions/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/exceptions/alias.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/exceptions/cache.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/exceptions/compilation.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/exceptions/connection.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/exceptions/database.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/factory.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/protocol.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/py.typed +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/record/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/record/cursor/cursor.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/record/cursor/description.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/record/cursor/execute.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/record/cursor/fetchall.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/record/cursor/fetchmany.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/record/cursor/fetchone.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/record/cursor/rowcount.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/record/handle.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/reference_keys.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/relation_configs/README.md +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/relation_configs/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/relation_configs/config_base.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/relation_configs/config_change.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/relation_configs/config_validation.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/sql/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/sql/connections.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/sql/impl.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/utils.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/__init__.py +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/dbt_project.yml +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/docs/overview.md +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/apply_grants.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/columns.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/freshness.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/indexes.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/metadata.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/persist_docs.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/relation.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/schema.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/show.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/timestamps.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/validate_sql.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/etc/datetime.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/etc/statement.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/generic_test_sql/accepted_values.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/generic_test_sql/not_null.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/generic_test_sql/relationships.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/generic_test_sql/unique.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/get_custom_name/get_custom_alias.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/get_custom_name/get_custom_database.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/get_custom_name/get_custom_schema.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/configs.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/hooks.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/clone/can_clone_table.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/clone/clone.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/clone/create_or_replace_clone.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/incremental/column_helpers.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/incremental/incremental.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/incremental/is_incremental.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/incremental/merge.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/incremental/on_schema_change.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/incremental/strategies.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/materialized_view.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/table.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/models/view.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/seeds/helpers.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/seeds/seed.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/snapshots/snapshot_merge.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/tests/helpers.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/tests/test.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/tests/unit.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/materializations/tests/where_subquery.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/python_model/python.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/column/columns_spec_ddl.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/create.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/create_backup.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/create_intermediate.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/drop.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/drop_backup.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/materialized_view/alter.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/materialized_view/create.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/materialized_view/drop.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/materialized_view/refresh.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/materialized_view/rename.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/materialized_view/replace.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/rename.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/rename_intermediate.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/replace.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/schema.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/table/create.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/table/drop.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/table/rename.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/table/replace.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/view/create.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/view/drop.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/view/rename.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/view/replace.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/unit_test_sql/get_fixture_sql.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/any_value.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/array_append.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/array_concat.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/array_construct.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/bool_or.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/cast.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/cast_bool_to_text.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/concat.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/data_types.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/date.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/date_spine.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/date_trunc.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/dateadd.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/datediff.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/escape_single_quotes.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/except.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/generate_series.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/hash.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/intersect.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/last_day.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/length.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/listagg.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/literal.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/position.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/replace.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/right.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/safe_cast.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/split_part.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/tests/generic/builtin.sql +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/py.typed +0 -0
- {dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/pyproject.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dbt-adapters
|
|
3
|
-
Version: 1.10.
|
|
3
|
+
Version: 1.10.2
|
|
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
|
|
6
6
|
Project-URL: Documentation, https://docs.getdbt.com
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "1.10.2"
|
|
@@ -206,6 +206,14 @@ class FreshnessResponse(TypedDict):
|
|
|
206
206
|
age: float # age in seconds
|
|
207
207
|
|
|
208
208
|
|
|
209
|
+
class SnapshotStrategy(TypedDict):
|
|
210
|
+
unique_key: Optional[str]
|
|
211
|
+
updated_at: Optional[str]
|
|
212
|
+
row_changed: Optional[str]
|
|
213
|
+
scd_id: Optional[str]
|
|
214
|
+
hard_deletes: Optional[str]
|
|
215
|
+
|
|
216
|
+
|
|
209
217
|
class BaseAdapter(metaclass=AdapterMeta):
|
|
210
218
|
"""The BaseAdapter provides an abstract base class for adapters.
|
|
211
219
|
|
|
@@ -795,8 +803,8 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
795
803
|
columns = self.get_columns_in_relation(relation)
|
|
796
804
|
names = set(c.name.lower() for c in columns)
|
|
797
805
|
missing = []
|
|
798
|
-
# Note: we're not checking dbt_updated_at here because
|
|
799
|
-
# always present.
|
|
806
|
+
# Note: we're not checking dbt_updated_at or dbt_is_deleted here because they
|
|
807
|
+
# aren't always present.
|
|
800
808
|
for column in ("dbt_scd_id", "dbt_valid_from", "dbt_valid_to"):
|
|
801
809
|
desired = column_names[column] if column_names else column
|
|
802
810
|
if desired not in names:
|
|
@@ -805,6 +813,28 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
805
813
|
if missing:
|
|
806
814
|
raise SnapshotTargetNotSnapshotTableError(missing)
|
|
807
815
|
|
|
816
|
+
@available.parse_none
|
|
817
|
+
def assert_valid_snapshot_target_given_strategy(
|
|
818
|
+
self, relation: BaseRelation, column_names: Dict[str, str], strategy: SnapshotStrategy
|
|
819
|
+
) -> None:
|
|
820
|
+
# Assert everything we can with the legacy function.
|
|
821
|
+
self.valid_snapshot_target(relation, column_names)
|
|
822
|
+
|
|
823
|
+
# Now do strategy-specific checks.
|
|
824
|
+
# TODO: Make these checks more comprehensive.
|
|
825
|
+
if strategy.get("hard_deletes", None) == "new_record":
|
|
826
|
+
columns = self.get_columns_in_relation(relation)
|
|
827
|
+
names = set(c.name.lower() for c in columns)
|
|
828
|
+
missing = []
|
|
829
|
+
|
|
830
|
+
for column in ("dbt_is_deleted",):
|
|
831
|
+
desired = column_names[column] if column_names else column
|
|
832
|
+
if desired not in names:
|
|
833
|
+
missing.append(desired)
|
|
834
|
+
|
|
835
|
+
if missing:
|
|
836
|
+
raise SnapshotTargetNotSnapshotTableError(missing)
|
|
837
|
+
|
|
808
838
|
@available.parse_none
|
|
809
839
|
def expand_target_column_types(
|
|
810
840
|
self, from_relation: BaseRelation, to_relation: BaseRelation
|
|
@@ -1795,6 +1825,29 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1795
1825
|
"""
|
|
1796
1826
|
return {}
|
|
1797
1827
|
|
|
1828
|
+
@available.parse_none
|
|
1829
|
+
@classmethod
|
|
1830
|
+
def get_hard_deletes_behavior(cls, config):
|
|
1831
|
+
"""Check the hard_deletes config enum, and the legacy invalidate_hard_deletes
|
|
1832
|
+
config flag in order to determine which behavior should be used for deleted
|
|
1833
|
+
records in a snapshot. The default is to ignore them."""
|
|
1834
|
+
invalidate_hard_deletes = config.get("invalidate_hard_deletes", None)
|
|
1835
|
+
hard_deletes = config.get("hard_deletes", None)
|
|
1836
|
+
|
|
1837
|
+
if invalidate_hard_deletes is not None and hard_deletes is not None:
|
|
1838
|
+
raise DbtValidationError(
|
|
1839
|
+
"You cannot set both the invalidate_hard_deletes and hard_deletes config properties on the same snapshot."
|
|
1840
|
+
)
|
|
1841
|
+
|
|
1842
|
+
if invalidate_hard_deletes or hard_deletes == "invalidate":
|
|
1843
|
+
return "invalidate"
|
|
1844
|
+
elif hard_deletes == "new_record":
|
|
1845
|
+
return "new_record"
|
|
1846
|
+
elif hard_deletes is None or hard_deletes == "ignore":
|
|
1847
|
+
return "ignore"
|
|
1848
|
+
|
|
1849
|
+
raise DbtValidationError("Invalid setting for property hard_deletes.")
|
|
1850
|
+
|
|
1798
1851
|
|
|
1799
1852
|
COLUMNS_EQUAL_SQL = """
|
|
1800
1853
|
with diff_count as (
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
{% endmacro %}
|
|
36
36
|
|
|
37
37
|
{% macro get_snapshot_table_column_names() %}
|
|
38
|
-
{{ return({'dbt_valid_to': 'dbt_valid_to', 'dbt_valid_from': 'dbt_valid_from', 'dbt_scd_id': 'dbt_scd_id', 'dbt_updated_at': 'dbt_updated_at'}) }}
|
|
38
|
+
{{ return({'dbt_valid_to': 'dbt_valid_to', 'dbt_valid_from': 'dbt_valid_from', 'dbt_scd_id': 'dbt_scd_id', 'dbt_updated_at': 'dbt_updated_at', 'dbt_is_deleted': 'dbt_is_deleted'}) }}
|
|
39
39
|
{% endmacro %}
|
|
40
40
|
|
|
41
41
|
{% macro default__snapshot_staging_table(strategy, source_sql, target_relation) -%}
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
from snapshot_query
|
|
83
83
|
),
|
|
84
84
|
|
|
85
|
-
{%- if strategy.
|
|
85
|
+
{%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}
|
|
86
86
|
|
|
87
87
|
deletes_source_data as (
|
|
88
88
|
|
|
@@ -96,6 +96,9 @@
|
|
|
96
96
|
select
|
|
97
97
|
'insert' as dbt_change_type,
|
|
98
98
|
source_data.*
|
|
99
|
+
{%- if strategy.hard_deletes == 'new_record' -%}
|
|
100
|
+
,'False' as {{ columns.dbt_is_deleted }}
|
|
101
|
+
{%- endif %}
|
|
99
102
|
|
|
100
103
|
from insertions_source_data as source_data
|
|
101
104
|
left outer join snapshotted_data
|
|
@@ -113,6 +116,9 @@
|
|
|
113
116
|
'update' as dbt_change_type,
|
|
114
117
|
source_data.*,
|
|
115
118
|
snapshotted_data.{{ columns.dbt_scd_id }}
|
|
119
|
+
{%- if strategy.hard_deletes == 'new_record' -%}
|
|
120
|
+
, snapshotted_data.{{ columns.dbt_is_deleted }}
|
|
121
|
+
{%- endif %}
|
|
116
122
|
|
|
117
123
|
from updates_source_data as source_data
|
|
118
124
|
join snapshotted_data
|
|
@@ -122,9 +128,8 @@
|
|
|
122
128
|
)
|
|
123
129
|
)
|
|
124
130
|
|
|
125
|
-
{%- if strategy.
|
|
131
|
+
{%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}
|
|
126
132
|
,
|
|
127
|
-
|
|
128
133
|
deletes as (
|
|
129
134
|
|
|
130
135
|
select
|
|
@@ -134,7 +139,38 @@
|
|
|
134
139
|
{{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},
|
|
135
140
|
{{ snapshot_get_time() }} as {{ columns.dbt_valid_to }},
|
|
136
141
|
snapshotted_data.{{ columns.dbt_scd_id }}
|
|
142
|
+
{%- if strategy.hard_deletes == 'new_record' -%}
|
|
143
|
+
, snapshotted_data.{{ columns.dbt_is_deleted }}
|
|
144
|
+
{%- endif %}
|
|
145
|
+
from snapshotted_data
|
|
146
|
+
left join deletes_source_data as source_data
|
|
147
|
+
on {{ unique_key_join_on(strategy.unique_key, "snapshotted_data", "source_data") }}
|
|
148
|
+
where {{ unique_key_is_null(strategy.unique_key, "source_data") }}
|
|
149
|
+
)
|
|
150
|
+
{%- endif %}
|
|
151
|
+
|
|
152
|
+
{%- if strategy.hard_deletes == 'new_record' %}
|
|
153
|
+
{% set source_sql_cols = get_column_schema_from_query(source_sql) %}
|
|
154
|
+
,
|
|
155
|
+
deletion_records as (
|
|
137
156
|
|
|
157
|
+
select
|
|
158
|
+
'insert' as dbt_change_type,
|
|
159
|
+
{%- for col in source_sql_cols -%}
|
|
160
|
+
snapshotted_data.{{ adapter.quote(col.column) }},
|
|
161
|
+
{% endfor -%}
|
|
162
|
+
{%- if strategy.unique_key | is_list -%}
|
|
163
|
+
{%- for key in strategy.unique_key -%}
|
|
164
|
+
snapshotted_data.{{ key }} as dbt_unique_key_{{ loop.index }},
|
|
165
|
+
{% endfor -%}
|
|
166
|
+
{%- else -%}
|
|
167
|
+
snapshotted_data.dbt_unique_key as dbt_unique_key,
|
|
168
|
+
{% endif -%}
|
|
169
|
+
{{ snapshot_get_time() }} as {{ columns.dbt_valid_from }},
|
|
170
|
+
{{ snapshot_get_time() }} as {{ columns.dbt_updated_at }},
|
|
171
|
+
snapshotted_data.{{ columns.dbt_valid_to }} as {{ columns.dbt_valid_to }},
|
|
172
|
+
snapshotted_data.{{ columns.dbt_scd_id }},
|
|
173
|
+
'True' as {{ columns.dbt_is_deleted }}
|
|
138
174
|
from snapshotted_data
|
|
139
175
|
left join deletes_source_data as source_data
|
|
140
176
|
on {{ unique_key_join_on(strategy.unique_key, "snapshotted_data", "source_data") }}
|
|
@@ -145,10 +181,15 @@
|
|
|
145
181
|
select * from insertions
|
|
146
182
|
union all
|
|
147
183
|
select * from updates
|
|
148
|
-
{%- if strategy.
|
|
184
|
+
{%- if strategy.hard_deletes == 'invalidate' or strategy.hard_deletes == 'new_record' %}
|
|
149
185
|
union all
|
|
150
186
|
select * from deletes
|
|
151
187
|
{%- endif %}
|
|
188
|
+
{%- if strategy.hard_deletes == 'new_record' %}
|
|
189
|
+
union all
|
|
190
|
+
select * from deletion_records
|
|
191
|
+
{%- endif %}
|
|
192
|
+
|
|
152
193
|
|
|
153
194
|
{%- endmacro %}
|
|
154
195
|
|
|
@@ -165,6 +206,9 @@
|
|
|
165
206
|
{{ strategy.updated_at }} as {{ columns.dbt_updated_at }},
|
|
166
207
|
{{ strategy.updated_at }} as {{ columns.dbt_valid_from }},
|
|
167
208
|
{{ get_dbt_valid_to_current(strategy, columns) }}
|
|
209
|
+
{%- if strategy.hard_deletes == 'new_record' -%}
|
|
210
|
+
, 'False' as {{ columns.dbt_is_deleted }}
|
|
211
|
+
{% endif -%}
|
|
168
212
|
from (
|
|
169
213
|
{{ sql }}
|
|
170
214
|
) sbq
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
|
|
38
38
|
{% set columns = config.get("snapshot_table_column_names") or get_snapshot_table_column_names() %}
|
|
39
39
|
|
|
40
|
-
{{ adapter.
|
|
40
|
+
{{ adapter.assert_valid_snapshot_target_given_strategy(target_relation, columns, strategy) }}
|
|
41
41
|
|
|
42
42
|
{% set build_or_select_sql = snapshot_staging_table(strategy, sql, target_relation) %}
|
|
43
43
|
{% set staging_table = build_snapshot_staging_table(strategy, sql, target_relation) %}
|
|
@@ -54,7 +54,8 @@
|
|
|
54
54
|
{# The model_config parameter is no longer used, but is passed in anyway for compatibility. #}
|
|
55
55
|
{% set primary_key = config.get('unique_key') %}
|
|
56
56
|
{% set updated_at = config.get('updated_at') %}
|
|
57
|
-
{% set
|
|
57
|
+
{% set hard_deletes = adapter.get_hard_deletes_behavior(config) %}
|
|
58
|
+
{% set invalidate_hard_deletes = hard_deletes == 'invalidate' %}
|
|
58
59
|
{% set columns = config.get("snapshot_table_column_names") or get_snapshot_table_column_names() %}
|
|
59
60
|
|
|
60
61
|
{#/*
|
|
@@ -78,7 +79,8 @@
|
|
|
78
79
|
"updated_at": updated_at,
|
|
79
80
|
"row_changed": row_changed_expr,
|
|
80
81
|
"scd_id": scd_id_expr,
|
|
81
|
-
"invalidate_hard_deletes": invalidate_hard_deletes
|
|
82
|
+
"invalidate_hard_deletes": invalidate_hard_deletes,
|
|
83
|
+
"hard_deletes": hard_deletes
|
|
82
84
|
}) %}
|
|
83
85
|
{% endmacro %}
|
|
84
86
|
|
|
@@ -141,7 +143,8 @@
|
|
|
141
143
|
{# The model_config parameter is no longer used, but is passed in anyway for compatibility. #}
|
|
142
144
|
{% set check_cols_config = config.get('check_cols') %}
|
|
143
145
|
{% set primary_key = config.get('unique_key') %}
|
|
144
|
-
{% set
|
|
146
|
+
{% set hard_deletes = adapter.get_hard_deletes_behavior(config) %}
|
|
147
|
+
{% set invalidate_hard_deletes = hard_deletes == 'invalidate' %}
|
|
145
148
|
{% set updated_at = config.get('updated_at') or snapshot_get_time() %}
|
|
146
149
|
|
|
147
150
|
{% set column_added = false %}
|
|
@@ -175,6 +178,7 @@
|
|
|
175
178
|
"updated_at": updated_at,
|
|
176
179
|
"row_changed": row_changed_expr,
|
|
177
180
|
"scd_id": scd_id_expr,
|
|
178
|
-
"invalidate_hard_deletes": invalidate_hard_deletes
|
|
181
|
+
"invalidate_hard_deletes": invalidate_hard_deletes,
|
|
182
|
+
"hard_deletes": hard_deletes
|
|
179
183
|
}) %}
|
|
180
184
|
{% endmacro %}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = "1.10.1"
|
|
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
|
|
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
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/adapters/relation_configs/config_validation.py
RENAMED
|
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
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/columns.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/freshness.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/indexes.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/metadata.sql
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/relation.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/schema.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/adapters/show.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/etc/datetime.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/etc/statement.sql
RENAMED
|
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
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/create.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/drop.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/rename.sql
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/replace.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/relations/schema.sql
RENAMED
|
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
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/any_value.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/array_append.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/array_concat.sql
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/bool_or.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/cast.sql
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/concat.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/data_types.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/date.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/date_spine.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/date_trunc.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/dateadd.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/datediff.sql
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/except.sql
RENAMED
|
File without changes
|
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/hash.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/intersect.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/last_day.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/length.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/listagg.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/literal.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/position.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/replace.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/right.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/safe_cast.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/macros/utils/split_part.sql
RENAMED
|
File without changes
|
{dbt_adapters-1.10.1 → dbt_adapters-1.10.2}/dbt/include/global_project/tests/generic/builtin.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|