-
Notifications
You must be signed in to change notification settings - Fork 138
Expand file tree
/
Copy pathclean_elementary_test_tables.sql
More file actions
159 lines (144 loc) · 5.41 KB
/
clean_elementary_test_tables.sql
File metadata and controls
159 lines (144 loc) · 5.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
{% macro clean_elementary_test_tables() %}
{% set test_table_relations = [] %}
{% set temp_test_table_relations_map = elementary.get_cache(
"temp_test_table_relations_map"
) %}
{% if temp_test_table_relations_map %}
{% for test_entry in temp_test_table_relations_map.values() %}
{% for test_relation in test_entry.values() %}
{% do test_table_relations.append(test_relation) %}
{% endfor %}
{% endfor %}
{# Extra entry-point to clean up tables before dropping the relation #}
{% do elementary.clean_up_tables(test_table_relations) %}
{% do elementary.file_log(
"Deleting temporary Elementary test tables: {}".format(
test_table_relations
)
) %}
{% set queries = elementary.get_clean_elementary_test_tables_queries(
test_table_relations
) %}
{% for query in queries %} {% do elementary.run_query(query) %} {% endfor %}
{% endif %}
{% endmacro %}
{% macro get_clean_elementary_test_tables_queries(test_table_relations) %}
{% do return(
adapter.dispatch(
"get_clean_elementary_test_tables_queries", "elementary"
)(test_table_relations)
) %}
{% endmacro %}
{% macro default__get_clean_elementary_test_tables_queries(test_table_relations) %}
{% do return(
elementary.get_transaction_clean_elementary_test_tables_queries(
test_table_relations
)
) %}
{% endmacro %}
{% macro bigquery__get_clean_elementary_test_tables_queries(test_table_relations) %}
{% do return(
elementary.get_transactionless_clean_elementary_test_tables_queries(
test_table_relations
)
) %}
{% endmacro %}
{% macro redshift__get_clean_elementary_test_tables_queries(test_table_relations) %}
{% do return(
elementary.get_transactionless_clean_elementary_test_tables_queries(
test_table_relations
)
) %}
{% endmacro %}
{% macro spark__get_clean_elementary_test_tables_queries(test_table_relations) %}
{% do return(
elementary.get_transactionless_clean_elementary_test_tables_queries(
test_table_relations
)
) %}
{% endmacro %}
{% macro fabricspark__get_clean_elementary_test_tables_queries(test_table_relations) %}
{{
return(
elementary.spark__get_clean_elementary_test_tables_queries(
test_table_relations
)
)
}}
{% endmacro %}
{% macro clickhouse__get_clean_elementary_test_tables_queries(test_table_relations) %}
{# Self-hosted clustered ClickHouse installations require tables to be dropped on all cluster nodes explicitly #}
{% set queries = [] %}
{% for test_relation in test_table_relations %}
{% do queries.append(
"DROP TABLE IF EXISTS {} {} SYNC".format(
test_relation, on_cluster_clause(test_relation)
)
) %}
{% endfor %}
{% do return(queries) %}
{% endmacro %}
{% macro athena__get_clean_elementary_test_tables_queries(test_table_relations) %}
{# Athena requires explicit backtick quoting for DROP TABLE statements to avoid parsing errors #}
{% set queries = [] %}
{% for test_relation in test_table_relations %}
{% set escaped_database = (
test_relation.database | replace("`", "``")
if test_relation.database
else none
) %}
{% set escaped_schema = test_relation.schema | replace("`", "``") %}
{% set escaped_identifier = test_relation.identifier | replace("`", "``") %}
{% if test_relation.database %}
{% set quoted_relation = "`{}`.`{}`.`{}`".format(
escaped_database, escaped_schema, escaped_identifier
) %}
{% else %}
{% set quoted_relation = "`{}`.`{}`".format(
escaped_schema, escaped_identifier
) %}
{% endif %}
{% do queries.append("DROP TABLE IF EXISTS {}".format(quoted_relation)) %}
{% endfor %}
{% do return(queries) %}
{% endmacro %}
{% macro trino__get_clean_elementary_test_tables_queries(test_table_relations) %}
{% do return(
elementary.get_transactionless_clean_elementary_test_tables_queries(
test_table_relations
)
) %}
{% endmacro %}
{% macro duckdb__get_clean_elementary_test_tables_queries(test_table_relations) %}
{% do return(
elementary.get_transactionless_clean_elementary_test_tables_queries(
test_table_relations
)
) %}
{% endmacro %}
{% macro dremio__get_clean_elementary_test_tables_queries(test_table_relations) %}
{% do return(
elementary.get_transactionless_clean_elementary_test_tables_queries(
test_table_relations
)
) %}
{% endmacro %}
{% macro get_transaction_clean_elementary_test_tables_queries(test_table_relations) %}
{% set query %}
BEGIN TRANSACTION;
{% for test_relation in test_table_relations %}
DROP TABLE IF EXISTS {{ test_relation }};
{% endfor %}
COMMIT;
{% endset %}
{% do return([query]) %}
{% endmacro %}
{% macro get_transactionless_clean_elementary_test_tables_queries(
test_table_relations
) %}
{% set queries = [] %}
{% for test_relation in test_table_relations %}
{% do queries.append("DROP TABLE IF EXISTS {}".format(test_relation)) %}
{% endfor %}
{% do return(queries) %}
{% endmacro %}