-
Notifications
You must be signed in to change notification settings - Fork 493
/
safe_add.sql
28 lines (17 loc) · 698 Bytes
/
safe_add.sql
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
{%- macro safe_add(field_list) -%}
{{ return(adapter.dispatch('safe_add', 'dbt_utils')(field_list)) }}
{% endmacro %}
{%- macro default__safe_add(field_list) -%}
{%- if field_list is not iterable or field_list is string or field_list is mapping -%}
{%- set error_message = '
Warning: the `safe_add` macro now takes a single list argument instead of \
string arguments. The {}.{} model triggered this warning. \
'.format(model.package_name, model.name) -%}
{%- do exceptions.warn(error_message) -%}
{%- endif -%}
{% set fields = [] %}
{%- for field in field_list -%}
{% do fields.append("coalesce(" ~ field ~ ", 0)") %}
{%- endfor -%}
{{ fields|join(' +\n ') }}
{%- endmacro -%}