From 9e711eb11703b654fcc8d1840a55884a5deb9779 Mon Sep 17 00:00:00 2001 From: Tobie Tusing Date: Tue, 29 Apr 2025 16:06:02 -0700 Subject: [PATCH] make union relations case agnostic --- macros/sql/union.sql | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/macros/sql/union.sql b/macros/sql/union.sql index ac289e2f..994cf031 100644 --- a/macros/sql/union.sql +++ b/macros/sql/union.sql @@ -14,6 +14,14 @@ {% endif -%} {%- set column_override = column_override if column_override is not none else {} -%} + + {# Convert column_override keys to lowercase #} + {%- set lowercase_column_override = {} -%} + {%- if column_override is not none -%} + {%- for col, type in column_override.items() -%} + {%- do lowercase_column_override.update({col | lower: type | lower}) -%} + {%- endfor -%} + {%- endif -%} {%- set relation_columns = {} -%} {%- set column_superset = {} -%} @@ -106,7 +114,7 @@ {% for col_name in ordered_column_names -%} {%- set col = column_superset[col_name] %} - {%- set col_type = column_override.get(col.column, col.data_type) %} + {%- set col_type = lowercase_column_override.get(col.column | lower, col.data_type) %} {%- set col_name = adapter.quote(col_name) if col_name in relation_columns[relation] else 'null' %} cast({{ col_name }} as {{ col_type }}) as {{ col.quoted }} {% if not loop.last %},{% endif -%}