diff --git a/.changes/unreleased/Fixes-20240320-154054.yaml b/.changes/unreleased/Fixes-20240320-154054.yaml new file mode 100644 index 000000000..6d74a2be9 --- /dev/null +++ b/.changes/unreleased/Fixes-20240320-154054.yaml @@ -0,0 +1,7 @@ +kind: Fixes +body: modify metadata queries to take into account object type of BASE TABLE being + assigned to dynamic tables when was null previously +time: 2024-03-20T15:40:54.074292-05:00 +custom: + Author: McKnight-42 + Issue: "934" diff --git a/dbt/include/snowflake/macros/catalog.sql b/dbt/include/snowflake/macros/catalog.sql index f0c766865..8354d3c44 100644 --- a/dbt/include/snowflake/macros/catalog.sql +++ b/dbt/include/snowflake/macros/catalog.sql @@ -41,7 +41,10 @@ table_catalog as "table_database", table_schema as "table_schema", table_name as "table_name", - coalesce(table_type, 'DYNAMIC TABLE') as "table_type", + case + when is_dynamic = 'YES' and table_type = 'BASE TABLE' THEN 'DYNAMIC TABLE' + else table_type + end as "table_type", comment as "table_comment", -- note: this is the _role_ that owns the table diff --git a/tests/functional/adapter/dynamic_table_tests/utils.py b/tests/functional/adapter/dynamic_table_tests/utils.py index 1f145ec04..5763e1b6c 100644 --- a/tests/functional/adapter/dynamic_table_tests/utils.py +++ b/tests/functional/adapter/dynamic_table_tests/utils.py @@ -11,10 +11,10 @@ def query_relation_type(project, relation: SnowflakeRelation) -> Optional[str]: sql = f""" select case + when table_type = 'BASE TABLE' and is_dynamic = 'YES' then 'dynamic_table' when table_type = 'BASE TABLE' then 'table' when table_type = 'VIEW' then 'view' when table_type = 'EXTERNAL TABLE' then 'external_table' - when table_type is null then 'dynamic_table' end as relation_type from information_schema.tables where table_name like '{relation.identifier.upper()}'