macros/loop_vars.sql (27 lines of code) (raw):

{% macro loop_vars(vars) %} {{ return(adapter.dispatch('loop_vars', 'dbt_project_evaluator')(vars)) }} {% endmacro %} {% macro default__loop_vars(vars) %} {%- set sql_query = [] -%} {%- for var_name in vars -%} {%- if var(var_name,[]) is not string -%} {%- for var_value in var(var_name,[]) -%} {% set sql_command %} select '{{ var_name }}' as var_name, '{{ var_value }}' as var_value {% endset %} {%- do sql_query.append(sql_command) -%} {%- endfor -%} {%- else -%} {% set sql_command %} select '{{ var_name }}' as var_name, '{{ var(var_name,[]) }}' as var_value {% endset %} {%- do sql_query.append(sql_command) -%} {%- endif -%} {%- endfor -%} {%- if sql_query -%} {{ sql_query | join('union all') }} {%- else -%} select '' as var_name, '' as var_value limit 0 {%- endif -%} {% endmacro %}