diff --git a/dbt/include/snowflake/macros/catalog.sql b/dbt/include/snowflake/macros/catalog.sql index f0c766865..e704771cb 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 target_lag not null and table_type = 'BASE TABLE' THEN 'DYNAMIC TABLE' + else coalesce(table_type, 'BASE TABLE') + 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..87196780c 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 target_lag is not null 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()}'