Skip to content

Commit eb9cbe6

Browse files
yoavcloudayman-sigma
authored andcommitted
Snowflake: Numeric prefix for stage name part (apache#1966)
1 parent 371d532 commit eb9cbe6

2 files changed

Lines changed: 3 additions & 2 deletions

File tree

src/dialect/snowflake.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,7 @@ pub fn parse_stage_name_identifier(parser: &mut Parser) -> Result<Ident, ParserE
841841
Token::Mod => ident.push('%'),
842842
Token::Div => ident.push('/'),
843843
Token::Plus => ident.push('+'),
844+
Token::Number(n, _) => ident.push_str(n),
844845
Token::Word(w) => ident.push_str(&w.to_string()),
845846
_ => return parser.expected("stage name identifier", parser.peek_token()),
846847
}

tests/sqlparser_snowflake.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2640,7 +2640,7 @@ fn test_snowflake_copy_into() {
26402640
}
26412641

26422642
// Test for non-ident characters in stage names
2643-
let sql = "COPY INTO a.b FROM @namespace.stage_name/x@x~x%x+";
2643+
let sql = "COPY INTO a.b FROM @namespace.stage_name/x@x~x%x+/20250723_data";
26442644
assert_eq!(snowflake().verified_stmt(sql).to_string(), sql);
26452645
match snowflake().verified_stmt(sql) {
26462646
Statement::CopyIntoSnowflake { into, from_obj, .. } => {
@@ -2652,7 +2652,7 @@ fn test_snowflake_copy_into() {
26522652
from_obj,
26532653
Some(ObjectName::from(vec![
26542654
Ident::new("@namespace"),
2655-
Ident::new("stage_name/x@x~x%x+")
2655+
Ident::new("stage_name/x@x~x%x+/20250723_data")
26562656
]))
26572657
)
26582658
}

0 commit comments

Comments
 (0)