Add support for Snowflake column aliases that use SQL keywords (#1632)

This commit is contained in:
Yoav Cohen 2025-01-16 18:50:30 +02:00 committed by GitHub
parent 474150006f
commit b4b5576dd4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 163 additions and 56 deletions

View file

@ -3022,3 +3022,32 @@ fn parse_ls_and_rm() {
snowflake().verified_stmt(r#"LIST @"STAGE_WITH_QUOTES""#);
}
#[test]
fn test_sql_keywords_as_select_item_aliases() {
// Some keywords that should be parsed as an alias
let unreserved_kws = vec!["CLUSTER", "FETCH", "RETURNING", "LIMIT", "EXCEPT"];
for kw in unreserved_kws {
snowflake()
.one_statement_parses_to(&format!("SELECT 1 {kw}"), &format!("SELECT 1 AS {kw}"));
}
// Some keywords that should not be parsed as an alias
let reserved_kws = vec![
"FROM",
"GROUP",
"HAVING",
"INTERSECT",
"INTO",
"ORDER",
"SELECT",
"UNION",
"WHERE",
"WITH",
];
for kw in reserved_kws {
assert!(snowflake()
.parse_sql_statements(&format!("SELECT 1 {kw}"))
.is_err());
}
}