Allow no alias for selects in CTEs with a column list #3580
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.
Brief summary of the change made
In cases where the CTE has a column list, we don't need an alias for columns. This checks if the select has a
common_table_expression
parent and if that parent has acte_column_list
child. In that case, it doesn't complain about a missing alias.Fixes #3558
Are there any other side effects of this change that we should be aware of?
I'm not 100% positive that this won't lead to false negatives in some weirdly nested situation. Open to feedback there.
Also, I'm not sure if this rule should be checking if the number of items in the
cte_column_list
matches the number of selects. It seems like that is out of scope for this rule (since it probably means that you have a syntax error), but I could be wrong.Pull Request checklist
Please confirm you have completed any of the necessary steps below.
Included test cases to demonstrate any code changes, which may be one or more of the following:
.yml
rule test cases intest/fixtures/rules/std_rule_cases
..sql
/.yml
parser test cases intest/fixtures/dialects
(note YML files can be auto generated withtox -e generate-fixture-yml
).test/fixtures/linter/autofix
.Added appropriate documentation for the change.
Created GitHub issues for any relevant followup/future enhancements if appropriate.