Skip to content

Commit fff4843

Browse files
authored
[Snowflake]Add support for SERVICE and IMAGE REPOSITORY object (#4796)
* Add IMAGE REPOSITORY related statement * Add IMAGE REPOSITORY related statement * Add VERSIONS keyword * Add support for SERVICE * Fix format and remove useless paren * FROM must not be allowed (Breaking rules)
1 parent 46eeeba commit fff4843

File tree

6 files changed

+213
-53
lines changed

6 files changed

+213
-53
lines changed

sql/snowflake/SnowflakeLexer.g4

Lines changed: 45 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ AUTO_INGEST : 'AUTO_INGEST';
108108
AUTO_REFRESH : 'AUTO_REFRESH';
109109
AUTO_RESUME : 'AUTO_RESUME';
110110
AUTO_SUSPEND : 'AUTO_SUSPEND';
111+
AUTO_SUSPEND_SECS : 'AUTO_SUSPEND_SECS';
111112
AVG : 'AVG';
112113
AVRO : 'AVRO';
113114
AVRO_Q : '\'AVRO\'';
@@ -204,6 +205,7 @@ COMMIT : 'COMMIT';
204205
//COMMITTED: 'COMMITTED';
205206
//COMPRESS: 'COMPRESS';
206207
COMPRESSION : 'COMPRESSION';
208+
COMPUTE : 'COMPUTE';
207209
CONCAT : 'CONCAT';
208210
// CONCAT_NULL_YIELDS_NULL: 'CONCAT_NULL_YIELDS_NULL';
209211
CONCAT_WS : 'CONCAT_WS';
@@ -254,13 +256,13 @@ DATEADD : 'DATEADD';
254256
DATEDIFF : 'DATEDIFF';
255257
// DATENAME: 'DATENAME';
256258
// DATEPART: 'DATEPART';
257-
DATE_FORMAT : 'DATE_FORMAT';
258-
DATE_INPUT_FORMAT : 'DATE_INPUT_FORMAT';
259-
DATE_OUTPUT_FORMAT : 'DATE_OUTPUT_FORMAT';
260-
DATE_PART : 'DATE_PART';
261-
DAYS : 'DAYS';
262-
DAYS_TO_EXPIRY : 'DAYS_TO_EXPIRY';
263-
DECLARE : 'DECLARE';
259+
DATE_FORMAT : 'DATE_FORMAT';
260+
DATE_INPUT_FORMAT : 'DATE_INPUT_FORMAT';
261+
DATE_OUTPUT_FORMAT : 'DATE_OUTPUT_FORMAT';
262+
DATE_PART : 'DATE_PART';
263+
DAYS : 'DAYS';
264+
DAYS_TO_EXPIRY : 'DAYS_TO_EXPIRY';
265+
DECLARE : 'DECLARE';
264266
DEFAULT : 'DEFAULT';
265267
DEFAULT_DDL_COLLATION_ : 'DEFAULT_DDL_COLLATION';
266268
DEFAULT_NAMESPACE : 'DEFAULT_NAMESPACE';
@@ -337,8 +339,9 @@ EXPLAIN : 'EXPLAIN';
337339
EXPR : 'EXPR';
338340
EXTENSION : 'EXTENSION';
339341
// EXPLICIT: 'EXPLICIT';
340-
EXTERNAL : 'EXTERNAL';
341-
EXTERNAL_OAUTH : 'EXTERNAL_OAUTH';
342+
EXTERNAL : 'EXTERNAL';
343+
EXTERNAL_ACCESS_INTEGRATIONS : 'EXTERNAL_ACCESS_INTEGRATIONS';
344+
EXTERNAL_OAUTH : 'EXTERNAL_OAUTH';
342345
EXTERNAL_OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST:
343346
'EXTERNAL_OAUTH_ADD_PRIVILEGED_ROLES_TO_BLOCKED_LIST'
344347
;
@@ -438,6 +441,8 @@ IGNORE : 'IGNORE';
438441
// IGNORE_TRIGGERS: 'IGNORE_TRIGGERS';
439442
IGNORE_UTF8_ERRORS : 'IGNORE_UTF8_ERRORS';
440443
ILIKE : 'ILIKE';
444+
IMAGE : 'IMAGE';
445+
IMAGES : 'IMAGES';
441446
IMMEDIATE : 'IMMEDIATE';
442447
IMMEDIATELY : 'IMMEDIATELY';
443448
IMMUTABLE : 'IMMUTABLE';
@@ -469,13 +474,16 @@ INTERSECT : 'INTERSECT';
469474
INTERVAL : 'INTERVAL';
470475
INTO : 'INTO';
471476
IS : 'IS';
477+
INSTANCES : 'INSTANCES';
472478
// ISNUMERIC: 'ISNUMERIC';
473479
// ISOLATION: 'ISOLATION';
474480
JAVA : 'JAVA';
475481
JAVASCRIPT : 'JAVASCRIPT';
476482
JDBC_TREAT_DECIMAL_AS_INT : 'JDBC_TREAT_DECIMAL_AS_INT';
477483
JDBC_TREAT_TIMESTAMP_NTZ_AS_UTC : 'JDBC_TREAT_TIMESTAMP_NTZ_AS_UTC';
478484
JDBC_USE_SESSION_TIMEZONE : 'JDBC_USE_SESSION_TIMEZONE';
485+
JOB : 'JOB';
486+
JOBS : 'JOBS';
479487
JOIN : 'JOIN';
480488
JSON : 'JSON';
481489
JSON_Q : '\'JSON\'';
@@ -515,6 +523,7 @@ LOCATION : 'LOCATION';
515523
LOCKS : 'LOCKS';
516524
LOCK_TIMEOUT : 'LOCK_TIMEOUT';
517525
// LOG: 'LOG';
526+
LOG_LEVEL: 'LOG_LEVEL';
518527
// LOGIN: 'LOGIN';
519528
LOGIN_NAME : 'LOGIN_NAME';
520529
LOOKER : 'LOOKER';
@@ -540,6 +549,7 @@ MAX_BATCH_ROWS : 'MAX_BATCH_ROWS';
540549
MAX_CLUSTER_COUNT : 'MAX_CLUSTER_COUNT';
541550
MAX_CONCURRENCY_LEVEL : 'MAX_CONCURRENCY_LEVEL';
542551
MAX_DATA_EXTENSION_TIME_IN_DAYS : 'MAX_DATA_EXTENSION_TIME_IN_DAYS';
552+
MAX_INSTANCES : 'MAX_INSTANCES';
543553
MAX_SIZE : 'MAX_SIZE';
544554
MEASURES : 'MEASURES';
545555
MEDIUM : 'MEDIUM';
@@ -550,6 +560,8 @@ MERGE : 'MERGE';
550560
METADATA : 'METADATA';
551561
MIDDLE_NAME : 'MIDDLE_NAME';
552562
MIN : 'MIN';
563+
MIN_INSTANCES : 'MIN_INSTANCES';
564+
MIN_READY_INSTANCES : 'MIN_READY_INSTANCES';
553565
MINS_TO_BYPASS_MFA : 'MINS_TO_BYPASS_MFA';
554566
MINS_TO_UNLOCK : 'MINS_TO_UNLOCK';
555567
MINUS_ : 'MINUS';
@@ -703,8 +715,8 @@ PIVOT : 'PIVOT';
703715
// PLATFORM: 'PLATFORM';
704716
POLICIES : 'POLICIES';
705717
POLICY : 'POLICY';
706-
// POOL: 'POOL';
707-
PORT: 'PORT';
718+
POOL : 'POOL';
719+
PORT : 'PORT';
708720
// PRECEDING: 'PRECEDING';
709721
// PREDICATE: 'PREDICATE';
710722
PREFIX : 'PREFIX';
@@ -739,6 +751,7 @@ QUERIES : 'QUERIES';
739751
QUERY : 'QUERY';
740752
QUERY_ACCELERATION_MAX_SCALE_FACTOR : 'QUERY_ACCELERATION_MAX_SCALE_FACTOR';
741753
QUERY_TAG : 'QUERY_TAG';
754+
QUERY_WAREHOUSE : 'QUERY_WAREHOUSE';
742755
QUEUE : 'QUEUE';
743756
QUOTED_IDENTIFIERS_IGNORE_CASE : 'QUOTED_IDENTIFIERS_IGNORE_CASE';
744757
// RANGE: 'RANGE';
@@ -800,13 +813,13 @@ RESOURCE_MONITOR : 'RESOURCE_MONITOR';
800813
RESPECT : 'RESPECT';
801814
RESPONSE_TRANSLATOR : 'RESPONSE_TRANSLATOR';
802815
// RESTART: 'RESTART';
803-
// RESTORE: 'RESTORE';
816+
RESTORE : 'RESTORE';
804817
RESTRICT : 'RESTRICT';
805818
RESTRICTIONS : 'RESTRICTIONS';
806819
RESULT : 'RESULT';
807820
RESUME : 'RESUME';
808821
// RETAINDAYS: 'RETAINDAYS';
809-
RETURN : 'RETURN';
822+
RETURN : 'RETURN';
810823
RETRY : 'RETRY';
811824
RETURNS : 'RETURNS';
812825
RETURN_ALL_ERRORS : 'RETURN_ALL_ERRORS';
@@ -884,6 +897,7 @@ SEED : 'SEED';
884897
SELECT : 'SELECT';
885898
SEMANTIC : 'SEMANTIC';
886899
SERVICE : 'SERVICE';
900+
SERVICES : 'SERVICES';
887901
// SELF: 'SELF';
888902
SEQUENCE : 'SEQUENCE';
889903
SEQUENCES : 'SEQUENCES';
@@ -917,26 +931,30 @@ SKIP_HEADER : 'SKIP_HEADER';
917931
SMALL : 'SMALL';
918932
SNAPPY : 'SNAPPY';
919933
SNAPPY_COMPRESSION : 'SNAPPY_COMPRESSION';
920-
SNOWFLAKE_FULL : 'SNOWFLAKE_FULL';
921-
SNOWFLAKE_SSE : 'SNOWFLAKE_SSE';
934+
SNAPSHOT : 'SNAPSHOT';
935+
SNOWFLAKE_FULL_Q : '\'SNOWFLAKE_FULL\'';
936+
SNOWFLAKE_SSE_Q : '\'SNOWFLAKE_SSE\'';
922937
SNOWPARK_OPTIMIZED : '\'SNOWPARK-OPTIMIZED\'';
923938
SOME : 'SOME';
924939
// SOUNDEX: 'SOUNDEX';
925940
SOURCE : 'SOURCE';
926941
SOURCE_COMPRESSION : 'SOURCE_COMPRESSION';
927942
// SPACE_KEYWORD: 'SPACE';
928943
// SPARSE: 'SPARSE';
929-
// SPECIFICATION: 'SPECIFICATION';
930-
SPLIT : 'SPLIT';
931-
SPLIT_PART : 'SPLIT_PART';
932-
SPLIT_TO_TABLE : 'SPLIT_TO_TABLE';
933-
SQL : 'SQL';
934-
SSO_LOGIN_PAGE : 'SSO_LOGIN_PAGE';
935-
STAGE : 'STAGE';
936-
STAGES : 'STAGES';
937-
STAGE_COPY_OPTIONS : 'STAGE_COPY_OPTIONS';
938-
STAGE_FILE_FORMAT : 'STAGE_FILE_FORMAT';
939-
STANDARD : 'STANDARD';
944+
SPECIFICATION : 'SPECIFICATION';
945+
SPECIFICATION_FILE : 'SPECIFICATION_FILE';
946+
SPECIFICATION_TEMPLATE : 'SPECIFICATION_TEMPLATE';
947+
SPECIFICATION_TEMPLATE_FILE : 'SPECIFICATION_TEMPLATE_FILE';
948+
SPLIT : 'SPLIT';
949+
SPLIT_PART : 'SPLIT_PART';
950+
SPLIT_TO_TABLE : 'SPLIT_TO_TABLE';
951+
SQL : 'SQL';
952+
SSO_LOGIN_PAGE : 'SSO_LOGIN_PAGE';
953+
STAGE : 'STAGE';
954+
STAGES : 'STAGES';
955+
STAGE_COPY_OPTIONS : 'STAGE_COPY_OPTIONS';
956+
STAGE_FILE_FORMAT : 'STAGE_FILE_FORMAT';
957+
STANDARD : 'STANDARD';
940958
// STANDBY: 'STANDBY';
941959
START: 'START';
942960
// STARTED: 'STARTED';
@@ -1124,6 +1142,7 @@ VIEWS : 'VIEWS';
11241142
// VIEW_METADATA: 'VIEW_METADATA';
11251143
VISIBILITY : 'VISIBILITY';
11261144
VOLATILE : 'VOLATILE';
1145+
VOLUME : 'VOLUME';
11271146
// WAIT: 'WAIT';
11281147
WAREHOUSE : 'WAREHOUSE';
11291148
WAREHOUSES : 'WAREHOUSES';

0 commit comments

Comments
 (0)