From 6d12d0318b0be4cdb6809a69bbaac08b26d4b31b Mon Sep 17 00:00:00 2001 From: Darius Jahandarie Date: Wed, 28 Jan 2026 15:26:15 +0900 Subject: [PATCH] allow setting owner --- .../dbt/adapters/materialize/impl.py | 1 + .../include/materialize/macros/adapters.sql | 20 +++++++++++++++++++ .../materializations/materialized_view.sql | 1 + .../macros/materializations/seed/seed.sql | 1 + .../macros/materializations/sink.sql | 1 + .../macros/materializations/source.sql | 1 + .../macros/materializations/source_table.sql | 1 + .../macros/materializations/table.sql | 1 + .../macros/materializations/view.sql | 1 + 9 files changed, 28 insertions(+) diff --git a/misc/dbt-materialize/dbt/adapters/materialize/impl.py b/misc/dbt-materialize/dbt/adapters/materialize/impl.py index 8c5369e751bc2..24b7004132e2a 100644 --- a/misc/dbt-materialize/dbt/adapters/materialize/impl.py +++ b/misc/dbt-materialize/dbt/adapters/materialize/impl.py @@ -105,6 +105,7 @@ class MaterializeConfig(AdapterConfig): cluster: Optional[str] = None refresh_interval: Optional[MaterializeRefreshIntervalConfig] = None retain_history: Optional[str] = None + owner: Optional[str] = None class MaterializeAdapter(PostgresAdapter, SQLAdapter): diff --git a/misc/dbt-materialize/dbt/include/materialize/macros/adapters.sql b/misc/dbt-materialize/dbt/include/materialize/macros/adapters.sql index 6fff51d94e844..7ccabc35ae52c 100644 --- a/misc/dbt-materialize/dbt/include/materialize/macros/adapters.sql +++ b/misc/dbt-materialize/dbt/include/materialize/macros/adapters.sql @@ -272,6 +272,26 @@ {% endmacro %} -- In the dbt-adapter we extend the Relation class to include sinks and indexes +{% macro materialize__alter_owner(relation) %} + {%- set owner = config.get('owner') -%} + {% if owner %} + {% set alter_stmt %} + {% if relation.type == 'view' %} + alter view {{ relation }} owner to {{ owner }} + {% elif relation.is_materialized_view %} + alter materialized view {{ relation }} owner to {{ owner }} + {% elif relation.type == 'sink' %} + alter sink {{ relation }} owner to {{ owner }} + {% elif relation.type == 'source' %} + alter source {{ relation }} owner to {{ owner }} + {% elif relation.type == 'table' %} + alter table {{ relation }} owner to {{ owner }} + {% endif %} + {% endset %} + {% do run_query(alter_stmt) %} + {% endif %} +{% endmacro %} + {% macro materialize__list_relations_without_caching(schema_relation) %} {% call statement('list_relations_without_caching', fetch_result=True) -%} select diff --git a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/materialized_view.sql b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/materialized_view.sql index 7d3fe54c7b7d8..67d6d2f4169da 100644 --- a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/materialized_view.sql +++ b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/materialized_view.sql @@ -42,6 +42,7 @@ {{ create_indexes(target_relation) }} {% do persist_docs(target_relation, model) %} + {% do materialize__alter_owner(target_relation) %} {{ run_hooks(post_hooks, inside_transaction=False) }} {{ run_hooks(post_hooks, inside_transaction=True) }} diff --git a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/seed/seed.sql b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/seed/seed.sql index 7d8f210ae0df8..0f54803f2e81b 100644 --- a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/seed/seed.sql +++ b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/seed/seed.sql @@ -54,6 +54,7 @@ {% set target_relation = this.incorporate(type='table') %} {% do persist_docs(target_relation, model) %} + {% do materialize__alter_owner(target_relation) %} {% if full_refresh_mode or not exists_as_table %} {% do create_indexes(target_relation) %} diff --git a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/sink.sql b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/sink.sql index 41f6662f1a6a6..2d7005587907e 100644 --- a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/sink.sql +++ b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/sink.sql @@ -41,6 +41,7 @@ {%- endcall %} {% do persist_docs(target_relation, model) %} + {% do materialize__alter_owner(target_relation) %} {{ run_hooks(post_hooks, inside_transaction=False) }} {{ run_hooks(post_hooks, inside_transaction=True) }} diff --git a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/source.sql b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/source.sql index 06bab5479fbcb..1d08f1b191520 100644 --- a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/source.sql +++ b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/source.sql @@ -58,6 +58,7 @@ {{ create_indexes(target_relation) }} {% do persist_docs(target_relation, model) %} + {% do materialize__alter_owner(target_relation) %} {{ run_hooks(post_hooks, inside_transaction=False) }} {{ run_hooks(post_hooks, inside_transaction=True) }} diff --git a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/source_table.sql b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/source_table.sql index 6468741b47f49..2fb271aa30df2 100644 --- a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/source_table.sql +++ b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/source_table.sql @@ -49,6 +49,7 @@ {{ create_indexes(target_relation) }} {% do persist_docs(target_relation, model) %} + {% do materialize__alter_owner(target_relation) %} {{ run_hooks(post_hooks, inside_transaction=False) }} {{ run_hooks(post_hooks, inside_transaction=True) }} diff --git a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/table.sql b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/table.sql index d55a4f79361aa..160d29a53f4dc 100644 --- a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/table.sql +++ b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/table.sql @@ -43,6 +43,7 @@ {{ create_indexes(target_relation) }} {% do persist_docs(target_relation, model) %} + {% do materialize__alter_owner(target_relation) %} {{ run_hooks(post_hooks, inside_transaction=False) }} {{ run_hooks(post_hooks, inside_transaction=True) }} diff --git a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/view.sql b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/view.sql index 4987b5d29675f..674a2afee5532 100644 --- a/misc/dbt-materialize/dbt/include/materialize/macros/materializations/view.sql +++ b/misc/dbt-materialize/dbt/include/materialize/macros/materializations/view.sql @@ -42,6 +42,7 @@ {{ create_indexes(target_relation) }} {% do persist_docs(target_relation, model) %} + {% do materialize__alter_owner(target_relation) %} {{ run_hooks(post_hooks, inside_transaction=False) }} {{ run_hooks(post_hooks, inside_transaction=True) }}