dbt-adapters 1.0.0b2__tar.gz → 1.1.0__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.0.0b2 → dbt_adapters-1.1.0}/.gitignore +1 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/PKG-INFO +2 -1
- dbt_adapters-1.1.0/dbt/adapters/__about__.py +1 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/__init__.py +1 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/base/connections.py +3 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/base/impl.py +95 -23
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/base/relation.py +13 -2
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/capability.py +3 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/contracts/relation.py +2 -4
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/events/README.md +1 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/events/adapter_types.proto +10 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/events/adapter_types_pb2.py +5 -2
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/events/types.py +15 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/factory.py +17 -4
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/protocol.py +26 -52
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/relation_configs/README.md +1 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/relation_configs/config_change.py +3 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/columns.sql +1 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/tests/helpers.sql +1 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/tests/unit.sql +6 -2
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/unit_test_sql/get_fixture_sql.sql +1 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/pyproject.toml +7 -54
- dbt_adapters-1.0.0b2/dbt/adapters/__about__.py +0 -1
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/LICENSE +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/README.md +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/base/README.md +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/base/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/base/column.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/base/meta.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/base/plugin.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/base/query_headers.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/cache.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/clients/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/clients/jinja.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/contracts/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/contracts/connection.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/contracts/macros.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/events/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/events/base_types.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/events/logging.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/exceptions/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/exceptions/alias.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/exceptions/cache.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/exceptions/compilation.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/exceptions/connection.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/exceptions/database.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/py.typed +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/reference_keys.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/relation_configs/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/relation_configs/config_base.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/relation_configs/config_validation.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/sql/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/sql/connections.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/sql/impl.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/adapters/utils.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/__init__.py +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/dbt_project.yml +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/docs/overview.md +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/apply_grants.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/freshness.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/indexes.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/metadata.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/persist_docs.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/relation.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/schema.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/show.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/timestamps.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/validate_sql.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/etc/datetime.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/etc/statement.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/generic_test_sql/accepted_values.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/generic_test_sql/not_null.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/generic_test_sql/relationships.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/generic_test_sql/unique.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/get_custom_name/get_custom_alias.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/get_custom_name/get_custom_database.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/get_custom_name/get_custom_schema.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/configs.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/hooks.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/clone/can_clone_table.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/clone/clone.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/clone/create_or_replace_clone.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/incremental/column_helpers.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/incremental/incremental.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/incremental/is_incremental.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/incremental/merge.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/incremental/on_schema_change.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/incremental/strategies.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/materialized_view.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/table.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/models/view.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/seeds/helpers.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/seeds/seed.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/snapshots/helpers.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/snapshots/snapshot.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/snapshots/snapshot_merge.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/snapshots/strategies.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/tests/test.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/materializations/tests/where_subquery.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/python_model/python.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/column/columns_spec_ddl.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/create.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/create_backup.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/create_intermediate.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/drop.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/drop_backup.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/materialized_view/alter.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/materialized_view/create.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/materialized_view/drop.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/materialized_view/refresh.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/materialized_view/rename.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/materialized_view/replace.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/rename.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/rename_intermediate.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/replace.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/schema.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/table/create.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/table/drop.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/table/rename.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/table/replace.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/view/create.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/view/drop.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/view/rename.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/relations/view/replace.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/any_value.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/array_append.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/array_concat.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/array_construct.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/bool_or.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/cast.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/cast_bool_to_text.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/concat.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/data_types.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/date_spine.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/date_trunc.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/dateadd.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/datediff.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/escape_single_quotes.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/except.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/generate_series.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/hash.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/intersect.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/last_day.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/length.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/listagg.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/literal.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/position.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/replace.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/right.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/safe_cast.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/utils/split_part.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/tests/generic/builtin.sql +0 -0
- {dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: dbt-adapters
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
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
|
|
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
20
20
|
Classifier: Programming Language :: Python :: 3.9
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.10
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
24
|
Requires-Python: >=3.8.0
|
|
24
25
|
Requires-Dist: agate<2.0,>=1.0
|
|
25
26
|
Requires-Dist: dbt-common<2.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
version = "1.1.0"
|
|
@@ -165,7 +165,9 @@ class BaseConnectionManager(metaclass=abc.ABCMeta):
|
|
|
165
165
|
conn.handle = LazyHandle(self.open)
|
|
166
166
|
# Add the connection to thread_connections for this thread
|
|
167
167
|
self.set_thread_connection(conn)
|
|
168
|
-
fire_event(
|
|
168
|
+
fire_event(
|
|
169
|
+
NewConnection(conn_name=conn_name, conn_type=self.TYPE, node_info=get_node_info())
|
|
170
|
+
)
|
|
169
171
|
else: # existing connection either wasn't open or didn't have the right name
|
|
170
172
|
if conn.state != "open":
|
|
171
173
|
conn.handle = LazyHandle(self.open)
|
|
@@ -1062,6 +1062,7 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1062
1062
|
project: Optional[str] = None,
|
|
1063
1063
|
context_override: Optional[Dict[str, Any]] = None,
|
|
1064
1064
|
kwargs: Optional[Dict[str, Any]] = None,
|
|
1065
|
+
needs_conn: bool = False,
|
|
1065
1066
|
) -> AttrDict:
|
|
1066
1067
|
"""Look macro_name up in the manifest and execute its results.
|
|
1067
1068
|
|
|
@@ -1074,6 +1075,10 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1074
1075
|
execution context.
|
|
1075
1076
|
:param kwargs: An optional dict of keyword args used to pass to the
|
|
1076
1077
|
macro.
|
|
1078
|
+
: param needs_conn: A boolean that indicates whether the specified macro
|
|
1079
|
+
requires an open connection to execute. If needs_conn is True, a
|
|
1080
|
+
connection is expected and opened if necessary. Otherwise (and by default),
|
|
1081
|
+
no connection is expected prior to executing the macro.
|
|
1077
1082
|
"""
|
|
1078
1083
|
|
|
1079
1084
|
if kwargs is None:
|
|
@@ -1106,6 +1111,10 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1106
1111
|
|
|
1107
1112
|
macro_function = CallableMacroGenerator(macro, macro_context)
|
|
1108
1113
|
|
|
1114
|
+
if needs_conn:
|
|
1115
|
+
connection = self.connections.get_thread_connection()
|
|
1116
|
+
self.connections.open(connection)
|
|
1117
|
+
|
|
1109
1118
|
with self.connections.exception_handler(f"macro {macro_name}"):
|
|
1110
1119
|
result = macro_function(**kwargs)
|
|
1111
1120
|
return result
|
|
@@ -1297,48 +1306,111 @@ class BaseAdapter(metaclass=AdapterMeta):
|
|
|
1297
1306
|
}
|
|
1298
1307
|
return adapter_response, freshness
|
|
1299
1308
|
|
|
1309
|
+
def calculate_freshness_from_metadata_batch(
|
|
1310
|
+
self,
|
|
1311
|
+
sources: List[BaseRelation],
|
|
1312
|
+
macro_resolver: Optional[MacroResolverProtocol] = None,
|
|
1313
|
+
) -> Tuple[List[Optional[AdapterResponse]], Dict[BaseRelation, FreshnessResponse]]:
|
|
1314
|
+
"""
|
|
1315
|
+
Given a list of sources (BaseRelations), calculate the metadata-based freshness in batch.
|
|
1316
|
+
This method should _not_ execute a warehouse query per source, but rather batch up
|
|
1317
|
+
the sources into as few requests as possible to minimize the number of roundtrips required
|
|
1318
|
+
to compute metadata-based freshness for each input source.
|
|
1319
|
+
|
|
1320
|
+
:param sources: The list of sources to calculate metadata-based freshness for
|
|
1321
|
+
:param macro_resolver: An optional macro_resolver to use for get_relation_last_modified
|
|
1322
|
+
:return: a tuple where:
|
|
1323
|
+
* the first element is a list of optional AdapterResponses indicating the response
|
|
1324
|
+
for each request the method made to compute the freshness for the provided sources.
|
|
1325
|
+
* the second element is a dictionary mapping an input source BaseRelation to a FreshnessResponse,
|
|
1326
|
+
if it was possible to calculate a FreshnessResponse for the source.
|
|
1327
|
+
"""
|
|
1328
|
+
# Track schema, identifiers of sources for lookup from batch query
|
|
1329
|
+
schema_identifier_to_source = {
|
|
1330
|
+
(
|
|
1331
|
+
source.path.get_lowered_part(ComponentName.Schema), # type: ignore
|
|
1332
|
+
source.path.get_lowered_part(ComponentName.Identifier), # type: ignore
|
|
1333
|
+
): source
|
|
1334
|
+
for source in sources
|
|
1335
|
+
}
|
|
1336
|
+
|
|
1337
|
+
# Group metadata sources by information schema -- one query per information schema will be necessary
|
|
1338
|
+
sources_by_info_schema: Dict[InformationSchema, List[BaseRelation]] = (
|
|
1339
|
+
self._get_catalog_relations_by_info_schema(sources)
|
|
1340
|
+
)
|
|
1341
|
+
|
|
1342
|
+
freshness_responses: Dict[BaseRelation, FreshnessResponse] = {}
|
|
1343
|
+
adapter_responses: List[Optional[AdapterResponse]] = []
|
|
1344
|
+
for (
|
|
1345
|
+
information_schema,
|
|
1346
|
+
sources_for_information_schema,
|
|
1347
|
+
) in sources_by_info_schema.items():
|
|
1348
|
+
result = self.execute_macro(
|
|
1349
|
+
GET_RELATION_LAST_MODIFIED_MACRO_NAME,
|
|
1350
|
+
kwargs={
|
|
1351
|
+
"information_schema": information_schema,
|
|
1352
|
+
"relations": sources_for_information_schema,
|
|
1353
|
+
},
|
|
1354
|
+
macro_resolver=macro_resolver,
|
|
1355
|
+
needs_conn=True,
|
|
1356
|
+
)
|
|
1357
|
+
adapter_response, table = result.response, result.table # type: ignore[attr-defined]
|
|
1358
|
+
adapter_responses.append(adapter_response)
|
|
1359
|
+
|
|
1360
|
+
for row in table:
|
|
1361
|
+
raw_relation, freshness_response = self._parse_freshness_row(row, table)
|
|
1362
|
+
source_relation_for_result = schema_identifier_to_source[raw_relation]
|
|
1363
|
+
freshness_responses[source_relation_for_result] = freshness_response
|
|
1364
|
+
|
|
1365
|
+
return adapter_responses, freshness_responses
|
|
1366
|
+
|
|
1300
1367
|
def calculate_freshness_from_metadata(
|
|
1301
1368
|
self,
|
|
1302
1369
|
source: BaseRelation,
|
|
1303
1370
|
macro_resolver: Optional[MacroResolverProtocol] = None,
|
|
1304
1371
|
) -> Tuple[Optional[AdapterResponse], FreshnessResponse]:
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
"relations": [source],
|
|
1308
|
-
}
|
|
1309
|
-
result = self.execute_macro(
|
|
1310
|
-
GET_RELATION_LAST_MODIFIED_MACRO_NAME,
|
|
1311
|
-
kwargs=kwargs,
|
|
1372
|
+
adapter_responses, freshness_responses = self.calculate_freshness_from_metadata_batch(
|
|
1373
|
+
sources=[source],
|
|
1312
1374
|
macro_resolver=macro_resolver,
|
|
1313
1375
|
)
|
|
1314
|
-
adapter_response
|
|
1376
|
+
adapter_response = adapter_responses[0] if adapter_responses else None
|
|
1377
|
+
return adapter_response, freshness_responses[source]
|
|
1315
1378
|
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
last_modified_val = get_column_value_uncased("last_modified", row)
|
|
1321
|
-
snapshotted_at_val = get_column_value_uncased("snapshotted_at", row)
|
|
1322
|
-
except Exception:
|
|
1323
|
-
raise MacroResultError(GET_RELATION_LAST_MODIFIED_MACRO_NAME, table)
|
|
1324
|
-
|
|
1325
|
-
if last_modified_val is None:
|
|
1379
|
+
def _create_freshness_response(
|
|
1380
|
+
self, last_modified: Optional[datetime], snapshotted_at: Optional[datetime]
|
|
1381
|
+
) -> FreshnessResponse:
|
|
1382
|
+
if last_modified is None:
|
|
1326
1383
|
# Interpret missing value as "infinitely long ago"
|
|
1327
1384
|
max_loaded_at = datetime(1, 1, 1, 0, 0, 0, tzinfo=pytz.UTC)
|
|
1328
1385
|
else:
|
|
1329
|
-
max_loaded_at = _utc(
|
|
1330
|
-
|
|
1331
|
-
snapshotted_at = _utc(snapshotted_at_val, None, "snapshotted_at")
|
|
1386
|
+
max_loaded_at = _utc(last_modified, None, "last_modified")
|
|
1332
1387
|
|
|
1388
|
+
snapshotted_at = _utc(snapshotted_at, None, "snapshotted_at")
|
|
1333
1389
|
age = (snapshotted_at - max_loaded_at).total_seconds()
|
|
1334
|
-
|
|
1335
1390
|
freshness: FreshnessResponse = {
|
|
1336
1391
|
"max_loaded_at": max_loaded_at,
|
|
1337
1392
|
"snapshotted_at": snapshotted_at,
|
|
1338
1393
|
"age": age,
|
|
1339
1394
|
}
|
|
1340
1395
|
|
|
1341
|
-
return
|
|
1396
|
+
return freshness
|
|
1397
|
+
|
|
1398
|
+
def _parse_freshness_row(
|
|
1399
|
+
self, row: "agate.Row", table: "agate.Table"
|
|
1400
|
+
) -> Tuple[Any, FreshnessResponse]:
|
|
1401
|
+
from dbt_common.clients.agate_helper import get_column_value_uncased
|
|
1402
|
+
|
|
1403
|
+
try:
|
|
1404
|
+
last_modified_val = get_column_value_uncased("last_modified", row)
|
|
1405
|
+
snapshotted_at_val = get_column_value_uncased("snapshotted_at", row)
|
|
1406
|
+
identifier = get_column_value_uncased("identifier", row)
|
|
1407
|
+
schema = get_column_value_uncased("schema", row)
|
|
1408
|
+
except Exception:
|
|
1409
|
+
raise MacroResultError(GET_RELATION_LAST_MODIFIED_MACRO_NAME, table)
|
|
1410
|
+
|
|
1411
|
+
freshness_response = self._create_freshness_response(last_modified_val, snapshotted_at_val)
|
|
1412
|
+
raw_relation = schema.lower().strip(), identifier.lower().strip()
|
|
1413
|
+
return raw_relation, freshness_response
|
|
1342
1414
|
|
|
1343
1415
|
def pre_model_hook(self, config: Mapping[str, Any]) -> Any:
|
|
1344
1416
|
"""A hook for running some operation before the model materialization
|
|
@@ -47,6 +47,9 @@ class BaseRelation(FakeAPIObject, Hashable):
|
|
|
47
47
|
quote_policy: Policy = field(default_factory=lambda: Policy())
|
|
48
48
|
dbt_created: bool = False
|
|
49
49
|
limit: Optional[int] = None
|
|
50
|
+
require_alias: bool = (
|
|
51
|
+
True # used to govern whether to add an alias when render_limited is called
|
|
52
|
+
)
|
|
50
53
|
|
|
51
54
|
# register relation types that can be renamed for the purpose of replacing relations using stages and backups
|
|
52
55
|
# adding a relation type here also requires defining the associated rename macro
|
|
@@ -205,14 +208,22 @@ class BaseRelation(FakeAPIObject, Hashable):
|
|
|
205
208
|
# if there is nothing set, this will return the empty string.
|
|
206
209
|
return ".".join(part for _, part in self._render_iterator() if part is not None)
|
|
207
210
|
|
|
211
|
+
def _render_limited_alias(self) -> str:
|
|
212
|
+
"""Some databases require an alias for subqueries (postgres, mysql) for all others we want to avoid adding
|
|
213
|
+
an alias as it has the potential to introduce issues with the query if the user also defines an alias.
|
|
214
|
+
"""
|
|
215
|
+
if self.require_alias:
|
|
216
|
+
return f" _dbt_limit_subq_{self.table}"
|
|
217
|
+
return ""
|
|
218
|
+
|
|
208
219
|
def render_limited(self) -> str:
|
|
209
220
|
rendered = self.render()
|
|
210
221
|
if self.limit is None:
|
|
211
222
|
return rendered
|
|
212
223
|
elif self.limit == 0:
|
|
213
|
-
return f"(select * from {rendered} where false limit 0)
|
|
224
|
+
return f"(select * from {rendered} where false limit 0){self._render_limited_alias()}"
|
|
214
225
|
else:
|
|
215
|
-
return f"(select * from {rendered} limit {self.limit})
|
|
226
|
+
return f"(select * from {rendered} limit {self.limit}){self._render_limited_alias()}"
|
|
216
227
|
|
|
217
228
|
def quoted(self, identifier):
|
|
218
229
|
return "{quote_char}{identifier}{quote_char}".format(
|
|
@@ -13,6 +13,9 @@ class Capability(str, Enum):
|
|
|
13
13
|
TableLastModifiedMetadata = "TableLastModifiedMetadata"
|
|
14
14
|
"""Indicates support for determining the time of the last table modification by querying database metadata."""
|
|
15
15
|
|
|
16
|
+
TableLastModifiedMetadataBatch = "TableLastModifiedMetadataBatch"
|
|
17
|
+
"""Indicates support for performantly determining the time of the last table modification by querying database metadata in batch."""
|
|
18
|
+
|
|
16
19
|
|
|
17
20
|
class Support(str, Enum):
|
|
18
21
|
Unknown = "Unknown"
|
|
@@ -40,11 +40,9 @@ class MaterializationConfig(Mapping, ABC):
|
|
|
40
40
|
contract: MaterializationContract
|
|
41
41
|
extra: Dict[str, Any]
|
|
42
42
|
|
|
43
|
-
def __contains__(self, item):
|
|
44
|
-
...
|
|
43
|
+
def __contains__(self, item): ...
|
|
45
44
|
|
|
46
|
-
def __delitem__(self, key):
|
|
47
|
-
...
|
|
45
|
+
def __delitem__(self, key): ...
|
|
48
46
|
|
|
49
47
|
|
|
50
48
|
class RelationConfig(Protocol):
|
|
@@ -14,7 +14,7 @@ When events are processed via `fire_event`, nearly everything is logged. Whether
|
|
|
14
14
|
|
|
15
15
|
We have switched from using betterproto to using google protobuf, because of a lack of support for Struct fields in betterproto.
|
|
16
16
|
|
|
17
|
-
The google protobuf interface is janky and very much non-Pythonic. The "generated" classes in types_pb2.py do not resemble regular Python classes. They do not have normal constructors; they can only be constructed empty. They can be "filled" by setting fields individually or using a json_format method like ParseDict. We have wrapped the logging events with a class (in types.py) which allows using a constructor -- keywords only, no positional parameters.
|
|
17
|
+
The google protobuf interface is janky and very much non-Pythonic. The "generated" classes in types_pb2.py do not resemble regular Python classes. They do not have normal constructors; they can only be constructed empty. They can be "filled" by setting fields individually or using a json_format method like ParseDict. We have wrapped the logging events with a class (in types.py) which allows using a constructor -- keywords only, no positional parameters.
|
|
18
18
|
|
|
19
19
|
## Required for Every Event
|
|
20
20
|
|
|
@@ -515,3 +515,13 @@ message ConstraintNotSupportedMsg {
|
|
|
515
515
|
AdapterCommonEventInfo info = 1;
|
|
516
516
|
ConstraintNotSupported data = 2;
|
|
517
517
|
}
|
|
518
|
+
|
|
519
|
+
// E050
|
|
520
|
+
message TypeCodeNotFound {
|
|
521
|
+
int32 type_code = 1;
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
message TypeCodeNotFoundMsg {
|
|
525
|
+
AdapterCommonEventInfo info = 1;
|
|
526
|
+
TypeCodeNotFound data = 2;
|
|
527
|
+
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# -*- coding: utf-8 -*-
|
|
2
2
|
# Generated by the protocol buffer compiler. DO NOT EDIT!
|
|
3
3
|
# source: adapter_types.proto
|
|
4
|
-
# Protobuf Python Version: 4.25.2
|
|
5
4
|
"""Generated protocol buffer code."""
|
|
6
5
|
from google.protobuf import descriptor as _descriptor
|
|
7
6
|
from google.protobuf import descriptor_pool as _descriptor_pool
|
|
@@ -16,7 +15,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__
|
|
|
16
15
|
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
|
|
17
16
|
|
|
18
17
|
|
|
19
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x61\x64\x61pter_types.proto\x12\x0bproto_types\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xab\x02\n\x16\x41\x64\x61pterCommonEventInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\x0b\n\x03msg\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\t\x12\x15\n\rinvocation_id\x18\x05 \x01(\t\x12\x0b\n\x03pid\x18\x06 \x01(\x05\x12\x0e\n\x06thread\x18\x07 \x01(\t\x12&\n\x02ts\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\x05\x65xtra\x18\t \x03(\x0b\x32..proto_types.AdapterCommonEventInfo.ExtraEntry\x12\x10\n\x08\x63\x61tegory\x18\n \x01(\t\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"]\n\x13\x41\x64\x61pterNodeRelation\x12\x10\n\x08\x64\x61tabase\x18\n \x01(\t\x12\x0e\n\x06schema\x18\x0b \x01(\t\x12\r\n\x05\x61lias\x18\x0c \x01(\t\x12\x15\n\rrelation_name\x18\r \x01(\t\"\x9f\x02\n\x0f\x41\x64\x61pterNodeInfo\x12\x11\n\tnode_path\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x11\n\tunique_id\x18\x03 \x01(\t\x12\x15\n\rresource_type\x18\x04 \x01(\t\x12\x14\n\x0cmaterialized\x18\x05 \x01(\t\x12\x13\n\x0bnode_status\x18\x06 \x01(\t\x12\x17\n\x0fnode_started_at\x18\x07 \x01(\t\x12\x18\n\x10node_finished_at\x18\x08 \x01(\t\x12%\n\x04meta\x18\t \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x37\n\rnode_relation\x18\n \x01(\x0b\x32 .proto_types.AdapterNodeRelation\"G\n\x0fReferenceKeyMsg\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x12\n\nidentifier\x18\x03 \x01(\t\"?\n\x19\x41\x64\x61pterDeprecationWarning\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"\x87\x01\n\x1c\x41\x64\x61pterDeprecationWarningMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.AdapterDeprecationWarning\"!\n\x1f\x43ollectFreshnessReturnSignature\"\x93\x01\n\"CollectFreshnessReturnSignatureMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.CollectFreshnessReturnSignature\"\x8e\x01\n\x11\x41\x64\x61pterEventDebug\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"w\n\x14\x41\x64\x61pterEventDebugMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterEventDebug\"\x8d\x01\n\x10\x41\x64\x61pterEventInfo\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"u\n\x13\x41\x64\x61pterEventInfoMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.AdapterEventInfo\"\x90\x01\n\x13\x41\x64\x61pterEventWarning\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"{\n\x16\x41\x64\x61pterEventWarningMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.AdapterEventWarning\"\xa0\x01\n\x11\x41\x64\x61pterEventError\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\x12\x10\n\x08\x65xc_info\x18\x05 \x01(\t\"w\n\x14\x41\x64\x61pterEventErrorMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterEventError\"f\n\rNewConnection\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_type\x18\x02 \x01(\t\x12\x11\n\tconn_name\x18\x03 \x01(\t\"o\n\x10NewConnectionMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NewConnection\"=\n\x10\x43onnectionReused\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x16\n\x0eorig_conn_name\x18\x02 \x01(\t\"u\n\x13\x43onnectionReusedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConnectionReused\"0\n\x1b\x43onnectionLeftOpenInCleanup\x12\x11\n\tconn_name\x18\x01 \x01(\t\"\x8b\x01\n\x1e\x43onnectionLeftOpenInCleanupMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConnectionLeftOpenInCleanup\".\n\x19\x43onnectionClosedInCleanup\x12\x11\n\tconn_name\x18\x01 \x01(\t\"\x87\x01\n\x1c\x43onnectionClosedInCleanupMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.ConnectionClosedInCleanup\"f\n\x0eRollbackFailed\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"q\n\x11RollbackFailedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.RollbackFailed\"V\n\x10\x43onnectionClosed\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"u\n\x13\x43onnectionClosedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConnectionClosed\"X\n\x12\x43onnectionLeftOpen\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"y\n\x15\x43onnectionLeftOpenMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.ConnectionLeftOpen\"N\n\x08Rollback\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"e\n\x0bRollbackMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.Rollback\"@\n\tCacheMiss\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\"g\n\x0c\x43\x61\x63heMissMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.CacheMiss\"b\n\rListRelations\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12/\n\trelations\x18\x03 \x03(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"o\n\x10ListRelationsMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.ListRelations\"g\n\x0e\x43onnectionUsed\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_type\x18\x02 \x01(\t\x12\x11\n\tconn_name\x18\x03 \x01(\t\"q\n\x11\x43onnectionUsedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ConnectionUsed\"[\n\x08SQLQuery\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\x12\x0b\n\x03sql\x18\x03 \x01(\t\"e\n\x0bSQLQueryMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.SQLQuery\"b\n\x0eSQLQueryStatus\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x0f\n\x07\x65lapsed\x18\x03 \x01(\x02\"q\n\x11SQLQueryStatusMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.SQLQueryStatus\"O\n\tSQLCommit\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"g\n\x0cSQLCommitMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.SQLCommit\"a\n\rColTypeChange\x12\x11\n\torig_type\x18\x01 \x01(\t\x12\x10\n\x08new_type\x18\x02 \x01(\t\x12+\n\x05table\x18\x03 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"o\n\x10\x43olTypeChangeMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.ColTypeChange\"@\n\x0eSchemaCreation\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"q\n\x11SchemaCreationMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.SchemaCreation\"<\n\nSchemaDrop\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"i\n\rSchemaDropMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.SchemaDrop\"\xde\x01\n\x0b\x43\x61\x63heAction\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12-\n\x07ref_key\x18\x02 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12/\n\tref_key_2\x18\x03 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12/\n\tref_key_3\x18\x04 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12.\n\x08ref_list\x18\x05 \x03(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"k\n\x0e\x43\x61\x63heActionMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.CacheAction\"\x98\x01\n\x0e\x43\x61\x63heDumpGraph\x12\x33\n\x04\x64ump\x18\x01 \x03(\x0b\x32%.proto_types.CacheDumpGraph.DumpEntry\x12\x14\n\x0c\x62\x65\x66ore_after\x18\x02 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\t\x1a+\n\tDumpEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"q\n\x11\x43\x61\x63heDumpGraphMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CacheDumpGraph\"B\n\x11\x41\x64\x61pterRegistered\x12\x14\n\x0c\x61\x64\x61pter_name\x18\x01 \x01(\t\x12\x17\n\x0f\x61\x64\x61pter_version\x18\x02 \x01(\t\"w\n\x14\x41\x64\x61pterRegisteredMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterRegistered\"!\n\x12\x41\x64\x61pterImportError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"y\n\x15\x41\x64\x61pterImportErrorMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.AdapterImportError\"#\n\x0fPluginLoadError\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"s\n\x12PluginLoadErrorMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.PluginLoadError\"a\n\x14NewConnectionOpening\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x18\n\x10\x63onnection_state\x18\x02 \x01(\t\"}\n\x17NewConnectionOpeningMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.NewConnectionOpening\"8\n\rCodeExecution\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x14\n\x0c\x63ode_content\x18\x02 \x01(\t\"o\n\x10\x43odeExecutionMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.CodeExecution\"6\n\x13\x43odeExecutionStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x0f\n\x07\x65lapsed\x18\x02 \x01(\x02\"{\n\x16\x43odeExecutionStatusMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.CodeExecutionStatus\"%\n\x16\x43\x61talogGenerationError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"\x81\x01\n\x19\x43\x61talogGenerationErrorMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.CatalogGenerationError\"-\n\x13WriteCatalogFailure\x12\x16\n\x0enum_exceptions\x18\x01 \x01(\x05\"{\n\x16WriteCatalogFailureMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.WriteCatalogFailure\"\x1e\n\x0e\x43\x61talogWritten\x12\x0c\n\x04path\x18\x01 \x01(\t\"q\n\x11\x43\x61talogWrittenMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CatalogWritten\"\x14\n\x12\x43\x61nnotGenerateDocs\"y\n\x15\x43\x61nnotGenerateDocsMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.CannotGenerateDocs\"\x11\n\x0f\x42uildingCatalog\"s\n\x12\x42uildingCatalogMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.BuildingCatalog\"-\n\x18\x44\x61tabaseErrorRunningHook\x12\x11\n\thook_type\x18\x01 \x01(\t\"\x85\x01\n\x1b\x44\x61tabaseErrorRunningHookMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DatabaseErrorRunningHook\"4\n\x0cHooksRunning\x12\x11\n\tnum_hooks\x18\x01 \x01(\x05\x12\x11\n\thook_type\x18\x02 \x01(\t\"m\n\x0fHooksRunningMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.HooksRunning\"T\n\x14\x46inishedRunningStats\x12\x11\n\tstat_line\x18\x01 \x01(\t\x12\x11\n\texecution\x18\x02 \x01(\t\x12\x16\n\x0e\x65xecution_time\x18\x03 \x01(\x02\"}\n\x17\x46inishedRunningStatsMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.FinishedRunningStats\"<\n\x15\x43onstraintNotEnforced\x12\x12\n\nconstraint\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\"\x7f\n\x18\x43onstraintNotEnforcedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ConstraintNotEnforced\"=\n\x16\x43onstraintNotSupported\x12\x12\n\nconstraint\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\"\x81\x01\n\x19\x43onstraintNotSupportedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.ConstraintNotSupportedb\x06proto3')
|
|
18
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x61\x64\x61pter_types.proto\x12\x0bproto_types\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\"\xab\x02\n\x16\x41\x64\x61pterCommonEventInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\t\x12\x0b\n\x03msg\x18\x03 \x01(\t\x12\r\n\x05level\x18\x04 \x01(\t\x12\x15\n\rinvocation_id\x18\x05 \x01(\t\x12\x0b\n\x03pid\x18\x06 \x01(\x05\x12\x0e\n\x06thread\x18\x07 \x01(\t\x12&\n\x02ts\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12=\n\x05\x65xtra\x18\t \x03(\x0b\x32..proto_types.AdapterCommonEventInfo.ExtraEntry\x12\x10\n\x08\x63\x61tegory\x18\n \x01(\t\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"]\n\x13\x41\x64\x61pterNodeRelation\x12\x10\n\x08\x64\x61tabase\x18\n \x01(\t\x12\x0e\n\x06schema\x18\x0b \x01(\t\x12\r\n\x05\x61lias\x18\x0c \x01(\t\x12\x15\n\rrelation_name\x18\r \x01(\t\"\x9f\x02\n\x0f\x41\x64\x61pterNodeInfo\x12\x11\n\tnode_path\x18\x01 \x01(\t\x12\x11\n\tnode_name\x18\x02 \x01(\t\x12\x11\n\tunique_id\x18\x03 \x01(\t\x12\x15\n\rresource_type\x18\x04 \x01(\t\x12\x14\n\x0cmaterialized\x18\x05 \x01(\t\x12\x13\n\x0bnode_status\x18\x06 \x01(\t\x12\x17\n\x0fnode_started_at\x18\x07 \x01(\t\x12\x18\n\x10node_finished_at\x18\x08 \x01(\t\x12%\n\x04meta\x18\t \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x37\n\rnode_relation\x18\n \x01(\x0b\x32 .proto_types.AdapterNodeRelation\"G\n\x0fReferenceKeyMsg\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12\x12\n\nidentifier\x18\x03 \x01(\t\"?\n\x19\x41\x64\x61pterDeprecationWarning\x12\x10\n\x08old_name\x18\x01 \x01(\t\x12\x10\n\x08new_name\x18\x02 \x01(\t\"\x87\x01\n\x1c\x41\x64\x61pterDeprecationWarningMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.AdapterDeprecationWarning\"!\n\x1f\x43ollectFreshnessReturnSignature\"\x93\x01\n\"CollectFreshnessReturnSignatureMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12:\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32,.proto_types.CollectFreshnessReturnSignature\"\x8e\x01\n\x11\x41\x64\x61pterEventDebug\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"w\n\x14\x41\x64\x61pterEventDebugMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterEventDebug\"\x8d\x01\n\x10\x41\x64\x61pterEventInfo\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"u\n\x13\x41\x64\x61pterEventInfoMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.AdapterEventInfo\"\x90\x01\n\x13\x41\x64\x61pterEventWarning\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\"{\n\x16\x41\x64\x61pterEventWarningMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.AdapterEventWarning\"\xa0\x01\n\x11\x41\x64\x61pterEventError\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x10\n\x08\x62\x61se_msg\x18\x03 \x01(\t\x12(\n\x04\x61rgs\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.ListValue\x12\x10\n\x08\x65xc_info\x18\x05 \x01(\t\"w\n\x14\x41\x64\x61pterEventErrorMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterEventError\"f\n\rNewConnection\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_type\x18\x02 \x01(\t\x12\x11\n\tconn_name\x18\x03 \x01(\t\"o\n\x10NewConnectionMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.NewConnection\"=\n\x10\x43onnectionReused\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x16\n\x0eorig_conn_name\x18\x02 \x01(\t\"u\n\x13\x43onnectionReusedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConnectionReused\"0\n\x1b\x43onnectionLeftOpenInCleanup\x12\x11\n\tconn_name\x18\x01 \x01(\t\"\x8b\x01\n\x1e\x43onnectionLeftOpenInCleanupMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x36\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32(.proto_types.ConnectionLeftOpenInCleanup\".\n\x19\x43onnectionClosedInCleanup\x12\x11\n\tconn_name\x18\x01 \x01(\t\"\x87\x01\n\x1c\x43onnectionClosedInCleanupMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x34\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32&.proto_types.ConnectionClosedInCleanup\"f\n\x0eRollbackFailed\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\x12\x10\n\x08\x65xc_info\x18\x03 \x01(\t\"q\n\x11RollbackFailedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.RollbackFailed\"V\n\x10\x43onnectionClosed\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"u\n\x13\x43onnectionClosedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.ConnectionClosed\"X\n\x12\x43onnectionLeftOpen\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"y\n\x15\x43onnectionLeftOpenMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.ConnectionLeftOpen\"N\n\x08Rollback\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"e\n\x0bRollbackMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.Rollback\"@\n\tCacheMiss\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x10\n\x08\x64\x61tabase\x18\x02 \x01(\t\x12\x0e\n\x06schema\x18\x03 \x01(\t\"g\n\x0c\x43\x61\x63heMissMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.CacheMiss\"b\n\rListRelations\x12\x10\n\x08\x64\x61tabase\x18\x01 \x01(\t\x12\x0e\n\x06schema\x18\x02 \x01(\t\x12/\n\trelations\x18\x03 \x03(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"o\n\x10ListRelationsMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.ListRelations\"g\n\x0e\x43onnectionUsed\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_type\x18\x02 \x01(\t\x12\x11\n\tconn_name\x18\x03 \x01(\t\"q\n\x11\x43onnectionUsedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.ConnectionUsed\"[\n\x08SQLQuery\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\x12\x0b\n\x03sql\x18\x03 \x01(\t\"e\n\x0bSQLQueryMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x15.proto_types.SQLQuery\"b\n\x0eSQLQueryStatus\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x0f\n\x07\x65lapsed\x18\x03 \x01(\x02\"q\n\x11SQLQueryStatusMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.SQLQueryStatus\"O\n\tSQLCommit\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x11\n\tconn_name\x18\x02 \x01(\t\"g\n\x0cSQLCommitMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12$\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x16.proto_types.SQLCommit\"a\n\rColTypeChange\x12\x11\n\torig_type\x18\x01 \x01(\t\x12\x10\n\x08new_type\x18\x02 \x01(\t\x12+\n\x05table\x18\x03 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"o\n\x10\x43olTypeChangeMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.ColTypeChange\"@\n\x0eSchemaCreation\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"q\n\x11SchemaCreationMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.SchemaCreation\"<\n\nSchemaDrop\x12.\n\x08relation\x18\x01 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"i\n\rSchemaDropMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12%\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x17.proto_types.SchemaDrop\"\xde\x01\n\x0b\x43\x61\x63heAction\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12-\n\x07ref_key\x18\x02 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12/\n\tref_key_2\x18\x03 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12/\n\tref_key_3\x18\x04 \x01(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\x12.\n\x08ref_list\x18\x05 \x03(\x0b\x32\x1c.proto_types.ReferenceKeyMsg\"k\n\x0e\x43\x61\x63heActionMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12&\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x18.proto_types.CacheAction\"\x98\x01\n\x0e\x43\x61\x63heDumpGraph\x12\x33\n\x04\x64ump\x18\x01 \x03(\x0b\x32%.proto_types.CacheDumpGraph.DumpEntry\x12\x14\n\x0c\x62\x65\x66ore_after\x18\x02 \x01(\t\x12\x0e\n\x06\x61\x63tion\x18\x03 \x01(\t\x1a+\n\tDumpEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"q\n\x11\x43\x61\x63heDumpGraphMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CacheDumpGraph\"B\n\x11\x41\x64\x61pterRegistered\x12\x14\n\x0c\x61\x64\x61pter_name\x18\x01 \x01(\t\x12\x17\n\x0f\x61\x64\x61pter_version\x18\x02 \x01(\t\"w\n\x14\x41\x64\x61pterRegisteredMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1e.proto_types.AdapterRegistered\"!\n\x12\x41\x64\x61pterImportError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"y\n\x15\x41\x64\x61pterImportErrorMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.AdapterImportError\"#\n\x0fPluginLoadError\x12\x10\n\x08\x65xc_info\x18\x01 \x01(\t\"s\n\x12PluginLoadErrorMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.PluginLoadError\"a\n\x14NewConnectionOpening\x12/\n\tnode_info\x18\x01 \x01(\x0b\x32\x1c.proto_types.AdapterNodeInfo\x12\x18\n\x10\x63onnection_state\x18\x02 \x01(\t\"}\n\x17NewConnectionOpeningMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.NewConnectionOpening\"8\n\rCodeExecution\x12\x11\n\tconn_name\x18\x01 \x01(\t\x12\x14\n\x0c\x63ode_content\x18\x02 \x01(\t\"o\n\x10\x43odeExecutionMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1a.proto_types.CodeExecution\"6\n\x13\x43odeExecutionStatus\x12\x0e\n\x06status\x18\x01 \x01(\t\x12\x0f\n\x07\x65lapsed\x18\x02 \x01(\x02\"{\n\x16\x43odeExecutionStatusMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.CodeExecutionStatus\"%\n\x16\x43\x61talogGenerationError\x12\x0b\n\x03\x65xc\x18\x01 \x01(\t\"\x81\x01\n\x19\x43\x61talogGenerationErrorMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.CatalogGenerationError\"-\n\x13WriteCatalogFailure\x12\x16\n\x0enum_exceptions\x18\x01 \x01(\x05\"{\n\x16WriteCatalogFailureMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12.\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32 .proto_types.WriteCatalogFailure\"\x1e\n\x0e\x43\x61talogWritten\x12\x0c\n\x04path\x18\x01 \x01(\t\"q\n\x11\x43\x61talogWrittenMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12)\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1b.proto_types.CatalogWritten\"\x14\n\x12\x43\x61nnotGenerateDocs\"y\n\x15\x43\x61nnotGenerateDocsMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12-\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1f.proto_types.CannotGenerateDocs\"\x11\n\x0f\x42uildingCatalog\"s\n\x12\x42uildingCatalogMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12*\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1c.proto_types.BuildingCatalog\"-\n\x18\x44\x61tabaseErrorRunningHook\x12\x11\n\thook_type\x18\x01 \x01(\t\"\x85\x01\n\x1b\x44\x61tabaseErrorRunningHookMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x33\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32%.proto_types.DatabaseErrorRunningHook\"4\n\x0cHooksRunning\x12\x11\n\tnum_hooks\x18\x01 \x01(\x05\x12\x11\n\thook_type\x18\x02 \x01(\t\"m\n\x0fHooksRunningMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\'\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x19.proto_types.HooksRunning\"T\n\x14\x46inishedRunningStats\x12\x11\n\tstat_line\x18\x01 \x01(\t\x12\x11\n\texecution\x18\x02 \x01(\t\x12\x16\n\x0e\x65xecution_time\x18\x03 \x01(\x02\"}\n\x17\x46inishedRunningStatsMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12/\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32!.proto_types.FinishedRunningStats\"<\n\x15\x43onstraintNotEnforced\x12\x12\n\nconstraint\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\"\x7f\n\x18\x43onstraintNotEnforcedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x30\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\".proto_types.ConstraintNotEnforced\"=\n\x16\x43onstraintNotSupported\x12\x12\n\nconstraint\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x61pter\x18\x02 \x01(\t\"\x81\x01\n\x19\x43onstraintNotSupportedMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12\x31\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32#.proto_types.ConstraintNotSupported\"%\n\x10TypeCodeNotFound\x12\x11\n\ttype_code\x18\x01 \x01(\x05\"u\n\x13TypeCodeNotFoundMsg\x12\x31\n\x04info\x18\x01 \x01(\x0b\x32#.proto_types.AdapterCommonEventInfo\x12+\n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x1d.proto_types.TypeCodeNotFoundb\x06proto3')
|
|
20
19
|
|
|
21
20
|
_globals = globals()
|
|
22
21
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
|
@@ -203,4 +202,8 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
|
203
202
|
_globals['_CONSTRAINTNOTSUPPORTED']._serialized_end=8961
|
|
204
203
|
_globals['_CONSTRAINTNOTSUPPORTEDMSG']._serialized_start=8964
|
|
205
204
|
_globals['_CONSTRAINTNOTSUPPORTEDMSG']._serialized_end=9093
|
|
205
|
+
_globals['_TYPECODENOTFOUND']._serialized_start=9095
|
|
206
|
+
_globals['_TYPECODENOTFOUND']._serialized_end=9132
|
|
207
|
+
_globals['_TYPECODENOTFOUNDMSG']._serialized_start=9134
|
|
208
|
+
_globals['_TYPECODENOTFOUNDMSG']._serialized_end=9251
|
|
206
209
|
# @@protoc_insertion_point(module_scope)
|
|
@@ -2,6 +2,7 @@ from dbt_common.ui import line_wrap_message, warning_tag
|
|
|
2
2
|
|
|
3
3
|
from dbt.adapters.events.base_types import (
|
|
4
4
|
DebugLevel,
|
|
5
|
+
DynamicLevel,
|
|
5
6
|
ErrorLevel,
|
|
6
7
|
InfoLevel,
|
|
7
8
|
WarnLevel,
|
|
@@ -281,7 +282,7 @@ class CacheDumpGraph(DebugLevel):
|
|
|
281
282
|
# Skipping E032, E033, E034
|
|
282
283
|
|
|
283
284
|
|
|
284
|
-
class AdapterRegistered(
|
|
285
|
+
class AdapterRegistered(DynamicLevel):
|
|
285
286
|
def code(self) -> str:
|
|
286
287
|
return "E034"
|
|
287
288
|
|
|
@@ -421,3 +422,16 @@ class ConstraintNotSupported(WarnLevel):
|
|
|
421
422
|
"be ignored. Set 'warn_unsupported: false' on this constraint to ignore this warning."
|
|
422
423
|
)
|
|
423
424
|
return line_wrap_message(warning_tag(msg))
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
class TypeCodeNotFound(DebugLevel):
|
|
428
|
+
def code(self) -> str:
|
|
429
|
+
return "E050"
|
|
430
|
+
|
|
431
|
+
def message(self) -> str:
|
|
432
|
+
msg = (
|
|
433
|
+
f"The `type_code` {self.type_code} was not recognized, which may affect error "
|
|
434
|
+
"messages for enforced contracts that fail as well as `Column.data_type` values "
|
|
435
|
+
"returned by `get_column_schema_from_query`"
|
|
436
|
+
)
|
|
437
|
+
return line_wrap_message(warning_tag(msg))
|
|
@@ -7,6 +7,7 @@ import traceback
|
|
|
7
7
|
from typing import Any, Dict, List, Optional, Set, Type
|
|
8
8
|
|
|
9
9
|
from dbt_common.events.functions import fire_event
|
|
10
|
+
from dbt_common.events.base_types import EventLevel
|
|
10
11
|
from dbt_common.exceptions import DbtInternalError, DbtRuntimeError
|
|
11
12
|
from dbt_common.semver import VersionSpecifier
|
|
12
13
|
|
|
@@ -96,11 +97,19 @@ class AdapterContainer:
|
|
|
96
97
|
|
|
97
98
|
return plugin.credentials
|
|
98
99
|
|
|
99
|
-
def register_adapter(
|
|
100
|
+
def register_adapter(
|
|
101
|
+
self,
|
|
102
|
+
config: AdapterRequiredConfig,
|
|
103
|
+
mp_context: SpawnContext,
|
|
104
|
+
adapter_registered_log_level: Optional[EventLevel] = EventLevel.INFO,
|
|
105
|
+
) -> None:
|
|
100
106
|
adapter_name = config.credentials.type
|
|
101
107
|
adapter_type = self.get_adapter_class_by_name(adapter_name)
|
|
102
108
|
adapter_version = self._adapter_version(adapter_name)
|
|
103
|
-
fire_event(
|
|
109
|
+
fire_event(
|
|
110
|
+
AdapterRegistered(adapter_name=adapter_name, adapter_version=adapter_version),
|
|
111
|
+
level=adapter_registered_log_level,
|
|
112
|
+
)
|
|
104
113
|
with self.lock:
|
|
105
114
|
if adapter_name in self.adapters:
|
|
106
115
|
# this shouldn't really happen...
|
|
@@ -186,8 +195,12 @@ class AdapterContainer:
|
|
|
186
195
|
FACTORY: AdapterContainer = AdapterContainer()
|
|
187
196
|
|
|
188
197
|
|
|
189
|
-
def register_adapter(
|
|
190
|
-
|
|
198
|
+
def register_adapter(
|
|
199
|
+
config: AdapterRequiredConfig,
|
|
200
|
+
mp_context: SpawnContext,
|
|
201
|
+
adapter_registered_log_level: Optional[EventLevel] = EventLevel.INFO,
|
|
202
|
+
) -> None:
|
|
203
|
+
FACTORY.register_adapter(config, mp_context, adapter_registered_log_level)
|
|
191
204
|
|
|
192
205
|
|
|
193
206
|
def get_adapter(config: AdapterRequiredConfig):
|
|
@@ -47,8 +47,7 @@ Self = TypeVar("Self", bound="RelationProtocol")
|
|
|
47
47
|
|
|
48
48
|
class RelationProtocol(Protocol):
|
|
49
49
|
@classmethod
|
|
50
|
-
def get_default_quote_policy(cls) -> Policy:
|
|
51
|
-
...
|
|
50
|
+
def get_default_quote_policy(cls) -> Policy: ...
|
|
52
51
|
|
|
53
52
|
@classmethod
|
|
54
53
|
def create_from(
|
|
@@ -56,8 +55,7 @@ class RelationProtocol(Protocol):
|
|
|
56
55
|
quoting: HasQuoting,
|
|
57
56
|
relation_config: RelationConfig,
|
|
58
57
|
**kwargs: Any,
|
|
59
|
-
) -> Self:
|
|
60
|
-
...
|
|
58
|
+
) -> Self: ...
|
|
61
59
|
|
|
62
60
|
|
|
63
61
|
AdapterConfig_T = TypeVar("AdapterConfig_T", bound=AdapterConfig)
|
|
@@ -73,8 +71,7 @@ class MacroContextGeneratorCallable(Protocol):
|
|
|
73
71
|
config: AdapterRequiredConfig,
|
|
74
72
|
macro_resolver: MacroResolverProtocol,
|
|
75
73
|
package_name: Optional[str],
|
|
76
|
-
) -> Dict[str, Any]:
|
|
77
|
-
...
|
|
74
|
+
) -> Dict[str, Any]: ...
|
|
78
75
|
|
|
79
76
|
|
|
80
77
|
# TODO CT-211
|
|
@@ -96,81 +93,58 @@ class AdapterProtocol( # type: ignore[misc]
|
|
|
96
93
|
ConnectionManager: Type[ConnectionManager_T]
|
|
97
94
|
connections: ConnectionManager_T
|
|
98
95
|
|
|
99
|
-
def __init__(self, config: AdapterRequiredConfig) -> None:
|
|
100
|
-
...
|
|
96
|
+
def __init__(self, config: AdapterRequiredConfig) -> None: ...
|
|
101
97
|
|
|
102
|
-
def set_macro_resolver(self, macro_resolver: MacroResolverProtocol) -> None:
|
|
103
|
-
...
|
|
98
|
+
def set_macro_resolver(self, macro_resolver: MacroResolverProtocol) -> None: ...
|
|
104
99
|
|
|
105
|
-
def get_macro_resolver(self) -> Optional[MacroResolverProtocol]:
|
|
106
|
-
...
|
|
100
|
+
def get_macro_resolver(self) -> Optional[MacroResolverProtocol]: ...
|
|
107
101
|
|
|
108
|
-
def clear_macro_resolver(self) -> None:
|
|
109
|
-
...
|
|
102
|
+
def clear_macro_resolver(self) -> None: ...
|
|
110
103
|
|
|
111
104
|
def set_macro_context_generator(
|
|
112
105
|
self,
|
|
113
106
|
macro_context_generator: MacroContextGeneratorCallable,
|
|
114
|
-
) -> None:
|
|
115
|
-
...
|
|
107
|
+
) -> None: ...
|
|
116
108
|
|
|
117
109
|
@classmethod
|
|
118
110
|
def type(cls) -> str:
|
|
119
111
|
pass
|
|
120
112
|
|
|
121
|
-
def set_query_header(self, query_header_context: Dict[str, Any]) -> None:
|
|
122
|
-
...
|
|
113
|
+
def set_query_header(self, query_header_context: Dict[str, Any]) -> None: ...
|
|
123
114
|
|
|
124
115
|
@staticmethod
|
|
125
|
-
def get_thread_identifier() -> Hashable:
|
|
126
|
-
...
|
|
116
|
+
def get_thread_identifier() -> Hashable: ...
|
|
127
117
|
|
|
128
|
-
def get_thread_connection(self) -> Connection:
|
|
129
|
-
...
|
|
118
|
+
def get_thread_connection(self) -> Connection: ...
|
|
130
119
|
|
|
131
|
-
def set_thread_connection(self, conn: Connection) -> None:
|
|
132
|
-
...
|
|
120
|
+
def set_thread_connection(self, conn: Connection) -> None: ...
|
|
133
121
|
|
|
134
|
-
def get_if_exists(self) -> Optional[Connection]:
|
|
135
|
-
...
|
|
122
|
+
def get_if_exists(self) -> Optional[Connection]: ...
|
|
136
123
|
|
|
137
|
-
def clear_thread_connection(self) -> None:
|
|
138
|
-
...
|
|
124
|
+
def clear_thread_connection(self) -> None: ...
|
|
139
125
|
|
|
140
|
-
def clear_transaction(self) -> None:
|
|
141
|
-
...
|
|
126
|
+
def clear_transaction(self) -> None: ...
|
|
142
127
|
|
|
143
|
-
def exception_handler(self, sql: str) -> ContextManager:
|
|
144
|
-
...
|
|
128
|
+
def exception_handler(self, sql: str) -> ContextManager: ...
|
|
145
129
|
|
|
146
|
-
def set_connection_name(self, name: Optional[str] = None) -> Connection:
|
|
147
|
-
...
|
|
130
|
+
def set_connection_name(self, name: Optional[str] = None) -> Connection: ...
|
|
148
131
|
|
|
149
|
-
def cancel_open(self) -> Optional[List[str]]:
|
|
150
|
-
...
|
|
132
|
+
def cancel_open(self) -> Optional[List[str]]: ...
|
|
151
133
|
|
|
152
|
-
def open(cls, connection: Connection) -> Connection:
|
|
153
|
-
...
|
|
134
|
+
def open(cls, connection: Connection) -> Connection: ...
|
|
154
135
|
|
|
155
|
-
def release(self) -> None:
|
|
156
|
-
...
|
|
136
|
+
def release(self) -> None: ...
|
|
157
137
|
|
|
158
|
-
def cleanup_all(self) -> None:
|
|
159
|
-
...
|
|
138
|
+
def cleanup_all(self) -> None: ...
|
|
160
139
|
|
|
161
|
-
def begin(self) -> None:
|
|
162
|
-
...
|
|
140
|
+
def begin(self) -> None: ...
|
|
163
141
|
|
|
164
|
-
def commit(self) -> None:
|
|
165
|
-
...
|
|
142
|
+
def commit(self) -> None: ...
|
|
166
143
|
|
|
167
|
-
def close(cls, connection: Connection) -> Connection:
|
|
168
|
-
...
|
|
144
|
+
def close(cls, connection: Connection) -> Connection: ...
|
|
169
145
|
|
|
170
|
-
def commit_if_has_connection(self) -> None:
|
|
171
|
-
...
|
|
146
|
+
def commit_if_has_connection(self) -> None: ...
|
|
172
147
|
|
|
173
148
|
def execute(
|
|
174
149
|
self, sql: str, auto_begin: bool = False, fetch: bool = False
|
|
175
|
-
) -> Tuple[AdapterResponse, "agate.Table"]:
|
|
176
|
-
...
|
|
150
|
+
) -> Tuple[AdapterResponse, "agate.Table"]: ...
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# RelationConfig
|
|
2
2
|
This package serves as an initial abstraction for managing the inspection of existing relations and determining
|
|
3
|
-
changes on those relations. It arose from the materialized view work and is currently only supporting
|
|
3
|
+
changes on those relations. It arose from the materialized view work and is currently only supporting
|
|
4
4
|
materialized views for Postgres and Redshift as well as dynamic tables for Snowflake. There are three main
|
|
5
5
|
classes in this package.
|
|
6
6
|
|
|
@@ -16,7 +16,9 @@ class RelationConfigChangeAction(StrEnum):
|
|
|
16
16
|
@dataclass(frozen=True, eq=True, unsafe_hash=True)
|
|
17
17
|
class RelationConfigChange(RelationConfigBase, ABC):
|
|
18
18
|
action: RelationConfigChangeAction
|
|
19
|
-
context:
|
|
19
|
+
context: (
|
|
20
|
+
Hashable # this is usually a RelationConfig, e.g. IndexConfig, but shouldn't be limited
|
|
21
|
+
)
|
|
20
22
|
|
|
21
23
|
@property
|
|
22
24
|
@abstractmethod
|
{dbt_adapters-1.0.0b2 → dbt_adapters-1.1.0}/dbt/include/global_project/macros/adapters/columns.sql
RENAMED
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
{%- do col_naked_numeric.append(col['name']) -%}
|
|
54
54
|
{%- endif -%}
|
|
55
55
|
{% set col_name = adapter.quote(col['name']) if col.get('quote') else col['name'] %}
|
|
56
|
-
cast(null
|
|
56
|
+
{{ cast('null', col['data_type']) }} as {{ col_name }}{{ ", " if not loop.last }}
|
|
57
57
|
{%- endfor -%}
|
|
58
58
|
{%- if (col_err | length) > 0 -%}
|
|
59
59
|
{{ exceptions.column_type_missing(column_names=col_err) }}
|