Skip to content

Commit 789a687

Browse files
Make Elementary work with ClickHouse cluster mode (#878)
* Add cluster and exchange capabilities to temp relation creation * Use ClickHouse query settings in delete_and_insert * Use ClickHouse query settings in insert_rows * Fix get_query_settings SQL macro syntax
1 parent 2cddf06 commit 789a687

File tree

4 files changed

+21
-4
lines changed

4 files changed

+21
-4
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{% macro get_query_settings() %}
2+
{% do return(adapter.dispatch("get_query_settings", "elementary")()) %}
3+
{% endmacro %}
4+
5+
{% macro default__get_query_settings() %}
6+
{% do return("") %}
7+
{% endmacro %}
8+
9+
{% macro clickhouse__get_query_settings() %}
10+
{% do return(adapter.get_model_query_settings(model)) %}
11+
{% endmacro %}
12+

macros/utils/table_operations/delete_and_insert.sql

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,15 @@
6161
{% set delete_query %}
6262
alter table {{ relation }} delete where
6363
{{ delete_column_key }} is null
64-
or {{ delete_column_key }} in (select {{ delete_column_key }} from {{ delete_relation }});
64+
or {{ delete_column_key }} in (select {{ delete_column_key }} from {{ delete_relation }})
65+
{{ adapter.get_model_query_settings(model) }};
6566
{% endset %}
6667
{% do queries.append(delete_query) %}
6768
{% endif %}
6869

6970
{% if insert_relation %}
7071
{% set insert_query %}
71-
insert into {{ relation }} select * from {{ insert_relation }};
72+
insert into {{ relation }} {{ adapter.get_model_query_settings(model) }} select * from {{ insert_relation }};
7273
{% endset %}
7374
{% do queries.append(insert_query) %}
7475
{% endif %}

macros/utils/table_operations/insert_rows.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,9 @@
6363
insert into {{ table_relation }}
6464
({%- for column in columns -%}
6565
{{- elementary.escape_reserved_keywords(column.name) -}} {{- "," if not loop.last else "" -}}
66-
{%- endfor -%}) values
66+
{%- endfor -%})
67+
{{ elementary.get_query_settings() }}
68+
values
6769
{% endset %}
6870
{% do elementary.end_duration_measure_context('base_query_calc') %}
6971

macros/utils/table_operations/make_temp_relation.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262
identifier=tmp_identifier,
6363
schema=base_relation.schema,
6464
database=base_relation.database,
65-
type='table') %}
65+
type='table',
66+
can_on_cluster=base_relation.can_on_cluster,
67+
can_exchange=base_relation.can_exchange) %}
6668
{% do return(tmp_relation) %}
6769
{% endmacro %}

0 commit comments

Comments
 (0)