File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -560,6 +560,9 @@ pub fn parse_create_table(
560560 builder. storage_serialization_policy =
561561 Some ( parse_storage_serialization_policy ( parser) ?) ;
562562 }
563+ Keyword :: IF if parser. parse_keywords ( & [ Keyword :: NOT , Keyword :: EXISTS ] ) => {
564+ builder = builder. if_not_exists ( true ) ;
565+ }
563566 _ => {
564567 return parser. expected ( "end of statement" , next_token) ;
565568 }
Original file line number Diff line number Diff line change @@ -446,6 +446,27 @@ fn test_snowflake_create_table_if_not_exists() {
446446 }
447447 _ => unreachable ! ( ) ,
448448 }
449+
450+ for ( sql, parse_to) in [
451+ (
452+ r#"CREATE TABLE IF NOT EXISTS "A"."B"."C" (v VARIANT)"# ,
453+ r#"CREATE TABLE IF NOT EXISTS "A"."B"."C" (v VARIANT)"# ,
454+ ) ,
455+ (
456+ r#"CREATE TABLE "A"."B"."C" IF NOT EXISTS (v VARIANT)"# ,
457+ r#"CREATE TABLE IF NOT EXISTS "A"."B"."C" (v VARIANT)"# ,
458+ ) ,
459+ (
460+ r#"CREATE TRANSIENT TABLE IF NOT EXISTS "A"."B"."C" (v VARIANT)"# ,
461+ r#"CREATE TRANSIENT TABLE IF NOT EXISTS "A"."B"."C" (v VARIANT)"# ,
462+ ) ,
463+ (
464+ r#"CREATE TRANSIENT TABLE "A"."B"."C" IF NOT EXISTS (v VARIANT)"# ,
465+ r#"CREATE TRANSIENT TABLE IF NOT EXISTS "A"."B"."C" (v VARIANT)"# ,
466+ ) ,
467+ ] {
468+ snowflake ( ) . one_statement_parses_to ( sql, parse_to) ;
469+ }
449470}
450471
451472#[ test]
You can’t perform that action at this time.
0 commit comments