File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -452,7 +452,6 @@ pub fn parse_create_table(
452
452
Keyword :: AS => {
453
453
let query = parser. parse_query ( ) ?;
454
454
builder = builder. query ( Some ( query) ) ;
455
- break ;
456
455
}
457
456
Keyword :: CLONE => {
458
457
let clone = parser. parse_object_name ( false ) . ok ( ) ;
@@ -588,7 +587,7 @@ pub fn parse_create_table(
588
587
builder = builder. columns ( columns) . constraints ( constraints) ;
589
588
}
590
589
Token :: EOF => {
591
- if builder. columns . is_empty ( ) {
590
+ if builder. columns . is_empty ( ) && builder . query . is_none ( ) {
592
591
return Err ( ParserError :: ParserError (
593
592
"unexpected end of input" . to_string ( ) ,
594
593
) ) ;
@@ -597,7 +596,7 @@ pub fn parse_create_table(
597
596
break ;
598
597
}
599
598
Token :: SemiColon => {
600
- if builder. columns . is_empty ( ) {
599
+ if builder. columns . is_empty ( ) && builder . query . is_none ( ) {
601
600
return Err ( ParserError :: ParserError (
602
601
"unexpected end of input" . to_string ( ) ,
603
602
) ) ;
Original file line number Diff line number Diff line change @@ -995,6 +995,16 @@ fn test_snowflake_create_iceberg_table_without_location() {
995
995
) ;
996
996
}
997
997
998
+ #[ test]
999
+ fn test_snowflake_create_table_as ( ) {
1000
+ // Test additional options after AS (query)
1001
+ snowflake ( )
1002
+ . parse_sql_statements (
1003
+ "CREATE TEMP TABLE dst AS (SELECT * FROM src) ON COMMIT PRESERVE ROWS" ,
1004
+ )
1005
+ . unwrap ( ) ;
1006
+ }
1007
+
998
1008
#[ test]
999
1009
fn parse_sf_create_or_replace_view_with_comment_missing_equal ( ) {
1000
1010
assert ! ( snowflake_and_generic( )
You can’t perform that action at this time.
0 commit comments