From e32466507430cfdc8b717fb16142fcabf96233f8 Mon Sep 17 00:00:00 2001 From: Steven Reitsma Date: Thu, 27 Nov 2025 11:37:57 +0100 Subject: [PATCH] Fix column order in incremental materialization when using contracts --- .../materializations/incremental/distributed_incremental.sql | 5 +++-- .../macros/materializations/incremental/incremental.sql | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/dbt/include/clickhouse/macros/materializations/incremental/distributed_incremental.sql b/dbt/include/clickhouse/macros/materializations/incremental/distributed_incremental.sql index 93cdcfcb..b71306b4 100644 --- a/dbt/include/clickhouse/macros/materializations/incremental/distributed_incremental.sql +++ b/dbt/include/clickhouse/macros/materializations/incremental/distributed_incremental.sql @@ -27,6 +27,7 @@ {% endif %} {%- set inserts_only = config.get('inserts_only') -%} {%- set grant_config = config.get('grants') -%} + {%- set has_contract = config.get('contract').enforced -%} {%- set full_refresh_mode = (should_full_refresh() or existing_relation.is_view) -%} {%- set on_schema_change = incremental_validate_on_schema_change(config.get('on_schema_change'), default='ignore') -%} @@ -70,7 +71,7 @@ -- table. It is the user's responsibility to avoid duplicates. Note that "inserts_only" is a ClickHouse adapter -- specific configurable that is used to avoid creating an expensive intermediate table. {% call statement('main') %} - {{ clickhouse__insert_into(target_relation, sql) }} + {{ clickhouse__insert_into(target_relation, sql, has_contract) }} {% endcall %} {% else %} @@ -99,7 +100,7 @@ {% do clickhouse__incremental_insert_overwrite(existing_relation, partition_by, True) %} {% elif incremental_strategy == 'append' %} {% call statement('main') %} - {{ clickhouse__insert_into(target_relation, sql) }} + {{ clickhouse__insert_into(target_relation, sql, has_contract) }} {% endcall %} {% endif %} {% endif %} diff --git a/dbt/include/clickhouse/macros/materializations/incremental/incremental.sql b/dbt/include/clickhouse/macros/materializations/incremental/incremental.sql index dd60c603..463c9072 100644 --- a/dbt/include/clickhouse/macros/materializations/incremental/incremental.sql +++ b/dbt/include/clickhouse/macros/materializations/incremental/incremental.sql @@ -12,6 +12,7 @@ {% endif %} {%- set inserts_only = config.get('inserts_only') -%} {%- set grant_config = config.get('grants') -%} + {%- set has_contract = config.get('contract').enforced -%} {%- set full_refresh_mode = (should_full_refresh() or existing_relation.is_view) -%} {%- set on_schema_change = incremental_validate_on_schema_change(config.get('on_schema_change'), default='ignore') -%} @@ -50,7 +51,7 @@ -- specific configurable that is used to avoid creating an expensive intermediate table. -- insert_overwrite strategy does not require unique_key => is an exception. {% call statement('main') %} - {{ clickhouse__insert_into(target_relation, sql) }} + {{ clickhouse__insert_into(target_relation, sql, has_contract) }} {% endcall %} {% else %} @@ -81,7 +82,7 @@ {% do clickhouse__incremental_delete_insert(existing_relation, unique_key, incremental_predicates) %} {% elif incremental_strategy == 'append' %} {% call statement('main') %} - {{ clickhouse__insert_into(target_relation, sql) }} + {{ clickhouse__insert_into(target_relation, sql, has_contract) }} {% endcall %} {% elif incremental_strategy == 'insert_overwrite' %} {% do clickhouse__incremental_insert_overwrite(existing_relation, partition_by, False) %}