diff --git a/sql/snowflake/SnowflakeParser.g4 b/sql/snowflake/SnowflakeParser.g4 index c53fbf84bc..7bcad6c189 100644 --- a/sql/snowflake/SnowflakeParser.g4 +++ b/sql/snowflake/SnowflakeParser.g4 @@ -1134,7 +1134,7 @@ clustering_action ; table_column_action - : ADD COLUMN? column_name data_type + : ADD COLUMN? if_not_exists? column_name data_type default_value? inline_constraint? ( WITH? MASKING POLICY id_ ( USING '(' column_name COMMA column_list ')' )? )? @@ -1154,7 +1154,7 @@ table_column_action | alter_modify COLUMN column_name UNSET MASKING POLICY | alter_modify column_set_tags (COMMA column_set_tags)* | alter_modify column_unset_tags (COMMA column_unset_tags)* - | DROP COLUMN? column_list + | DROP COLUMN? if_exists? column_list ; inline_constraint @@ -2490,7 +2490,7 @@ create_tag ; tag_allowed_values - : ALLOWED_VALUES tag_value (COMMA tag_value)* + : ALLOWED_VALUES string_list ; session_parameter diff --git a/sql/snowflake/examples/tables.sql b/sql/snowflake/examples/tables.sql new file mode 100644 index 0000000000..60e0e4fc45 --- /dev/null +++ b/sql/snowflake/examples/tables.sql @@ -0,0 +1,4 @@ +create table t(i int); + +alter table t add column if not exists j int; +alter table t drop column if exists i; diff --git a/sql/snowflake/examples/tags.sql b/sql/snowflake/examples/tags.sql new file mode 100644 index 0000000000..4aff1f4091 --- /dev/null +++ b/sql/snowflake/examples/tags.sql @@ -0,0 +1,3 @@ +create tag sch.tag1 allowed_values 'a', 'b'; +create tag db.sch.tag2 allowed_values 'a', 'b' comment = ''; +create tag tag3 comment = '';