Skip to content

Commit 75dd8a8

Browse files
Fix Athena DROP TABLE parsing error with backtick quoting (#861)
--------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: Yosef Arbiv <[email protected]>
1 parent 0f59f9f commit 75dd8a8

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

macros/edr/tests/test_utils/clean_elementary_test_tables.sql

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,18 @@
4040
{% endmacro %}
4141

4242
{% macro athena__get_clean_elementary_test_tables_queries(test_table_relations) %}
43+
{# Athena requires explicit backtick quoting for DROP TABLE statements to avoid parsing errors #}
4344
{% set queries = [] %}
4445
{% for test_relation in test_table_relations %}
45-
{% do queries.append("DROP TABLE IF EXISTS {}".format(test_relation.render_pure())) %}
46+
{% set escaped_database = test_relation.database | replace('`', '``') if test_relation.database else none %}
47+
{% set escaped_schema = test_relation.schema | replace('`', '``') %}
48+
{% set escaped_identifier = test_relation.identifier | replace('`', '``') %}
49+
{% if test_relation.database %}
50+
{% set quoted_relation = "`{}`.`{}`.`{}`".format(escaped_database, escaped_schema, escaped_identifier) %}
51+
{% else %}
52+
{% set quoted_relation = "`{}`.`{}`".format(escaped_schema, escaped_identifier) %}
53+
{% endif %}
54+
{% do queries.append("DROP TABLE IF EXISTS {}".format(quoted_relation)) %}
4655
{% endfor %}
4756
{% do return(queries) %}
4857
{% endmacro %}

0 commit comments

Comments
 (0)