Skip to content

Commit 7b51cd7

Browse files
fix: replace || with concat() for T-SQL compatibility in CLI dbt macros
SQL Server / T-SQL does not support the || operator for string concatenation. Replace all occurrences with the cross-database concat() function which is supported by all target databases. Co-Authored-By: Itamar Hartstein <haritamar@gmail.com>
1 parent cfc9b68 commit 7b51cd7

3 files changed

Lines changed: 5 additions & 5 deletions

File tree

elementary/monitor/dbt_project/macros/alerts/population/test_alerts.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,12 +128,12 @@
128128
select distinct
129129
failed_tests.alert_id,
130130
{# Generate elementary unique id which is used to identify between tests, and set it as alert_class_id #}
131-
coalesce(failed_tests.test_unique_id, 'None') || '.' || coalesce(failed_tests.column_name, 'None') || '.' || coalesce(failed_tests.sub_type, 'None') as alert_class_id,
131+
concat(coalesce(failed_tests.test_unique_id, 'None'), '.', coalesce(failed_tests.column_name, 'None'), '.', coalesce(failed_tests.sub_type, 'None')) as alert_class_id,
132132
case
133133
when failed_tests.test_type = 'schema_change' then failed_tests.test_unique_id
134134
{# In old versions of elementary, elementary_test_results doesn't contain test_short_name, so we use dbt_test short_name. #}
135135
when tests.short_name = 'dimension_anomalies' then failed_tests.test_unique_id
136-
else coalesce(failed_tests.test_unique_id, 'None') || '.' || coalesce(failed_tests.column_name, 'None') || '.' || coalesce(failed_tests.sub_type, 'None')
136+
else concat(coalesce(failed_tests.test_unique_id, 'None'), '.', coalesce(failed_tests.column_name, 'None'), '.', coalesce(failed_tests.sub_type, 'None'))
137137
end as elementary_unique_id,
138138
failed_tests.data_issue_id,
139139
failed_tests.test_execution_id,

elementary/monitor/dbt_project/macros/base_queries/current_tests_run_results_query.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
when elementary_test_results.test_type = 'schema_change' then elementary_test_results.test_unique_id
5050
{# In old versions of elementary, elementary_test_results doesn't contain test_short_name, so we use dbt_test short_name. #}
5151
when dbt_tests.short_name = 'dimension_anomalies' then elementary_test_results.test_unique_id
52-
else coalesce(elementary_test_results.test_unique_id, 'None') || '.' || coalesce(nullif(elementary_test_results.column_name, ''), 'None') || '.' || coalesce(elementary_test_results.test_sub_type, 'None')
52+
else concat(coalesce(elementary_test_results.test_unique_id, 'None'), '.', coalesce(nullif(elementary_test_results.column_name, ''), 'None'), '.', coalesce(elementary_test_results.test_sub_type, 'None'))
5353
end as elementary_unique_id,
5454
elementary_test_results.invocation_id,
5555
elementary_test_results.data_issue_id,

elementary/monitor/dbt_project/macros/get_test_results.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@
162162
CASE
163163
WHEN etr.test_type = 'schema_change' THEN etr.test_unique_id
164164
WHEN dt.short_name = 'dimension_anomalies' THEN etr.test_unique_id
165-
ELSE coalesce(etr.test_unique_id, 'None') || '.' || coalesce(nullif(etr.column_name, ''), 'None') || '.' || coalesce(etr.test_sub_type, 'None')
165+
ELSE concat(coalesce(etr.test_unique_id, 'None'), '.', coalesce(nullif(etr.column_name, ''), 'None'), '.', coalesce(etr.test_sub_type, 'None'))
166166
END AS elementary_unique_id,
167167
etr.detected_at,
168168
etr.database_name,
@@ -266,4 +266,4 @@
266266
{%- endfor -%}
267267

268268
{% do return(test_results) %}
269-
{%- endmacro -%}
269+
{%- endmacro -%}

0 commit comments

Comments
 (0)