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 @@ -555,7 +555,6 @@ pub fn parse_create_table(
555555 Keyword :: AS => {
556556 let query = parser. parse_query ( ) ?;
557557 builder = builder. query ( Some ( query) ) ;
558- break ;
559558 }
560559 Keyword :: CLONE => {
561560 let clone = parser. parse_object_name ( false ) . ok ( ) ;
@@ -691,7 +690,7 @@ pub fn parse_create_table(
691690 builder = builder. columns ( columns) . constraints ( constraints) ;
692691 }
693692 Token :: EOF => {
694- if builder. columns . is_empty ( ) {
693+ if builder. columns . is_empty ( ) && builder . query . is_none ( ) {
695694 return Err ( ParserError :: ParserError (
696695 "unexpected end of input" . to_string ( ) ,
697696 ) ) ;
@@ -700,7 +699,7 @@ pub fn parse_create_table(
700699 break ;
701700 }
702701 Token :: SemiColon => {
703- if builder. columns . is_empty ( ) {
702+ if builder. columns . is_empty ( ) && builder . query . is_none ( ) {
704703 return Err ( ParserError :: ParserError (
705704 "unexpected end of input" . to_string ( ) ,
706705 ) ) ;
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