diff --git a/dbt-adapters/src/dbt/adapters/base/impl.py b/dbt-adapters/src/dbt/adapters/base/impl.py index be9e709a6..9152510c8 100644 --- a/dbt-adapters/src/dbt/adapters/base/impl.py +++ b/dbt-adapters/src/dbt/adapters/base/impl.py @@ -1329,7 +1329,6 @@ def _catalog_filter_table( "table_name", "table_type", "table_comment", - "table_owner", "column_name", "column_type", "column_comment", diff --git a/dbt-snowflake/src/dbt/adapters/snowflake/impl.py b/dbt-snowflake/src/dbt/adapters/snowflake/impl.py index 563cc55ae..a255a7cf2 100644 --- a/dbt-snowflake/src/dbt/adapters/snowflake/impl.py +++ b/dbt-snowflake/src/dbt/adapters/snowflake/impl.py @@ -120,8 +120,27 @@ def _catalog_filter_table( ) -> "agate.Table": # On snowflake, users can set QUOTED_IDENTIFIERS_IGNORE_CASE, so force # the column names to their lowercased forms. + from dbt_common.clients.agate_helper import table_from_rows + from dbt.adapters.base.impl import _catalog_filter_schemas + lowered = table.rename(column_names=[c.lower() for c in table.column_names]) - return super()._catalog_filter_table(lowered, used_schemas) + + table = table_from_rows( + lowered.rows, + lowered.column_names, + text_only_columns=[ + "table_database", + "table_schema", + "table_name", + "table_type", + "table_owner", + "table_comment", + "column_name", + "column_type", + "column_comment", + ], + ) + return table.where(_catalog_filter_schemas(used_schemas)) def _make_match_kwargs(self, database, schema, identifier): # if any path part is already quoted then consider same casing but without quotes