diff --git a/macros/utils/cross_db_utils/get_query_settings.sql b/macros/utils/cross_db_utils/get_query_settings.sql new file mode 100644 index 000000000..b19c1fa0b --- /dev/null +++ b/macros/utils/cross_db_utils/get_query_settings.sql @@ -0,0 +1,12 @@ +{% macro get_query_settings() %} + {% do return(adapter.dispatch("get_query_settings", "elementary")()) %} +{% endmacro %} + +{% macro default__get_query_settings() %} + {% do return("") %} +{% endmacro %} + +{% macro clickhouse__get_query_settings() %} + {% do return(adapter.get_model_query_settings(model)) %} +{% endmacro %} + diff --git a/macros/utils/table_operations/delete_and_insert.sql b/macros/utils/table_operations/delete_and_insert.sql index 996efbf28..50155bfe1 100644 --- a/macros/utils/table_operations/delete_and_insert.sql +++ b/macros/utils/table_operations/delete_and_insert.sql @@ -61,14 +61,15 @@ {% set delete_query %} alter table {{ relation }} delete where {{ delete_column_key }} is null - or {{ delete_column_key }} in (select {{ delete_column_key }} from {{ delete_relation }}); + or {{ delete_column_key }} in (select {{ delete_column_key }} from {{ delete_relation }}) + {{ adapter.get_model_query_settings(model) }}; {% endset %} {% do queries.append(delete_query) %} {% endif %} {% if insert_relation %} {% set insert_query %} - insert into {{ relation }} select * from {{ insert_relation }}; + insert into {{ relation }} {{ adapter.get_model_query_settings(model) }} select * from {{ insert_relation }}; {% endset %} {% do queries.append(insert_query) %} {% endif %} diff --git a/macros/utils/table_operations/insert_rows.sql b/macros/utils/table_operations/insert_rows.sql index aa278027a..87aebbe8a 100644 --- a/macros/utils/table_operations/insert_rows.sql +++ b/macros/utils/table_operations/insert_rows.sql @@ -63,7 +63,9 @@ insert into {{ table_relation }} ({%- for column in columns -%} {{- elementary.escape_reserved_keywords(column.name) -}} {{- "," if not loop.last else "" -}} - {%- endfor -%}) values + {%- endfor -%}) + {{ elementary.get_query_settings() }} + values {% endset %} {% do elementary.end_duration_measure_context('base_query_calc') %} diff --git a/macros/utils/table_operations/make_temp_relation.sql b/macros/utils/table_operations/make_temp_relation.sql index c7a60f826..4f2173e8c 100644 --- a/macros/utils/table_operations/make_temp_relation.sql +++ b/macros/utils/table_operations/make_temp_relation.sql @@ -62,6 +62,8 @@ identifier=tmp_identifier, schema=base_relation.schema, database=base_relation.database, - type='table') %} + type='table', + can_on_cluster=base_relation.can_on_cluster, + can_exchange=base_relation.can_exchange) %} {% do return(tmp_relation) %} {% endmacro %}