From 4a04047c132bd4a8d330869d076b3a3d1fe55577 Mon Sep 17 00:00:00 2001 From: Doug Beatty Date: Wed, 20 Nov 2024 12:42:48 -0700 Subject: [PATCH 1/4] Use `adapter.quote` to create a case-sensitive quoted identifier for column names --- integration_tests/macros/operations/create_source_table.sql | 4 ++-- .../tests/test_generate_base_models_all_args.sql | 4 ++-- .../tests/test_generate_base_models_case_sensitive.sql | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/integration_tests/macros/operations/create_source_table.sql b/integration_tests/macros/operations/create_source_table.sql index 6794e51..8123f33 100644 --- a/integration_tests/macros/operations/create_source_table.sql +++ b/integration_tests/macros/operations/create_source_table.sql @@ -48,8 +48,8 @@ set enable_case_sensitive_identifier to true; {% set create_table_sql_case_sensitive %} create table {{ target_schema }}.codegen_integration_tests__data_source_table_case_sensitive as ( select - 1 as {% if target.type == "bigquery" %}My_Integer_Col{% else %}"My_Integer_Col"{% endif %}, - true as {% if target.type == "bigquery" %}My_Bool_Col{% else %}"My_Bool_Col"{% endif %} + 1 as {{ adapter.quote("My_Integer_Col") }}, + true as {{ adapter.quote("My_Bool_Col") }} ) {% endset %} diff --git a/integration_tests/tests/test_generate_base_models_all_args.sql b/integration_tests/tests/test_generate_base_models_all_args.sql index 5a0b21e..89497de 100644 --- a/integration_tests/tests/test_generate_base_models_all_args.sql +++ b/integration_tests/tests/test_generate_base_models_all_args.sql @@ -20,8 +20,8 @@ with source as ( renamed as ( select - {% if target.type == "bigquery" %}My_Integer_Col{% else %}"My_Integer_Col"{% endif %} - , {% if target.type == "bigquery" %}My_Bool_Col{% else %}"My_Bool_Col"{% endif %} + {{ adapter.quote("My_Integer_Col") }} + , {{ adapter.quote("My_Bool_Col") }} from source diff --git a/integration_tests/tests/test_generate_base_models_case_sensitive.sql b/integration_tests/tests/test_generate_base_models_case_sensitive.sql index 2fd3123..1f18a1c 100644 --- a/integration_tests/tests/test_generate_base_models_case_sensitive.sql +++ b/integration_tests/tests/test_generate_base_models_case_sensitive.sql @@ -16,8 +16,8 @@ with source as ( renamed as ( select - {% if target.type == "bigquery" %}My_Integer_Col{% else %}"My_Integer_Col"{% endif %}, - {% if target.type == "bigquery" %}My_Bool_Col{% else %}"My_Bool_Col"{% endif %} + {{ adapter.quote("My_Integer_Col") }}, + {{ adapter.quote("My_Bool_Col") }} from source From d707832d3e13d12e3619b248cc87f1c72447bafb Mon Sep 17 00:00:00 2001 From: Doug Beatty Date: Wed, 20 Nov 2024 13:01:04 -0700 Subject: [PATCH 2/4] Force a failure for all adapters to help troubleshoot --- .../tests/test_generate_base_models_case_sensitive.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/integration_tests/tests/test_generate_base_models_case_sensitive.sql b/integration_tests/tests/test_generate_base_models_case_sensitive.sql index 1f18a1c..ddc35dd 100644 --- a/integration_tests/tests/test_generate_base_models_case_sensitive.sql +++ b/integration_tests/tests/test_generate_base_models_case_sensitive.sql @@ -15,6 +15,7 @@ with source as ( renamed as ( + -- force failure for all adapters select {{ adapter.quote("My_Integer_Col") }}, {{ adapter.quote("My_Bool_Col") }} From a77ca8c074da0ef4405dd422262ce8d4a3600524 Mon Sep 17 00:00:00 2001 From: Doug Beatty Date: Wed, 20 Nov 2024 15:55:24 -0700 Subject: [PATCH 3/4] Revert "Force a failure for all adapters to help troubleshoot" This reverts commit d707832d3e13d12e3619b248cc87f1c72447bafb. --- .../tests/test_generate_base_models_case_sensitive.sql | 1 - 1 file changed, 1 deletion(-) diff --git a/integration_tests/tests/test_generate_base_models_case_sensitive.sql b/integration_tests/tests/test_generate_base_models_case_sensitive.sql index ddc35dd..1f18a1c 100644 --- a/integration_tests/tests/test_generate_base_models_case_sensitive.sql +++ b/integration_tests/tests/test_generate_base_models_case_sensitive.sql @@ -15,7 +15,6 @@ with source as ( renamed as ( - -- force failure for all adapters select {{ adapter.quote("My_Integer_Col") }}, {{ adapter.quote("My_Bool_Col") }} From 77d18905c028cbdf6ffbfe76abb2dbc323c0d7aa Mon Sep 17 00:00:00 2001 From: Doug Beatty Date: Wed, 20 Nov 2024 16:36:27 -0700 Subject: [PATCH 4/4] Use `adapter.quote` to create a case-sensitive quoted identifier for column names in `generate_base_model` macro --- macros/generate_base_model.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/macros/generate_base_model.sql b/macros/generate_base_model.sql index 0a58784..aa74145 100644 --- a/macros/generate_base_model.sql +++ b/macros/generate_base_model.sql @@ -25,11 +25,11 @@ renamed as ( select {%- if leading_commas -%} {%- for column in column_names %} - {{", " if not loop.first}}{% if not case_sensitive_cols %}{{ column | lower }}{% elif target.type == "bigquery" %}{{ column }}{% else %}{{ "\"" ~ column ~ "\"" }}{% endif %} + {{", " if not loop.first}}{% if not case_sensitive_cols %}{{ column | lower }}{% else %}{{ adapter.quote(column) }}{% endif %} {%- endfor %} {%- else -%} {%- for column in column_names %} - {% if not case_sensitive_cols %}{{ column | lower }}{% elif target.type == "bigquery" %}{{ column }}{% else %}{{ "\"" ~ column ~ "\"" }}{% endif %}{{"," if not loop.last}} + {% if not case_sensitive_cols %}{{ column | lower }}{% else %}{{ adapter.quote(column) }}{% endif %}{{"," if not loop.last}} {%- endfor -%} {%- endif %}