fix: cte and subquery relation name and columns should be registered on query catalog #3755
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.
Trying to solve #3720
CTE columns cannot be referred on main query
This is because if table name is not found on catalog, sqlc will attempt to find it on query catalog, but once it is found, it is skipped and not registered on QueryCatalog, making it invisible for it to be referred for the next steps.
sqlc/internal/compiler/resolve.go
Lines 70 to 73 in 996f7d1
Subquery relation name and columns cannot be referred on
WHERE
clauseSimilar to above case, but this needs to be detected on
*ast.RangeSubselect
to register alias of subquery and its output column into QueryCatalog