diff --git a/sql/snowflake/SnowflakeParser.g4 b/sql/snowflake/SnowflakeParser.g4 index 46c62afa7e..ff8addd993 100644 --- a/sql/snowflake/SnowflakeParser.g4 +++ b/sql/snowflake/SnowflakeParser.g4 @@ -3644,6 +3644,7 @@ non_reserved_words | NAME | NETWORK | OFFSET + | OLD | ON_CREATE | ON_ERROR | ON_SCHEDULE @@ -3681,6 +3682,7 @@ non_reserved_words | SCALE | SECURITYADMIN | SOURCE + | START_DATE | STATE | STATS | SYSADMIN @@ -3953,6 +3955,7 @@ asc_desc over_clause : OVER '(' partition_by order_by_expr? ')' | OVER '(' order_by_expr ')' + | OVER '(' ')' ; function_call @@ -4084,6 +4087,7 @@ select_statement_in_parentheses : LR_BRACKET select_statement_in_parentheses RR_BRACKET | select_statement_in_parentheses set_operators | select_statement + | with_expression ; select_optional_clauses diff --git a/sql/snowflake/examples/select.sql b/sql/snowflake/examples/select.sql index d6fa9b2593..cd4e3878d7 100644 --- a/sql/snowflake/examples/select.sql +++ b/sql/snowflake/examples/select.sql @@ -110,3 +110,19 @@ union (((select 10 as c))) union ((select 11 as d)); + +SELECT SUM(cs) OVER() AS ta FROM t; + +SELECT old, start_date from t; + + +with a as ( + with b as ( + select 't' as c + ) + (select * from b) + union + (select * from b) +) +select * +from a; \ No newline at end of file