Skip to content

Commit 7f84089

Browse files
committed
replace dbt.create_table_as with our own implementation
1 parent a6182fb commit 7f84089

File tree

7 files changed

+37
-37
lines changed

7 files changed

+37
-37
lines changed

integration_tests/dbt_project/macros/create_all_types_table.sql

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,7 @@
3131
CURRENT_TIME() as time_col,
3232
CURRENT_TIMESTAMP() as timestamp_col,
3333
{% endset %}
34-
{% set create_table_query = dbt.create_table_as(false, relation, sql_query) %}
35-
{% do elementary.edr_log(create_table_query) %}
36-
{% do elementary.run_query(create_table_query) %}
34+
{% do elementary.edr_create_table_as(false, relation, sql_query) %}
3735
{% endmacro %}
3836

3937
{% macro snowflake__create_all_types_table() %}
@@ -81,9 +79,7 @@
8179
[1,2,3] as array_col,
8280
TO_GEOGRAPHY('POINT(-122.35 37.55)') as geography_col
8381
{% endset %}
84-
{% set create_table_query = dbt.create_table_as(false, relation, sql_query) %}
85-
{% do elementary.edr_log(create_table_query) %}
86-
{% do elementary.run_query(create_table_query) %}
82+
{% do elementary.edr_create_table_as(false, relation, sql_query) %}
8783
{% endmacro %}
8884

8985
{% macro redshift__create_all_types_table() %}
@@ -123,9 +119,7 @@
123119
ST_GeogFromText('SRID=4324;POLYGON((0 0,0 1,1 1,10 10,1 0,0 0))') as geography_col,
124120
JSON_PARSE('{"data_type": "super"}') as super_col
125121
{% endset %}
126-
{% set create_table_query = dbt.create_table_as(false, relation, sql_query) %}
127-
{% do elementary.edr_log(create_table_query) %}
128-
{% do elementary.run_query(create_table_query) %}
122+
{% do elementary.edr_create_table_as(false, relation, sql_query) %}
129123

130124
{% endmacro %}
131125

@@ -184,9 +178,7 @@
184178
'a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11'::uuid as uuid_col,
185179
xmlcomment('text') as xml_col
186180
{% endset %}
187-
{% set create_table_query = dbt.create_table_as(false, relation, sql_query) %}
188-
{% do elementary.edr_log(create_table_query) %}
189-
{% do elementary.run_query(create_table_query) %}
181+
{% do elementary.edr_create_table_as(false, relation, sql_query) %}
190182
{% endmacro %}
191183

192184
{% macro default__create_all_types_table() %}

macros/edr/tests/on_run_end/handle_tests_results.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@
115115
{% endset %}
116116
117117
{{ elementary.file_log("Inserting metrics into {}.".format(target_relation)) }}
118-
{%- do elementary.run_query(dbt.create_table_as(True, temp_relation, test_tables_union_query)) %}
118+
{%- do elementary.edr_create_table_as(true, temp_relation, test_tables_union_query) %}
119119
{% do elementary.run_query(insert_query) %}
120120
121121
{% if not elementary.has_temp_table_support() %}
@@ -163,7 +163,7 @@
163163
{% endset %}
164164
165165
{{ elementary.file_log("Inserting schema columns snapshot into {}.".format(target_relation)) }}
166-
{%- do elementary.run_query(dbt.create_table_as(True, temp_relation, test_tables_union_query)) %}
166+
{%- do elementary.edr_create_table_as(true, temp_relation, test_tables_union_query) %}
167167
{% do elementary.run_query(insert_query) %}
168168
169169
{% if not elementary.has_temp_table_support() %}

macros/utils/table_operations/create_or_replace.sql

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,39 +4,31 @@
44

55
{# Snowflake and Bigquery #}
66
{% macro default__create_or_replace(temporary, relation, sql_query) %}
7-
{% do elementary.run_query(dbt.create_table_as(temporary, relation, sql_query)) %}
7+
{% do elementary.edr_create_table_as(temporary, relation, sql_query) %}
88
{% endmacro %}
99

1010
{% macro redshift__create_or_replace(temporary, relation, sql_query) %}
11-
{% do dbt.drop_relation_if_exists(relation) %}
12-
{% do elementary.run_query(dbt.create_table_as(temporary, relation, sql_query)) %}
13-
{% do adapter.commit() %}
11+
{% do elementary.edr_create_table_as(temporary, relation, sql_query, drop_first=true, should_commit=true) %}
1412
{% endmacro %}
1513

1614
{% macro postgres__create_or_replace(temporary, relation, sql_query) %}
1715
{% do elementary.run_query("BEGIN") %}
18-
{% do dbt.drop_relation_if_exists(relation) %}
19-
{% do elementary.run_query(dbt.create_table_as(temporary, relation, sql_query)) %}
16+
{% do elementary.edr_create_table_as(temporary, relation, sql_query, drop_first=true) %}
2017
{% do elementary.run_query("COMMIT") %}
2118
{% endmacro %}
2219

2320
{% macro spark__create_or_replace(temporary, relation, sql_query) %}
24-
{% do dbt.drop_relation_if_exists(relation) %}
25-
{% do elementary.run_query(dbt.create_table_as(temporary, relation, sql_query)) %}
26-
{% do adapter.commit() %}
21+
{% do elementary.edr_create_table_as(temporary, relation, sql_query, drop_first=true, should_commit=true) %}
2722
{% endmacro %}
2823

2924
{% macro athena__create_or_replace(temporary, relation, sql_query) %}
30-
{% do dbt.drop_relation_if_exists(relation) %}
31-
{% do elementary.run_query(dbt.create_table_as(temporary, relation, sql_query)) %}
25+
{% do elementary.edr_create_table_as(temporary, relation, sql_query, drop_first=true) %}
3226
{% endmacro %}
3327

3428
{% macro trino__create_or_replace(temporary, relation, sql_query) %}
35-
{% do dbt.drop_relation_if_exists(relation) %}
36-
{% do elementary.run_query(dbt.create_table_as(temporary, relation, sql_query)) %}
29+
{% do elementary.edr_create_table_as(temporary, relation, sql_query, drop_first=true) %}
3730
{% endmacro %}
3831

3932
{% macro clickhouse__create_or_replace(temporary, relation, sql_query) %}
40-
{% do dbt.drop_relation_if_exists(relation) %}
41-
{% do elementary.run_query(dbt.create_table_as(temporary, relation, sql_query)) %}
33+
{% do elementary.edr_create_table_as(temporary, relation, sql_query, drop_first=true) %}
4234
{% endmacro %}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{% macro edr_create_table_as(temporary, relation, sql_query, drop_first=false, should_commit=false) %}
2+
{# This macro contains a simplified implementation that replaces our usage of
3+
dbt.create_table_as and serves our needs.
4+
This version also runs the query rather than return the SQL.
5+
#}
6+
7+
{% if drop_first %}
8+
{% do dbt.drop_relation_if_exists(relation) %}
9+
{% endif %}
10+
11+
{% set create_query %}
12+
create or replace {% if temporary %} temporary {% endif %} table {{ relation }}
13+
as {{ sql_query }}
14+
{% endset %}
15+
16+
{% do elementary.run_query(create_query) %}
17+
18+
{% if should_commit %}
19+
{% do adapter.commit() %}
20+
{% endif %}
21+
{% endmacro %}

macros/utils/table_operations/create_table_like.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
FROM {{ like_relation }}
1212
WHERE 1 = 0
1313
{% endset %}
14-
{% do elementary.run_query(dbt.create_table_as(temporary, relation, empty_table_query)) %}
14+
{% do elementary.edr_create_table_as(temporary, relation, empty_table_query) %}
1515
{% endmacro %}

macros/utils/table_operations/create_temp_table.sql

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,7 @@
88
identifier=table_name,
99
type='table') -%}
1010
{% set temp_table_relation = elementary.make_temp_table_relation(temp_table_relation) %}
11-
{% if temp_table_exists %}
12-
{% do adapter.drop_relation(temp_table_relation) %}
13-
{% do elementary.run_query(dbt.create_table_as(True, temp_table_relation, sql_query)) %}
14-
{% else %}
15-
{% do elementary.run_query(dbt.create_table_as(True, temp_table_relation, sql_query)) %}
16-
{% endif %}
11+
{% do elementary.edr_create_table_as(True, temp_table_relation, sql_query, drop_first=temp_table_exists) %}
1712
{{ return(temp_table_relation) }}{% endmacro %}
1813

1914
{% macro snowflake__create_temp_table(database_name, schema_name, table_name, sql_query) %}

macros/utils/table_operations/replace_table_data.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
{# Default (Bigquery & Snowflake) - upload data to a temp table, and then atomically replace the table with a new one #}
66
{% macro default__replace_table_data(relation, rows) %}
77
{% set intermediate_relation = elementary.create_intermediate_relation(relation, rows, temporary=True) %}
8-
{% do elementary.run_query(dbt.create_table_as(False, relation, 'select * from {}'.format(intermediate_relation))) %}
8+
{% do elementary.edr_create_table_as(False, relation, 'select * from {}'.format(intermediate_relation)) %}
99
{% do adapter.drop_relation(intermediate_relation) %}
1010
{% endmacro %}
1111

0 commit comments

Comments
 (0)