Snowflake Reserved SQL Keywords as Implicit Table Alias (#1934)

This commit is contained in:
Yoav Cohen 2025-07-11 11:13:20 +02:00 committed by GitHub
parent fd4934ec74
commit 15f35e1476
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 163 additions and 12 deletions

View file

@ -3492,6 +3492,57 @@ fn test_sql_keywords_as_select_item_aliases() {
}
}
#[test]
fn test_sql_keywords_as_table_aliases() {
// Some keywords that should be parsed as an alias implicitly
let unreserved_kws = vec![
"VIEW",
"EXPLAIN",
"ANALYZE",
"SORT",
"PIVOT",
"UNPIVOT",
"TOP",
"LIMIT",
"OFFSET",
"FETCH",
"EXCEPT",
"CLUSTER",
"DISTRIBUTE",
"GLOBAL",
"ANTI",
"SEMI",
"RETURNING",
"OUTER",
"WINDOW",
"END",
"PARTITION",
"PREWHERE",
"SETTINGS",
"FORMAT",
"MATCH_RECOGNIZE",
"OPEN",
];
for kw in unreserved_kws {
snowflake().verified_stmt(&format!("SELECT * FROM tbl AS {kw}"));
snowflake().one_statement_parses_to(
&format!("SELECT * FROM tbl {kw}"),
&format!("SELECT * FROM tbl AS {kw}"),
);
}
// Some keywords that should not be parsed as an alias implicitly
let reserved_kws = vec![
"FROM", "GROUP", "HAVING", "ORDER", "SELECT", "UNION", "WHERE", "WITH",
];
for kw in reserved_kws {
assert!(snowflake()
.parse_sql_statements(&format!("SELECT * FROM tbl {kw}"))
.is_err());
}
}
#[test]
fn test_timetravel_at_before() {
snowflake().verified_only_select("SELECT * FROM tbl AT(TIMESTAMP => '2024-12-15 00:00:00')");