Fix get_fixture_sql which always leads to a compliation error if column_name_to_data_types is not falsy #1449
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
column_name_to_quotedis set inside{%- if not column_name_to_data_types -%}.When
column_name_to_data_typesis not falsy, this variable is not set.I.e. whenever anything truthy for
column_name_to_data_typesis passed, this macro will always lead to a compilation error.I'm currently working on a PR for dbt-core where
get_fixture_sqlgets passed a dictionary forcolumn_name_to_data_types. So farcolumn_name_to_data_typesis always passed asNone.Solution
Defining a var inside an if statement and using it afterwards outside is generally a bad practice.
I decided to use
adapter.quoteinstead of what comes back fromadapter.get_columns_in_relation, so this should always work, independent from if the if case exists or not.Thanks to that we don't even need the variable
column_name_to_quoted.Feel free to add any comments and suggestions on what's better to use than
adapter.quote.Checklist