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(
452452 Keyword :: AS => {
453453 let query = parser. parse_query ( ) ?;
454454 builder = builder. query ( Some ( query) ) ;
455- break ;
456455 }
457456 Keyword :: CLONE => {
458457 let clone = parser. parse_object_name ( false ) . ok ( ) ;
@@ -588,7 +587,7 @@ pub fn parse_create_table(
588587 builder = builder. columns ( columns) . constraints ( constraints) ;
589588 }
590589 Token :: EOF => {
591- if builder. columns . is_empty ( ) {
590+ if builder. columns . is_empty ( ) && builder . query . is_none ( ) {
592591 return Err ( ParserError :: ParserError (
593592 "unexpected end of input" . to_string ( ) ,
594593 ) ) ;
@@ -597,7 +596,7 @@ pub fn parse_create_table(
597596 break ;
598597 }
599598 Token :: SemiColon => {
600- if builder. columns . is_empty ( ) {
599+ if builder. columns . is_empty ( ) && builder . query . is_none ( ) {
601600 return Err ( ParserError :: ParserError (
602601 "unexpected end of input" . to_string ( ) ,
603602 ) ) ;
Original file line number Diff line number Diff line change @@ -995,6 +995,16 @@ fn test_snowflake_create_iceberg_table_without_location() {
995995 ) ;
996996}
997997
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+
9981008#[ test]
9991009fn parse_sf_create_or_replace_view_with_comment_missing_equal ( ) {
10001010 assert ! ( snowflake_and_generic( )
You can’t perform that action at this time.
0 commit comments