Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Snowflake] minor fixes #4249

Merged
merged 2 commits into from
Sep 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 31 additions & 29 deletions sql/snowflake/SnowflakeLexer.g4
Original file line number Diff line number Diff line change
Expand Up @@ -230,10 +230,10 @@ CSV : 'CSV';
CSV_Q : '\'CSV\'';
CUBE : 'CUBE';
// CUME_DIST: 'CUME_DIST';
CURRENT : 'CURRENT';
CURRENT_DATE : 'CURRENT_DATE';
// CURRENT_TIME: 'CURRENT_TIME';
CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP';
CURRENT : 'CURRENT';
CURRENT_DATE : 'CURRENT_DATE';
CURRENT_TIME : 'CURRENT_TIME';
CURRENT_TIMESTAMP : 'CURRENT_TIMESTAMP';
// CURRENT_USER: 'CURRENT_USER';
// CURSOR: 'CURSOR';
CUSTOM : 'CUSTOM';
Expand All @@ -250,8 +250,8 @@ DATE_FORMAT : 'DATE_FORMAT';
DATE_INPUT_FORMAT : 'DATE_INPUT_FORMAT';
DATE_OUTPUT_FORMAT : 'DATE_OUTPUT_FORMAT';
DATE_PART : 'DATE_PART';
// DAYS: 'DAYS';
DAYS_TO_EXPIRY: 'DAYS_TO_EXPIRY';
DAYS : 'DAYS';
DAYS_TO_EXPIRY : 'DAYS_TO_EXPIRY';
// DECLARE: 'DECLARE';
DEFAULT : 'DEFAULT';
DEFAULT_DDL_COLLATION_ : 'DEFAULT_DDL_COLLATION';
Expand Down Expand Up @@ -405,9 +405,9 @@ HEADER : 'HEADER';
HEADERS : 'HEADERS';
HEX : 'HEX';
// HIERARCHYID: 'HIERARCHYID';
// HIGH: 'HIGH';
HISTORY: 'HISTORY';
// HOURS: 'HOURS';
HIGH : 'HIGH';
HISTORY : 'HISTORY';
HOURS : 'HOURS';
IDENTIFIER : 'IDENTIFIER';
IDENTITY : 'IDENTITY';
IF : 'IF';
Expand Down Expand Up @@ -498,12 +498,12 @@ LOCK_TIMEOUT : 'LOCK_TIMEOUT';
// LOGIN: 'LOGIN';
LOGIN_NAME : 'LOGIN_NAME';
LOOKER : 'LOOKER';
// LOW: 'LOW';
LOWER : 'LOWER';
LTRIM : 'LTRIM';
LZO : 'LZO';
MANAGE : 'MANAGE';
MANAGED : 'MANAGED';
LOW : 'LOW';
LOWER : 'LOWER';
LTRIM : 'LTRIM';
LZO : 'LZO';
MANAGE : 'MANAGE';
MANAGED : 'MANAGED';
// MASK: 'MASK';
// MASKED: 'MASKED';
MASKING: 'MASKING';
Expand Down Expand Up @@ -684,8 +684,8 @@ PREVENT_UNLOAD_TO_INTERNAL_STAGES : 'PREVENT_UNLOAD_TO_INTERNAL_STAGES';
PRE_AUTHORIZED_ROLES_LIST : 'PRE_AUTHORIZED_ROLES_LIST';
PRIMARY : 'PRIMARY';
// PRIMARY_ROLE: 'PRIMARY_ROLE';
PRIOR: 'PRIOR';
// PRIORITY: 'PRIORITY';
PRIOR : 'PRIOR';
PRIORITY : 'PRIORITY';
// PRIORITY_LEVEL: 'PRIORITY_LEVEL';
// PRIVATE: 'PRIVATE';
// PRIVATE_KEY: 'PRIVATE_KEY';
Expand All @@ -699,13 +699,14 @@ PROCEDURE_NAME : 'PROCEDURE_NAME';
PROPERTY : 'PROPERTY';
PROVIDER : 'PROVIDER';
// PROVIDER_KEY_NAME: 'PROVIDER_KEY_NAME';
PUBLIC : 'PUBLIC';
PURGE : 'PURGE';
PUT : 'PUT';
PYTHON : 'PYTHON';
QUALIFY : 'QUALIFY';
QUERIES : 'QUERIES';
// QUERY: 'QUERY';
PUBLIC : 'PUBLIC';
PURGE : 'PURGE';
PUT : 'PUT';
PYTHON : 'PYTHON';
QUALIFY : 'QUALIFY';
QUARTER : 'QUARTER';
QUERIES : 'QUERIES';
QUERY : 'QUERY';
QUERY_ACCELERATION_MAX_SCALE_FACTOR : 'QUERY_ACCELERATION_MAX_SCALE_FACTOR';
QUERY_TAG : 'QUERY_TAG';
QUEUE : 'QUEUE';
Expand Down Expand Up @@ -901,8 +902,8 @@ STANDARD : 'STANDARD';
// STANDBY: 'STANDBY';
START: 'START';
// STARTED: 'STARTED';
STARTS: 'STARTS';
// START_DATE: 'START_DATE';
STARTS : 'STARTS';
START_DATE : 'START_DATE';
START_TIMESTAMP : 'START_TIMESTAMP';
STATE : 'STATE';
STATEMENT : 'STATEMENT';
Expand All @@ -913,7 +914,7 @@ STATEMENT_TIMEOUT_IN_SECONDS : 'STATEMENT_TIMEOUT_IN_SECONDS';
STATS: 'STATS';
// STATS_DATE: 'STATS_DATE';
// STATS_STREAM: 'STATS_STREAM';
// STATUS: 'STATUS';
STATUS: 'STATUS';
// STATUSONLY: 'STATUSONLY';
// STDEV: 'STDEV';
// STDEVP: 'STDEVP';
Expand Down Expand Up @@ -1078,8 +1079,8 @@ VERSION : 'VERSION';
VIEW : 'VIEW';
VIEWS : 'VIEWS';
// VIEW_METADATA: 'VIEW_METADATA';
// VISIBILITY: 'VISIBILITY';
VOLATILE: 'VOLATILE';
VISIBILITY : 'VISIBILITY';
VOLATILE : 'VOLATILE';
// WAIT: 'WAIT';
WAREHOUSE : 'WAREHOUSE';
WAREHOUSES : 'WAREHOUSES';
Expand Down Expand Up @@ -1108,6 +1109,7 @@ XSMALL : 'XSMALL';
XXLARGE : 'XXLARGE';
XXXLARGE : 'XXXLARGE';
YEARLY : 'YEARLY';
YEAR : 'YEAR';
ZSTD : 'ZSTD';

ARRAY : 'ARRAY';
Expand Down
58 changes: 49 additions & 9 deletions sql/snowflake/SnowflakeParser.g4
Original file line number Diff line number Diff line change
Expand Up @@ -2347,7 +2347,7 @@ create_stream
//-- table or view
: CREATE or_replace? STREAM if_not_exists? object_name with_tags? copy_grants? ON (
TABLE
|VIEW
| VIEW
) object_name stream_time? append_only? show_initial_rows? comment_clause?
//-- External table
| CREATE or_replace? STREAM if_not_exists? object_name with_tags? copy_grants? ON EXTERNAL TABLE object_name stream_time? insert_only?
Expand Down Expand Up @@ -2459,8 +2459,8 @@ create_table_clause
: (
column_decl_item_list_paren cluster_by?
| cluster_by? comment_clause? column_decl_item_list_paren
) stage_file_format? (STAGE_COPY_OPTIONS EQ LR_BRACKET copy_options RR_BRACKET)? set_data_retention_params? change_tracking?
default_ddl_collation? copy_grants? comment_clause? with_row_access_policy? with_tags?
) stage_file_format? (STAGE_COPY_OPTIONS EQ LR_BRACKET copy_options RR_BRACKET)? set_data_retention_params? change_tracking? default_ddl_collation
? copy_grants? comment_clause? with_row_access_policy? with_tags?
;

create_table_as_select
Expand Down Expand Up @@ -3559,9 +3559,10 @@ keyword
//List here keyword (SnowSQL meaning) allowed as object name
// Name of builtin function should be included in specifique section (ie builtin_function)
// please add in alphabetic order for easy reading
// https://docs.snowflake.com/en/sql-reference/reserved-keywords
: ACCOUNT
| ALERT
| ACTION
| ALERT
| AT_KEYWORD
| CLUSTER
| COMMENT
Expand Down Expand Up @@ -3595,6 +3596,7 @@ keyword
| TAG
| TARGET_LAG
| TEMP
| TIMESTAMP
| TYPE
| USER
| VALUE
Expand All @@ -3609,29 +3611,40 @@ non_reserved_words
// please add in alphabetic order for easy reading
: ACCOUNTADMIN
| AES
| ALLOW_OVERLAPPING_EXECUTION
| ARRAY_AGG
| CHECKSUM
| COLLECTION
| COMMENT
| CONFIGURATION
| DATA
| DAYS
| DEFINITION
| DELTA
| DISPLAY_NAME
| DOWNSTREAM
| DYNAMIC
| EDITION
| ENABLED
| EMAIL
| EMPTY_
| ENABLED
| ERROR_INTEGRATION
| EVENT
| EXCHANGE
| EXPIRY_DATE
| EXPR
| FILE
| FILES
| FIRST_NAME
| FIRST_VALUE
| FREQUENCY
| GLOBAL
| HIGH
| HOURS
| IDENTIFIER
| IDENTITY
| INCREMENTAL
| IMPORTED
| INDEX
| INITIALIZE
| INPUT
Expand All @@ -3641,8 +3654,14 @@ non_reserved_words
| LAST_QUERY_ID
| LEAD
| LOCAL
| LOW
| MAX_CONCURRENCY_LEVEL
| MEDIUM
| MODE
| NAME
| NETWORK
| NULLIF
| NVL
| OFFSET
| OLD
| ON_CREATE
Expand All @@ -3651,6 +3670,8 @@ non_reserved_words
| OPTION
| ORGADMIN
| OUTBOUND
| OUTER
| OWNER
| PARTITION
| PASSWORD
| PASSWORD_HISTORY
Expand All @@ -3667,33 +3688,47 @@ non_reserved_words
| PATH_
| PATTERN
| PORT
| PRIORITY
| PROCEDURE_NAME
| PROPERTY
| PROVIDER
| PUBLIC
| QUARTER
| QUERY
| QUERY_TAG
| RANK
| RECURSIVE
| REFERENCES
| REFRESH_MODE
| RESOURCE
| RESOURCES
| RESPECT
| RESTRICT
| RESULT
| ROLE
| ROUNDING_MODE
| ROW_NUMBER
| SCALE
| SCHEDULE
| SECURITYADMIN
| SOURCE
| START_DATE
| STATE
| STATS
| STATUS
| SYSADMIN
| TAG
| TAGS
| TARGET_LAG
| TIMEZONE
| URL
| USERADMIN
| VALUE
| VALUES
| VERSION
| VISIBILITY
| WAREHOUSE_TYPE
| FREQUENCY
| YEAR
;

builtin_function
Expand All @@ -3704,6 +3739,7 @@ builtin_function
| MIN
| COUNT
| CURRENT_TIMESTAMP
| CURRENT_TIME
| CURRENT_DATE
| UPPER
| LOWER
Expand Down Expand Up @@ -3831,7 +3867,7 @@ expr
| op = ( PLUS | MINUS) expr
| expr op = (STAR | DIVIDE | MODULE) expr
| expr op = (PLUS | MINUS | PIPE_PIPE) expr
| expr comparison_operator expr
| l = expr comparison_operator r = expr
| op = NOT+ expr
| expr AND expr //bool operation
| expr OR expr //bool operation
Expand Down Expand Up @@ -3926,10 +3962,14 @@ primitive_expression
: DEFAULT //?
| NULL_
| id_ ('.' id_)* // json field access
| id_ '.' STAR
| full_column_name
| literal
| BOTH_Q
| ARRAY_Q
| AUTO_Q
| AZURE_Q
| BOTH_Q
| NONE_Q
| OBJECT_Q
//| json_literal
//| arr_literal
Expand Down Expand Up @@ -4066,7 +4106,7 @@ query_statement
;

with_expression
: WITH common_table_expression (COMMA common_table_expression)*
: WITH RECURSIVE? common_table_expression (COMMA common_table_expression)*
;

common_table_expression
Expand Down
4 changes: 3 additions & 1 deletion sql/snowflake/examples/select.sql
Original file line number Diff line number Diff line change
Expand Up @@ -125,4 +125,6 @@ with a as (
(select * from b)
)
select *
from a;
from a;

select count(t.*) as ca from t9 as t;
Loading