Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parser rejects column aliases that Snowflake accepts #1607

Open
yoavcloud opened this issue Dec 17, 2024 · 1 comment
Open

Parser rejects column aliases that Snowflake accepts #1607

yoavcloud opened this issue Dec 17, 2024 · 1 comment

Comments

@yoavcloud
Copy link
Contributor

yoavcloud commented Dec 17, 2024

For example:
SELECT cluster FROM tbl --> accepted by both Snowflake and the parser
SELECT col cluster FROM tbl --> accepted by Snowflake but not by the parser
SELECT col col_alias FROM tbl --> accepted by both Snowflake and the parser
SELECT col AS cluster FROM tbl --> accepted by both Snowflake and the parser (this one really bakes my noodle...)

@yoavcloud
Copy link
Contributor Author

The underlying issue here is that when a column alias is provided implicitly, i.e. without the use of the AS keyword, the parser has to decide if the next word after a column ident is an alias or the beginning of some other construct that should be parsed differently.

For example:
SELECT 1 LIMIT on Snowflake produces a result set with one column named limit, but the statement SELECT 1 LIMIT 5 produces a result set with one column named 1 (the limit is parsed as a limit on the number of rows in the result set).

A possible solution is to make this decision more accurate. Instead of looking at just the next word, the parser should look further ahead to identify constructs that should not be parsed as an alias.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant