refactor: migrate antlr4 v4.12.0 to antlr4ts(4.9.0) (#106)
* build: ignore gen folder * refactor: remove useless code * fix: correct the Javascript usage in grammar * refactor: move to antlr4ts * fix: remove useless * fix: update grammars for javascript target * refactor: migrate to antlr4ts * refactor: migrate to antlr4ts * refactor: implements ParserErrorListener * fix: rename the start reserved word * refactor: remove unused import * refactor: migrate to antlr4ts * test: update the expects of test cases * refactor: migrate hive to antlr4ts * refactor: update the incompatible syntax for antlr4ts * refactor: migrate pgsql grammar to antlr4ts, increasing tests * refactor: migrate the plsql to antlr4ts * build: remove unused config * build: migrate to antlr4ts * build: migrate ts-jest to @swc/jest * refactor: migrate to anltr4ts * build: migrate ts-jest to @swc/jest
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -1,441 +1,553 @@
|
||||
/**
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
lexer grammar HiveSqlLexer;
|
||||
|
||||
// Lexer rules
|
||||
T_ACTION : A C T I O N ;
|
||||
T_ADD2 : A D D ;
|
||||
T_ALL : A L L ;
|
||||
T_ALLOCATE : A L L O C A T E ;
|
||||
T_ALTER : A L T E R ;
|
||||
T_AND : A N D ;
|
||||
T_ANSI_NULLS : A N S I '_' N U L L S ;
|
||||
T_ANSI_PADDING : A N S I '_' P A D D I N G ;
|
||||
T_AS : A S ;
|
||||
T_ASC : A S C ;
|
||||
T_ASSOCIATE : A S S O C I A T E ;
|
||||
T_AT : A T ;
|
||||
T_AUTO_INCREMENT : A U T O '_' I N C R E M E N T ;
|
||||
T_AVG : A V G ;
|
||||
T_BATCHSIZE : B A T C H S I Z E ;
|
||||
T_BEGIN : B E G I N ;
|
||||
T_BETWEEN : B E T W E E N ;
|
||||
T_BIGINT : B I G I N T ;
|
||||
T_BINARY_DOUBLE : B I N A R Y '_' D O U B L E ;
|
||||
T_BINARY_FLOAT : B I N A R Y '_' F L O A T ;
|
||||
T_BINARY_INTEGER : B I N A R Y '_' I N T E G E R ;
|
||||
T_BIT : B I T ;
|
||||
T_BODY : B O D Y ;
|
||||
T_BREAK : B R E A K ;
|
||||
T_BY : B Y ;
|
||||
T_BYTE : B Y T E ;
|
||||
T_CALL : C A L L ;
|
||||
T_CALLER : C A L L E R ;
|
||||
T_CASCADE : C A S C A D E ;
|
||||
T_CASE : C A S E ;
|
||||
T_CASESPECIFIC : C A S E S P E C I F I C ;
|
||||
T_CAST : C A S T ;
|
||||
T_CHAR : C H A R ;
|
||||
T_CHARACTER : C H A R A C T E R ;
|
||||
T_CHARSET : C H A R S E T ;
|
||||
T_CLIENT : C L I E N T ;
|
||||
T_CLOSE : C L O S E ;
|
||||
T_CLUSTERED : C L U S T E R E D;
|
||||
T_CMP : C M P ;
|
||||
T_COLLECT : C O L L E C T ;
|
||||
T_COLLECTION : C O L L E C T I O N ;
|
||||
T_COLUMN : C O L U M N ;
|
||||
T_COMMENT : C O M M E N T;
|
||||
T_CONSTANT : C O N S T A N T ;
|
||||
T_COMMIT : C O M M I T ;
|
||||
T_COMPRESS : C O M P R E S S ;
|
||||
T_CONCAT : C O N C A T;
|
||||
T_CONDITION : C O N D I T I O N ;
|
||||
T_CONSTRAINT : C O N S T R A I N T ;
|
||||
T_CONTINUE : C O N T I N U E ;
|
||||
T_COPY : C O P Y ;
|
||||
T_COUNT : C O U N T ;
|
||||
T_COUNT_BIG : C O U N T '_' B I G;
|
||||
T_CREATE : C R E A T E ;
|
||||
T_CREATION : C R E A T I O N ;
|
||||
T_CREATOR : C R E A T O R ;
|
||||
T_CS : C S;
|
||||
T_CURRENT : C U R R E N T ;
|
||||
T_CURRENT_SCHEMA : C U R R E N T '_' S C H E M A ;
|
||||
T_CURSOR : C U R S O R ;
|
||||
T_DATABASE : D A T A B A S E ;
|
||||
T_DATA : D A T A ;
|
||||
T_DATE : D A T E ;
|
||||
T_DATETIME : D A T E T I M E ;
|
||||
T_DAY : D A Y ;
|
||||
T_DAYS : D A Y S ;
|
||||
T_DEC : D E C ;
|
||||
T_DECIMAL : D E C I M A L ;
|
||||
T_DECLARE : D E C L A R E ;
|
||||
T_DEFAULT : D E F A U L T ;
|
||||
T_DEFERRED : D E F E R R E D ;
|
||||
T_DEFINED : D E F I N E D ;
|
||||
T_DEFINER : D E F I N E R ;
|
||||
T_DEFINITION : D E F I N I T I O N ;
|
||||
T_DELETE : D E L E T E ;
|
||||
T_DELIMITED : D E L I M I T E D ;
|
||||
T_DELIMITER : D E L I M I T E R ;
|
||||
T_DESC : D E S C ;
|
||||
T_DESCRIBE : D E S C R I B E ;
|
||||
T_DIAGNOSTICS : D I A G N O S T I C S ;
|
||||
T_DIR : D I R ;
|
||||
T_DIRECTORY : D I R E C T O R Y ;
|
||||
T_DISTINCT : D I S T I N C T ;
|
||||
T_DISTRIBUTE : D I S T R I B U T E ;
|
||||
T_DO : D O ;
|
||||
T_DOUBLE : D O U B L E ;
|
||||
T_DROP : D R O P ;
|
||||
T_DYNAMIC : D Y N A M I C ;
|
||||
T_ELSE : E L S E ;
|
||||
T_ELSEIF : E L S E I F ;
|
||||
T_ELSIF : E L S I F ;
|
||||
T_ENABLE : E N A B L E ;
|
||||
T_END : E N D ;
|
||||
T_ENGINE : E N G I N E ;
|
||||
T_ESCAPED : E S C A P E D ;
|
||||
T_EXCEPT : E X C E P T ;
|
||||
T_EXEC : E X E C ;
|
||||
T_EXECUTE : E X E C U T E ;
|
||||
T_EXCEPTION : E X C E P T I O N ;
|
||||
T_EXCLUSIVE : E X C L U S I V E ;
|
||||
T_EXISTS : E X I S T S ;
|
||||
T_EXIT : E X I T ;
|
||||
T_FALLBACK : F A L L B A C K ;
|
||||
T_FALSE : F A L S E ;
|
||||
T_FETCH : F E T C H ;
|
||||
T_FIELDS : F I E L D S ;
|
||||
T_FILE : F I L E ;
|
||||
T_FILES : F I L E S ;
|
||||
T_FLOAT : F L O A T ;
|
||||
T_FOR : F O R ;
|
||||
T_FOREIGN : F O R E I G N ;
|
||||
T_FORMAT : F O R M A T ;
|
||||
T_FOUND : F O U N D ;
|
||||
T_FROM : F R O M ;
|
||||
T_FULL : F U L L ;
|
||||
T_FUNCTION : F U N C T I O N ;
|
||||
T_GET : G E T ;
|
||||
T_GLOBAL : G L O B A L ;
|
||||
T_GO : G O ;
|
||||
T_GRANT : G R A N T ;
|
||||
T_GROUP : G R O U P ;
|
||||
T_HANDLER : H A N D L E R ;
|
||||
T_HASH : H A S H ;
|
||||
T_HAVING : H A V I N G ;
|
||||
T_HDFS : H D F S ;
|
||||
T_HIVE : H I V E ;
|
||||
T_HOST : H O S T ;
|
||||
T_IDENTITY : I D E N T I T Y ;
|
||||
T_IF : I F ;
|
||||
T_IGNORE : I G N O R E ;
|
||||
T_IMMEDIATE : I M M E D I A T E ;
|
||||
T_IN : I N ;
|
||||
T_INCLUDE : I N C L U D E ;
|
||||
T_INDEX : I N D E X ;
|
||||
T_INITRANS : I N I T R A N S ;
|
||||
T_INNER : I N N E R ;
|
||||
T_INOUT : I N O U T;
|
||||
T_INSERT : I N S E R T ;
|
||||
T_INT : I N T ;
|
||||
T_INT2 : I N T '2';
|
||||
T_INT4 : I N T '4';
|
||||
T_INT8 : I N T '8';
|
||||
T_INTEGER : I N T E G E R ;
|
||||
T_INTERSECT : I N T E R S E C T ;
|
||||
T_INTERVAL : I N T E R V A L ;
|
||||
T_INTO : I N T O ;
|
||||
T_INVOKER : I N V O K E R ;
|
||||
T_IS : I S ;
|
||||
T_ISOPEN : I S O P E N ;
|
||||
T_ITEMS : I T E M S ;
|
||||
T_JOIN : J O I N ;
|
||||
T_KEEP : K E E P;
|
||||
T_KEY : K E Y ;
|
||||
T_KEYS : K E Y S ;
|
||||
T_LANGUAGE : L A N G U A G E ;
|
||||
T_LEAVE : L E A V E ;
|
||||
T_LEFT : L E F T ;
|
||||
T_LIKE : L I K E ;
|
||||
T_LIMIT : L I M I T ;
|
||||
T_LINES : L I N E S ;
|
||||
T_LOCAL : L O C A L ;
|
||||
T_LOCATION : L O C A T I O N ;
|
||||
T_LOCATOR : L O C A T O R ;
|
||||
T_LOCATORS : L O C A T O R S ;
|
||||
T_LOCKS : L O C K S ;
|
||||
T_LOG : L O G ;
|
||||
T_LOGGED : L O G G E D ;
|
||||
T_LOGGING : L O G G I N G ;
|
||||
T_LOOP : L O O P ;
|
||||
T_MAP : M A P ;
|
||||
T_MATCHED : M A T C H E D ;
|
||||
T_MAX : M A X ;
|
||||
T_MAXTRANS : M A X T R A N S ;
|
||||
T_MERGE : M E R G E ;
|
||||
T_MESSAGE_TEXT : M E S S A G E '_' T E X T ;
|
||||
T_MICROSECOND : M I C R O S E C O N D ;
|
||||
T_MICROSECONDS : M I C R O S E C O N D S;
|
||||
T_MIN : M I N ;
|
||||
T_MULTISET : M U L T I S E T ;
|
||||
T_NCHAR : N C H A R ;
|
||||
T_NEW : N E W ;
|
||||
T_NVARCHAR : N V A R C H A R ;
|
||||
T_NO : N O ;
|
||||
T_NOCOUNT : N O C O U N T ;
|
||||
T_NOCOMPRESS : N O C O M P R E S S ;
|
||||
T_NOLOGGING : N O L O G G I N G ;
|
||||
T_NONE : N O N E ;
|
||||
T_NOT : N O T ;
|
||||
T_NOTFOUND : N O T F O U N D ;
|
||||
T_NULL : N U L L ;
|
||||
T_NUMERIC : N U M E R I C ;
|
||||
T_NUMBER : N U M B E R ;
|
||||
T_OBJECT : O B J E C T ;
|
||||
T_OFF : O F F ;
|
||||
T_ON : O N ;
|
||||
T_ONLY : O N L Y ;
|
||||
T_OPEN : O P E N ;
|
||||
T_OR : O R ;
|
||||
T_ORDER : O R D E R;
|
||||
T_OUT : O U T ;
|
||||
T_OUTER : O U T E R ;
|
||||
T_OVER : O V E R ;
|
||||
T_OVERWRITE : O V E R W R I T E ;
|
||||
T_OWNER : O W N E R ;
|
||||
T_PACKAGE : P A C K A G E ;
|
||||
T_PARTITION : P A R T I T I O N ;
|
||||
T_PCTFREE : P C T F R E E ;
|
||||
T_PCTUSED : P C T U S E D ;
|
||||
T_PLS_INTEGER : P L S '_' I N T E G E R ;
|
||||
T_PRECISION : P R E C I S I O N ;
|
||||
T_PRESERVE : P R E S E R V E ;
|
||||
T_PRIMARY : P R I M A R Y ;
|
||||
T_PRINT : P R I N T ;
|
||||
T_PROC : P R O C ;
|
||||
T_PROCEDURE : P R O C E D U R E ;
|
||||
T_QUALIFY : Q U A L I F Y ;
|
||||
T_QUERY_BAND : Q U E R Y '_' B A N D ;
|
||||
T_QUIT : Q U I T ;
|
||||
T_QUOTED_IDENTIFIER : Q U O T E D '_' I D E N T I F I E R ;
|
||||
T_RAISE : R A I S E ;
|
||||
T_REAL : R E A L ;
|
||||
T_REFERENCES : R E F E R E N C E S ;
|
||||
T_REGEXP : R E G E X P ;
|
||||
T_REPLACE : R E P L A C E ;
|
||||
T_RESIGNAL : R E S I G N A L ;
|
||||
T_RESTRICT : R E S T R I C T ;
|
||||
T_RESULT : R E S U L T ;
|
||||
T_RESULT_SET_LOCATOR : R E S U L T '_' S E T '_' L O C A T O R ;
|
||||
T_RETURN : R E T U R N ;
|
||||
T_RETURNS : R E T U R N S ;
|
||||
T_REVERSE : R E V E R S E ;
|
||||
T_RIGHT : R I G H T ;
|
||||
T_RLIKE : R L I K E ;
|
||||
T_ROLE : R O L E ;
|
||||
T_ROLLBACK : R O L L B A C K ;
|
||||
T_ROW : R O W ;
|
||||
T_ROWS : R O W S ;
|
||||
T_ROWTYPE : R O W T Y P E ;
|
||||
T_ROW_COUNT : R O W '_' C O U N T ;
|
||||
T_RR : R R;
|
||||
T_RS : R S ;
|
||||
T_PWD : P W D ;
|
||||
T_TRIM : T R I M ;
|
||||
T_SCHEMA : S C H E M A ;
|
||||
T_SECOND : S E C O N D ;
|
||||
T_SECONDS : S E C O N D S;
|
||||
T_SECURITY : S E C U R I T Y ;
|
||||
T_SEGMENT : S E G M E N T ;
|
||||
T_SEL : S E L ;
|
||||
T_SELECT : S E L E C T ;
|
||||
T_SET : S E T ;
|
||||
T_SESSION : S E S S I O N ;
|
||||
T_SESSIONS : S E S S I O N S ;
|
||||
T_SETS : S E T S;
|
||||
T_SHARE : S H A R E ;
|
||||
T_SIGNAL : S I G N A L ;
|
||||
T_SIMPLE_DOUBLE : S I M P L E '_' D O U B L E ;
|
||||
T_SIMPLE_FLOAT : S I M P L E '_' F L O A T ;
|
||||
T_SIMPLE_INTEGER : S I M P L E '_' I N T E G E R ;
|
||||
T_SMALLDATETIME : S M A L L D A T E T I M E ;
|
||||
T_SMALLINT : S M A L L I N T ;
|
||||
T_SQL : S Q L ;
|
||||
T_SQLEXCEPTION : S Q L E X C E P T I O N ;
|
||||
T_SQLINSERT : S Q L I N S E R T ;
|
||||
T_SQLSTATE : S Q L S T A T E ;
|
||||
T_SQLWARNING : S Q L W A R N I N G ;
|
||||
T_STATS : S T A T S ;
|
||||
T_STATISTICS : S T A T I S T I C S ;
|
||||
T_STEP : S T E P ;
|
||||
T_STORAGE : S T O R A G E ;
|
||||
T_STORED : S T O R E D ;
|
||||
T_STRING : S T R I N G ;
|
||||
T_SUBDIR : S U B D I R ;
|
||||
T_SUBSTRING : S U B S T R I N G ;
|
||||
T_SUM : S U M ;
|
||||
T_SUMMARY : S U M M A R Y ;
|
||||
T_SYS_REFCURSOR : S Y S '_' R E F C U R S O R ;
|
||||
T_TABLE : T A B L E ;
|
||||
T_TABLESPACE : T A B L E S P A C E ;
|
||||
T_TEMPORARY : T E M P O R A R Y ;
|
||||
T_TERMINATED : T E R M I N A T E D ;
|
||||
T_TEXTIMAGE_ON : T E X T I M A G E '_' O N ;
|
||||
T_THEN : T H E N ;
|
||||
T_TIMESTAMP : T I M E S T A M P ;
|
||||
T_TINYINT : T I N Y I N T ;
|
||||
T_TITLE : T I T L E ;
|
||||
T_TO : T O ;
|
||||
T_TOP : T O P ;
|
||||
T_TRANSACTION : T R A N S A C T I O N ;
|
||||
T_TRUE : T R U E ;
|
||||
T_TRUNCATE : T R U N C A T E;
|
||||
T_TYPE : T Y P E ;
|
||||
T_UNION : U N I O N ;
|
||||
T_UNIQUE : U N I Q U E ;
|
||||
T_UPDATE : U P D A T E ;
|
||||
T_UR : U R ;
|
||||
T_USE : U S E ;
|
||||
T_USING : U S I N G ;
|
||||
T_VALUE : V A L U E ;
|
||||
T_VALUES : V A L U E S ;
|
||||
T_VAR : V A R ;
|
||||
T_VARCHAR : V A R C H A R ;
|
||||
T_VARCHAR2 : V A R C H A R '2' ;
|
||||
T_VARYING : V A R Y I N G ;
|
||||
T_VOLATILE : V O L A T I L E ;
|
||||
T_WHEN : W H E N ;
|
||||
T_WHERE : W H E R E ;
|
||||
T_WHILE : W H I L E ;
|
||||
T_WITH : W I T H ;
|
||||
T_WITHOUT : W I T H O U T ;
|
||||
T_WORK : W O R K ;
|
||||
T_XACT_ABORT : X A C T '_' A B O R T ;
|
||||
T_XML : X M L ;
|
||||
T_YES : Y E S ;
|
||||
options { caseInsensitive = true; }
|
||||
|
||||
// Functions with specific syntax
|
||||
T_ACTIVITY_COUNT : A C T I V I T Y '_' C O U N T ;
|
||||
T_CUME_DIST : C U M E '_' D I S T ;
|
||||
T_CURRENT_DATE : C U R R E N T '_' D A T E ;
|
||||
T_CURRENT_TIMESTAMP : C U R R E N T '_' T I M E S T A M P ;
|
||||
T_CURRENT_USER : C U R R E N T '_' U S E R ;
|
||||
T_DENSE_RANK : D E N S E '_' R A N K ;
|
||||
T_FIRST_VALUE : F I R S T '_' V A L U E;
|
||||
T_LAG : L A G ;
|
||||
T_LAST_VALUE : L A S T '_' V A L U E;
|
||||
T_LEAD : L E A D ;
|
||||
T_MAX_PART_STRING : M A X '_' P A R T '_' S T R I N G ;
|
||||
T_MIN_PART_STRING : M I N '_' P A R T '_' S T R I N G ;
|
||||
T_MAX_PART_INT : M A X '_' P A R T '_' I N T ;
|
||||
T_MIN_PART_INT : M I N '_' P A R T '_' I N T ;
|
||||
T_MAX_PART_DATE : M A X '_' P A R T '_' D A T E ;
|
||||
T_MIN_PART_DATE : M I N '_' P A R T '_' D A T E ;
|
||||
T_PART_COUNT : P A R T '_' C O U N T ;
|
||||
T_PART_LOC : P A R T '_' L O C ;
|
||||
T_RANK : R A N K ;
|
||||
T_ROW_NUMBER : R O W '_' N U M B E R;
|
||||
T_STDEV : S T D E V ;
|
||||
T_SYSDATE : S Y S D A T E ;
|
||||
T_VARIANCE : V A R I A N C E ;
|
||||
T_USER : U S E R;
|
||||
// Keywords
|
||||
KW_ABORT : 'ABORT';
|
||||
KW_ACTIVATE : 'ACTIVATE';
|
||||
KW_ACTIVE : 'ACTIVE';
|
||||
KW_ADD : 'ADD';
|
||||
KW_ADMIN : 'ADMIN';
|
||||
KW_AFTER : 'AFTER';
|
||||
KW_ALL : 'ALL';
|
||||
KW_ALLOC_FRACTION : 'ALLOC_FRACTION';
|
||||
KW_ALTER : 'ALTER';
|
||||
KW_ANALYZE : 'ANALYZE';
|
||||
KW_AND : 'AND';
|
||||
KW_ANTI : 'ANTI';
|
||||
KW_ANY : 'ANY';
|
||||
KW_APPLICATION : 'APPLICATION';
|
||||
KW_ARCHIVE : 'ARCHIVE';
|
||||
KW_ARRAY : 'ARRAY';
|
||||
KW_AS : 'AS';
|
||||
KW_ASC : 'ASC';
|
||||
KW_AST : 'AST';
|
||||
KW_AT : 'AT';
|
||||
KW_AUTHORIZATION : 'AUTHORIZATION';
|
||||
KW_AUTOCOMMIT : 'AUTOCOMMIT';
|
||||
KW_BATCH : 'KW_BATCH';
|
||||
KW_BEFORE : 'BEFORE';
|
||||
KW_BETWEEN : 'BETWEEN';
|
||||
KW_BIGINT : 'BIGINT';
|
||||
KW_BINARY : 'BINARY';
|
||||
KW_BOOLEAN : 'BOOLEAN';
|
||||
KW_BOTH : 'BOTH';
|
||||
KW_BUCKET : 'BUCKET';
|
||||
KW_BUCKETS : 'BUCKETS';
|
||||
KW_BY : 'BY';
|
||||
KW_CACHE : 'CACHE';
|
||||
KW_CASCADE : 'CASCADE';
|
||||
KW_CASE : 'CASE';
|
||||
KW_CAST : 'CAST';
|
||||
KW_CBO : 'CBO';
|
||||
KW_CHANGE : 'CHANGE';
|
||||
KW_CHAR : 'CHAR';
|
||||
KW_CHECK : 'CHECK';
|
||||
KW_CLUSTER : 'CLUSTER';
|
||||
KW_CLUSTERED : 'CLUSTERED';
|
||||
KW_CLUSTERSTATUS : 'CLUSTERSTATUS';
|
||||
KW_COLLECTION : 'COLLECTION';
|
||||
KW_COLUMN : 'COLUMN';
|
||||
KW_COLUMNS : 'COLUMNS';
|
||||
KW_COMMENT : 'COMMENT';
|
||||
KW_COMMIT : 'COMMIT';
|
||||
KW_COMPACT : 'COMPACT';
|
||||
KW_COMPACTIONS : 'COMPACTIONS';
|
||||
KW_COMPACT_ID : 'COMPACTIONID';
|
||||
KW_COMPUTE : 'COMPUTE';
|
||||
KW_CONCATENATE : 'CONCATENATE';
|
||||
KW_CONF : 'CONF';
|
||||
KW_CONSTRAINT : 'CONSTRAINT';
|
||||
KW_CONTINUE : 'CONTINUE';
|
||||
KW_COST : 'COST';
|
||||
KW_CREATE : 'CREATE';
|
||||
KW_CRON : 'CRON';
|
||||
KW_CROSS : 'CROSS';
|
||||
KW_CUBE : 'CUBE';
|
||||
KW_CURRENT : 'CURRENT';
|
||||
KW_CURRENT_DATE : 'CURRENT_DATE';
|
||||
KW_CURRENT_TIMESTAMP : 'CURRENT_TIMESTAMP';
|
||||
KW_CURSOR : 'CURSOR';
|
||||
KW_DATA : 'DATA';
|
||||
KW_DATABASE : 'DATABASE';
|
||||
KW_DATABASES : 'DATABASES';
|
||||
KW_DATACONNECTOR : 'CONNECTOR';
|
||||
KW_DATACONNECTORS : 'CONNECTORS';
|
||||
KW_DATE : 'DATE';
|
||||
KW_DATETIME : 'DATETIME';
|
||||
KW_DAY : 'DAY' 'S'?;
|
||||
KW_DAYOFWEEK : 'KW_DAYOFWEEK';
|
||||
KW_DBPROPERTIES : 'DBPROPERTIES';
|
||||
KW_DCPROPERTIES : 'DCPROPERTIES';
|
||||
KW_DDL : 'DDL';
|
||||
KW_DEBUG : 'DEBUG';
|
||||
KW_DECIMAL : 'DEC' 'IMAL'? | 'NUMERIC';
|
||||
KW_DEFAULT : 'DEFAULT';
|
||||
KW_DEFERRED : 'DEFERRED';
|
||||
KW_DEFINED : 'DEFINED';
|
||||
KW_DELETE : 'DELETE';
|
||||
KW_DELIMITED : 'DELIMITED';
|
||||
KW_DEPENDENCY : 'DEPENDENCY';
|
||||
KW_DESC : 'DESC';
|
||||
KW_DESCRIBE : 'DESCRIBE';
|
||||
KW_DETAIL : 'DETAIL';
|
||||
KW_DIRECTORIES : 'DIRECTORIES';
|
||||
KW_DIRECTORY : 'DIRECTORY';
|
||||
KW_DISABLE : 'DISABLE' 'D'?;
|
||||
KW_DISTINCT : 'DISTINCT';
|
||||
KW_DISTRIBUTE : 'DISTRIBUTE';
|
||||
KW_DISTRIBUTED : 'DISTRIBUTED';
|
||||
KW_DO : 'DO';
|
||||
KW_DOUBLE : 'DOUBLE';
|
||||
KW_DOW : 'DAYOFWEEK';
|
||||
KW_DROP : 'DROP';
|
||||
KW_DUMP : 'DUMP';
|
||||
KW_ELEM_TYPE : '$ELEM$';
|
||||
KW_ELSE : 'ELSE';
|
||||
KW_ENABLE : 'ENABLE' 'D'?;
|
||||
KW_END : 'END';
|
||||
KW_ENFORCED : 'ENFORCED';
|
||||
KW_ESCAPED : 'ESCAPED';
|
||||
KW_EVERY : 'EVERY';
|
||||
KW_EXCEPT : 'EXCEPT';
|
||||
KW_EXCHANGE : 'EXCHANGE';
|
||||
KW_EXCLUSIVE : 'EXCLUSIVE';
|
||||
KW_EXECUTE : 'EXECUTE';
|
||||
KW_EXECUTED : 'EXECUTED';
|
||||
KW_EXISTS : 'EXISTS';
|
||||
KW_EXPIRE_SNAPSHOTS : 'EXPIRE_SNAPSHOTS';
|
||||
KW_EXPLAIN : 'EXPLAIN';
|
||||
KW_EXPORT : 'EXPORT';
|
||||
KW_EXPRESSION : 'EXPRESSION';
|
||||
KW_EXTENDED : 'EXTENDED';
|
||||
KW_EXTERNAL : 'EXTERNAL';
|
||||
KW_EXTRACT : 'EXTRACT';
|
||||
KW_FALSE : 'FALSE';
|
||||
KW_FETCH : 'FETCH';
|
||||
KW_FIELDS : 'FIELDS';
|
||||
KW_FILE : 'FILE';
|
||||
KW_FILEFORMAT : 'FILEFORMAT';
|
||||
KW_FIRST : 'FIRST';
|
||||
KW_FLOAT : 'FLOAT';
|
||||
KW_FLOOR : 'FLOOR';
|
||||
KW_FOLLOWING : 'FOLLOWING';
|
||||
KW_FOR : 'FOR';
|
||||
KW_FORCE : 'FORCE';
|
||||
KW_FOREIGN : 'FOREIGN';
|
||||
KW_FORMAT : 'FORMAT';
|
||||
KW_FORMATTED : 'FORMATTED';
|
||||
KW_FROM : 'FROM';
|
||||
KW_FULL : 'FULL';
|
||||
KW_FUNCTION : 'FUNCTION';
|
||||
KW_FUNCTIONS : 'FUNCTIONS';
|
||||
KW_GRANT : 'GRANT';
|
||||
KW_GROUP : 'GROUP';
|
||||
KW_GROUPING : 'GROUPING';
|
||||
KW_HAVING : 'HAVING';
|
||||
KW_HOLD_DDLTIME : 'KW_HOLD_DDLTIME';
|
||||
KW_HOUR : 'HOUR' 'S'?;
|
||||
KW_IDXPROPERTIES : 'IDXPROPERTIES';
|
||||
KW_IF : 'IF';
|
||||
KW_IGNORE : 'IGNORE';
|
||||
KW_IMPORT : 'IMPORT';
|
||||
KW_IN : 'IN';
|
||||
KW_INDEX : 'INDEX';
|
||||
KW_INDEXES : 'INDEXES';
|
||||
KW_INNER : 'INNER';
|
||||
KW_INPATH : 'INPATH';
|
||||
KW_INPUTDRIVER : 'INPUTDRIVER';
|
||||
KW_INPUTFORMAT : 'INPUTFORMAT';
|
||||
KW_INSERT : 'INSERT';
|
||||
KW_INT : 'INT' 'EGER'?;
|
||||
KW_INTERSECT : 'INTERSECT';
|
||||
KW_INTERVAL : 'INTERVAL';
|
||||
KW_INTO : 'INTO';
|
||||
KW_IS : 'IS';
|
||||
KW_ISOLATION : 'ISOLATION';
|
||||
KW_ITEMS : 'ITEMS';
|
||||
KW_JAR : 'JAR';
|
||||
KW_JOIN : 'JOIN';
|
||||
KW_JOINCOST : 'JOINCOST';
|
||||
KW_KEY : 'KEY';
|
||||
KW_KEYS : 'KEYS';
|
||||
KW_KEY_TYPE : '$KEY$';
|
||||
KW_KILL : 'KILL';
|
||||
KW_LAST : 'LAST';
|
||||
KW_LATERAL : 'LATERAL';
|
||||
KW_LEADING : 'LEADING';
|
||||
KW_LEFT : 'LEFT';
|
||||
KW_LESS : 'LESS';
|
||||
KW_LEVEL : 'LEVEL';
|
||||
KW_LIKE : 'LIKE';
|
||||
KW_LIMIT : 'LIMIT';
|
||||
KW_LINES : 'LINES';
|
||||
KW_LOAD : 'LOAD';
|
||||
KW_LOCAL : 'LOCAL';
|
||||
KW_LOCATION : 'LOCATION';
|
||||
KW_LOCK : 'LOCK';
|
||||
KW_LOCKS : 'LOCKS';
|
||||
KW_LOGICAL : 'LOGICAL';
|
||||
KW_LONG : 'LONG';
|
||||
KW_MACRO : 'MACRO';
|
||||
KW_MANAGED : 'MANAGED';
|
||||
KW_MANAGEDLOCATION : 'MANAGEDLOCATION';
|
||||
KW_MANAGEMENT : 'MANAGEMENT';
|
||||
KW_MAP : 'MAP';
|
||||
KW_MAPJOIN : 'MAPJOIN';
|
||||
KW_MAPPING : 'MAPPING';
|
||||
KW_MATCHED : 'MATCHED';
|
||||
KW_MATERIALIZED : 'MATERIALIZED';
|
||||
KW_MERGE : 'MERGE';
|
||||
KW_METADATA : 'METADATA';
|
||||
KW_MINUS : 'MINUS';
|
||||
KW_MINUTE : 'MINUTE' 'S'?;
|
||||
KW_MONTH : 'MONTH' 'S'?;
|
||||
KW_MORE : 'MORE';
|
||||
KW_MOVE : 'MOVE';
|
||||
KW_MSCK : 'MSCK';
|
||||
KW_NONE : 'NONE';
|
||||
KW_NORELY : 'NORELY';
|
||||
KW_NOSCAN : 'NOSCAN';
|
||||
KW_NOT : 'NOT' | '!';
|
||||
KW_NOVALIDATE : 'NOVALIDATE';
|
||||
KW_NO_DROP : 'KW_NO_DROP';
|
||||
KW_NULL : 'NULL';
|
||||
KW_NULLS : 'NULLS';
|
||||
KW_OF : 'OF';
|
||||
KW_OFFLINE : 'KW_OFFLINE';
|
||||
KW_OFFSET : 'OFFSET';
|
||||
KW_ON : 'ON';
|
||||
KW_ONLY : 'ONLY';
|
||||
KW_OPERATOR : 'OPERATOR';
|
||||
KW_OPTION : 'OPTION';
|
||||
KW_OR : 'OR';
|
||||
KW_ORDER : 'ORDER';
|
||||
KW_OUT : 'OUT';
|
||||
KW_OUTER : 'OUTER';
|
||||
KW_OUTPUTDRIVER : 'OUTPUTDRIVER';
|
||||
KW_OUTPUTFORMAT : 'OUTPUTFORMAT';
|
||||
KW_OVER : 'OVER';
|
||||
KW_OVERWRITE : 'OVERWRITE';
|
||||
KW_OWNER : 'OWNER';
|
||||
KW_PARTITION : 'PARTITION';
|
||||
KW_PARTITIONED : 'PARTITIONED';
|
||||
KW_PARTITIONS : 'PARTITIONS';
|
||||
KW_PATH : 'PATH';
|
||||
KW_PERCENT : 'PERCENT';
|
||||
KW_PKFK_JOIN : 'PKFK_JOIN';
|
||||
KW_PLAN : 'PLAN';
|
||||
KW_PLANS : 'PLANS';
|
||||
KW_PLUS : 'PLUS';
|
||||
KW_POOL : 'POOL';
|
||||
KW_PRECEDING : 'PRECEDING';
|
||||
KW_PRECISION : 'PRECISION';
|
||||
KW_PREPARE : 'PREPARE';
|
||||
KW_PRESERVE : 'PRESERVE';
|
||||
KW_PRIMARY : 'PRIMARY';
|
||||
KW_PRINCIPALS : 'PRINCIPALS';
|
||||
KW_PROCEDURE : 'PROCEDURE';
|
||||
KW_PROTECTION : 'KW_PROTECTION';
|
||||
KW_PURGE : 'PURGE';
|
||||
KW_QUALIFY : 'QUALIFY';
|
||||
KW_QUARTER : 'QUARTER';
|
||||
KW_QUERY : 'QUERY';
|
||||
KW_QUERY_PARALLELISM : 'QUERY_PARALLELISM';
|
||||
KW_RANGE : 'RANGE';
|
||||
KW_READ : 'READ';
|
||||
KW_READONLY : 'KW_READONLY';
|
||||
KW_READS : 'READS';
|
||||
KW_REAL : 'REAL';
|
||||
KW_REBUILD : 'REBUILD';
|
||||
KW_RECORDREADER : 'RECORDREADER';
|
||||
KW_RECORDWRITER : 'RECORDWRITER';
|
||||
KW_REDUCE : 'REDUCE';
|
||||
KW_REFERENCES : 'REFERENCES';
|
||||
KW_REGEXP : 'REGEXP';
|
||||
KW_RELOAD : 'RELOAD';
|
||||
KW_RELY : 'RELY';
|
||||
KW_REMOTE : 'REMOTE';
|
||||
KW_RENAME : 'RENAME';
|
||||
KW_REOPTIMIZATION : 'REOPTIMIZATION';
|
||||
KW_REPAIR : 'REPAIR';
|
||||
KW_REPL : 'REPL';
|
||||
KW_REPLACE : 'REPLACE';
|
||||
KW_REPLICATION : 'REPLICATION';
|
||||
KW_RESOURCE : 'RESOURCE';
|
||||
KW_RESPECT : 'RESPECT';
|
||||
KW_RESTRICT : 'RESTRICT';
|
||||
KW_REVOKE : 'REVOKE';
|
||||
KW_REWRITE : 'REWRITE';
|
||||
KW_RIGHT : 'RIGHT';
|
||||
KW_RLIKE : 'RLIKE';
|
||||
KW_ROLE : 'ROLE';
|
||||
KW_ROLES : 'ROLES';
|
||||
KW_ROLLBACK : 'ROLLBACK';
|
||||
KW_ROLLUP : 'ROLLUP';
|
||||
KW_ROW : 'ROW';
|
||||
KW_ROWS : 'ROWS';
|
||||
KW_SCHEDULED : 'SCHEDULED';
|
||||
KW_SCHEDULING_POLICY : 'SCHEDULING_POLICY';
|
||||
KW_SCHEMA : 'SCHEMA';
|
||||
KW_SCHEMAS : 'SCHEMAS';
|
||||
KW_SECOND : 'SECOND' 'S'?;
|
||||
KW_SELECT : 'SELECT';
|
||||
KW_SEMI : 'SEMI';
|
||||
KW_SERDE : 'SERDE';
|
||||
KW_SERDEPROPERTIES : 'SERDEPROPERTIES';
|
||||
KW_SERVER : 'SERVER';
|
||||
KW_SET : 'SET';
|
||||
KW_SETS : 'SETS';
|
||||
KW_SET_CURRENT_SNAPSHOT : 'SET_CURRENT_SNAPSHOT';
|
||||
KW_SHARED : 'SHARED';
|
||||
KW_SHOW : 'SHOW';
|
||||
KW_SHOW_DATABASE : 'SHOW_DATABASE';
|
||||
KW_SKEWED : 'SKEWED';
|
||||
KW_SMALLINT : 'SMALLINT';
|
||||
KW_SNAPSHOT : 'SNAPSHOT';
|
||||
KW_SOME : 'SOME';
|
||||
KW_SORT : 'SORT';
|
||||
KW_SORTED : 'SORTED';
|
||||
KW_SPEC : 'SPEC';
|
||||
KW_SSL : 'SSL';
|
||||
KW_START : 'START';
|
||||
KW_STATISTICS : 'STATISTICS';
|
||||
KW_STATUS : 'STATUS';
|
||||
KW_STORED : 'STORED';
|
||||
KW_STREAMTABLE : 'STREAMTABLE';
|
||||
KW_STRING : 'STRING';
|
||||
KW_STRUCT : 'STRUCT';
|
||||
KW_SUMMARY : 'SUMMARY';
|
||||
KW_SYNC : 'SYNC';
|
||||
KW_SYSTEM_TIME : 'SYSTEM_TIME';
|
||||
KW_SYSTEM_VERSION : 'SYSTEM_VERSION';
|
||||
KW_TABLE : 'TABLE';
|
||||
KW_TABLES : 'TABLES';
|
||||
KW_TABLESAMPLE : 'TABLESAMPLE';
|
||||
KW_TBLPROPERTIES : 'TBLPROPERTIES';
|
||||
KW_TEMPORARY : 'TEMPORARY';
|
||||
KW_TERMINATED : 'TERMINATED';
|
||||
KW_THEN : 'THEN';
|
||||
KW_TIME : 'TIME';
|
||||
KW_TIMESTAMP : 'TIMESTAMP';
|
||||
KW_TIMESTAMPLOCALTZ : 'TIMESTAMPLOCALTZ';
|
||||
KW_TIMESTAMPTZ : 'KW_TIMESTAMPTZ';
|
||||
KW_TINYINT : 'TINYINT';
|
||||
KW_TO : 'TO';
|
||||
KW_TOUCH : 'TOUCH';
|
||||
KW_TRAILING : 'TRAILING';
|
||||
KW_TRANSACTION : 'TRANSACTION';
|
||||
KW_TRANSACTIONAL : 'TRANSACTIONAL';
|
||||
KW_TRANSACTIONS : 'TRANSACTIONS';
|
||||
KW_TRANSFORM : 'TRANSFORM';
|
||||
KW_TRIGGER : 'TRIGGER';
|
||||
KW_TRIM : 'TRIM';
|
||||
KW_TRUE : 'TRUE';
|
||||
KW_TRUNCATE : 'TRUNCATE';
|
||||
KW_TYPE : 'TYPE';
|
||||
KW_UNARCHIVE : 'UNARCHIVE';
|
||||
KW_UNBOUNDED : 'UNBOUNDED';
|
||||
KW_UNDO : 'UNDO';
|
||||
KW_UNION : 'UNION';
|
||||
KW_UNIONTYPE : 'UNIONTYPE';
|
||||
KW_UNIQUE : 'UNIQUE';
|
||||
KW_UNIQUEJOIN : 'UNIQUEJOIN';
|
||||
KW_UNKNOWN : 'UNKNOWN';
|
||||
KW_UNLOCK : 'UNLOCK';
|
||||
KW_UNMANAGED : 'UNMANAGED';
|
||||
KW_UNSET : 'UNSET';
|
||||
KW_UNSIGNED : 'UNSIGNED';
|
||||
KW_UPDATE : 'UPDATE';
|
||||
KW_URI : 'URI';
|
||||
KW_URL : 'URL';
|
||||
KW_USE : 'USE';
|
||||
KW_USER : 'USER';
|
||||
KW_USING : 'USING';
|
||||
KW_UTC : 'UTC';
|
||||
KW_UTCTIMESTAMP : 'UTC_TMESTAMP';
|
||||
KW_VALIDATE : 'VALIDATE';
|
||||
KW_VALUES : 'VALUES';
|
||||
KW_VALUE_TYPE : '$VALUE$';
|
||||
KW_VARCHAR : 'VARCHAR';
|
||||
KW_VECTORIZATION : 'VECTORIZATION';
|
||||
KW_VIEW : 'VIEW';
|
||||
KW_VIEWS : 'VIEWS';
|
||||
KW_WAIT : 'WAIT';
|
||||
KW_WEEK : 'WEEK' 'S'?;
|
||||
KW_WHEN : 'WHEN';
|
||||
KW_WHERE : 'WHERE';
|
||||
KW_WHILE : 'WHILE';
|
||||
KW_WINDOW : 'WINDOW';
|
||||
KW_WITH : 'WITH';
|
||||
KW_WITHIN : 'WITHIN';
|
||||
KW_WORK : 'WORK';
|
||||
KW_WORKLOAD : 'WORKLOAD';
|
||||
KW_WRITE : 'WRITE';
|
||||
KW_YEAR : 'YEAR' 'S'?;
|
||||
KW_ZONE : 'ZONE';
|
||||
|
||||
T_ADD : '+' ;
|
||||
T_COLON : ':' ;
|
||||
T_COMMA : ',' ;
|
||||
T_PIPE : '||' ;
|
||||
T_DIV : '/' ;
|
||||
T_DOT : '.' ;
|
||||
T_DOT2 : '..' ;
|
||||
T_EQUAL : '=' ;
|
||||
T_EQUAL2 : '==' ;
|
||||
T_SHARP : '#' ;
|
||||
T_NOTE : '!' ;
|
||||
T_NOTEQUAL : '<>' ;
|
||||
T_NOTEQUAL2 : '!=' ;
|
||||
T_GREATER : '>' ;
|
||||
T_GREATEREQUAL : '>=' ;
|
||||
T_LESS : '<' ;
|
||||
T_LESSEQUAL : '<=' ;
|
||||
T_MUL : '*' ;
|
||||
T_PRECENT : '%' ;
|
||||
T_CALLS : '@' ;
|
||||
T_OPEN_B : '{' ;
|
||||
T_OPEN_P : '(' ;
|
||||
T_OPEN_SB : '[' ;
|
||||
T_CLOSE_B : '}' ;
|
||||
T_CLOSE_P : ')' ;
|
||||
T_CLOSE_SB : ']' ;
|
||||
T_SEMICOLON : ';' ;
|
||||
T_SUB : '-' ;
|
||||
// Operators
|
||||
// NOTE: if you add a new function/operator, add it to sysFuncNames so that describe function _FUNC_ will work.
|
||||
DOT : '.'; // generated as a part of Number rule
|
||||
COLON : ':' ;
|
||||
COMMA : ',' ;
|
||||
SEMICOLON : ';' ;
|
||||
|
||||
L_ID : L_ID_PART // Identifier
|
||||
;
|
||||
L_S_STRING : '\'' (('\'' '\'') | ('\\' '\'') | ~('\''))* '\'' // Single quoted string literal
|
||||
;
|
||||
L_D_STRING : '"' (L_STR_ESC_D | .)*? '"' // Double quoted string literal
|
||||
;
|
||||
L_INT : L_DIGIT+ ; // Integer
|
||||
L_DEC : L_DIGIT+ '.' ~'.' L_DIGIT* // Decimal number
|
||||
| '.' L_DIGIT+
|
||||
;
|
||||
L_WS : L_BLANK+ -> skip ; // Whitespace
|
||||
L_M_COMMENT : '/*' .*? '*/' -> channel(HIDDEN) ; // Multiline comment
|
||||
L_S_COMMENT : ('--' | '//') .*? '\r'? '\n' -> channel(HIDDEN) ; // Single line comment
|
||||
LPAREN : '(' ;
|
||||
RPAREN : ')' ;
|
||||
LSQUARE : '[' ;
|
||||
RSQUARE : ']' ;
|
||||
LCURLY : '{';
|
||||
RCURLY : '}';
|
||||
|
||||
L_FILE : ([a-zA-Z] ':' '\\'?)? L_ID ('\\' L_ID)* // File path (a/b/c Linux path causes conflicts with division operator and handled at parser level)
|
||||
;
|
||||
EQUAL : '=' | '==';
|
||||
EQUAL_NS : '<=>';
|
||||
NOTEQUAL : '<>' | '!=';
|
||||
LESSTHANOREQUALTO : '<=';
|
||||
LESSTHAN : '<';
|
||||
GREATERTHANOREQUALTO : '>=';
|
||||
GREATERTHAN : '>';
|
||||
|
||||
L_LABEL : ([a-zA-Z] | L_DIGIT | '_')* ':'
|
||||
;
|
||||
DIVIDE : '/';
|
||||
PLUS : '+';
|
||||
MINUS : '-';
|
||||
STAR : '*';
|
||||
MOD : '%';
|
||||
DIV : 'DIV';
|
||||
|
||||
AMPERSAND : '&';
|
||||
TILDE : '~';
|
||||
BITWISEOR : '|';
|
||||
CONCATENATE : '||';
|
||||
BITWISEXOR : '^';
|
||||
QUESTION : '?';
|
||||
DOLLAR : '$';
|
||||
|
||||
// LITERALS
|
||||
|
||||
StringLiteral
|
||||
: ( '\'' ( ~('\''|'\\') | ('\\' .) )* '\''
|
||||
| '"' ( ~('"'|'\\') | ('\\' .) )* '"'
|
||||
)+
|
||||
;
|
||||
|
||||
CharSetLiteral
|
||||
: StringLiteral
|
||||
| '0' 'X' (HexDigit | Digit)+
|
||||
;
|
||||
|
||||
IntegralLiteral
|
||||
: Digit+ ('L' | 'S' | 'Y')
|
||||
;
|
||||
|
||||
NumberLiteral
|
||||
: Number ('B'? 'D')
|
||||
;
|
||||
|
||||
ByteLengthLiteral
|
||||
: Digit+ [BKMG]
|
||||
;
|
||||
|
||||
Number
|
||||
: Digit+ (DOT Digit* Exponent? | Exponent)?
|
||||
;
|
||||
|
||||
/*
|
||||
An Identifier can be:
|
||||
- tableName
|
||||
- columnName
|
||||
- select expr alias
|
||||
- lateral view aliases
|
||||
- database name
|
||||
- view name
|
||||
- subquery alias
|
||||
- function name
|
||||
- ptf argument identifier
|
||||
- index name
|
||||
- property name for: db,tbl,partition...
|
||||
- fileFormat
|
||||
- role name
|
||||
- privilege name
|
||||
- principal name
|
||||
- macro name
|
||||
- hint name
|
||||
- window name
|
||||
*/
|
||||
Identifier
|
||||
: (Letter | Digit) (Letter | Digit | '_')*
|
||||
| QuotedIdentifier
|
||||
| '`' RegexComponent+ '`'
|
||||
;
|
||||
|
||||
fragment
|
||||
L_ID_PART :
|
||||
[a-zA-Z] ([a-zA-Z] | L_DIGIT | '_')* // Identifier part
|
||||
| '$' '{' .*? '}'
|
||||
| ('_' | '@' | ':' | '#' | '$') ([a-zA-Z] | L_DIGIT | '_' | '@' | ':' | '#' | '$')+ // (at least one char must follow special char)
|
||||
| '"' .*? '"' // Quoted identifiers
|
||||
| '[' .*? ']'
|
||||
| '`' .*? '`'
|
||||
;
|
||||
fragment
|
||||
L_STR_ESC_D : // Double quoted string escape sequence
|
||||
'""' | '\\"'
|
||||
;
|
||||
fragment
|
||||
L_DIGIT : [0-9] // Digit
|
||||
;
|
||||
fragment
|
||||
L_BLANK : (' ' | '\t' | '\r' | '\n')
|
||||
;
|
||||
QuotedIdentifier
|
||||
: '`' ('``' | ~'`')* '`'
|
||||
;
|
||||
|
||||
// Support case-insensitive keywords and allowing case-sensitive identifiers
|
||||
fragment A : ('a'|'A') ;
|
||||
fragment B : ('b'|'B') ;
|
||||
fragment C : ('c'|'C') ;
|
||||
fragment D : ('d'|'D') ;
|
||||
fragment E : ('e'|'E') ;
|
||||
fragment F : ('f'|'F') ;
|
||||
fragment G : ('g'|'G') ;
|
||||
fragment H : ('h'|'H') ;
|
||||
fragment I : ('i'|'I') ;
|
||||
fragment J : ('j'|'J') ;
|
||||
fragment K : ('k'|'K') ;
|
||||
fragment L : ('l'|'L') ;
|
||||
fragment M : ('m'|'M') ;
|
||||
fragment N : ('n'|'N') ;
|
||||
fragment O : ('o'|'O') ;
|
||||
fragment P : ('p'|'P') ;
|
||||
fragment Q : ('q'|'Q') ;
|
||||
fragment R : ('r'|'R') ;
|
||||
fragment S : ('s'|'S') ;
|
||||
fragment T : ('t'|'T') ;
|
||||
fragment U : ('u'|'U') ;
|
||||
fragment V : ('v'|'V') ;
|
||||
fragment W : ('w'|'W') ;
|
||||
fragment X : ('x'|'X') ;
|
||||
fragment Y : ('y'|'Y') ;
|
||||
fragment Z : ('z'|'Z') ;
|
||||
fragment
|
||||
Letter
|
||||
: 'A'..'Z'
|
||||
;
|
||||
|
||||
fragment
|
||||
HexDigit
|
||||
: 'A'..'F'
|
||||
;
|
||||
|
||||
fragment
|
||||
Digit
|
||||
: '0'..'9'
|
||||
;
|
||||
|
||||
fragment
|
||||
Exponent
|
||||
: ('E') ( PLUS|MINUS )? (Digit)+
|
||||
;
|
||||
|
||||
fragment
|
||||
RegexComponent
|
||||
: 'A'..'Z' | '0'..'9' | '_'
|
||||
| PLUS | STAR | QUESTION | MINUS | DOT
|
||||
| LPAREN | RPAREN | LSQUARE | RSQUARE | LCURLY | RCURLY
|
||||
| BITWISEXOR | BITWISEOR | DOLLAR | '!'
|
||||
;
|
||||
|
||||
CharSetName
|
||||
: '_' (Letter | Digit | '_' | '-' | '.' | ':')+
|
||||
;
|
||||
|
||||
WHITE_SPACE
|
||||
: (' '|'\r'|'\t'|'\n') -> channel(HIDDEN)
|
||||
;
|
||||
|
||||
LINE_COMMENT
|
||||
: '--' ~('\n' | '\r')* -> channel(HIDDEN)
|
||||
;
|
||||
|
||||
QUERY_HINT
|
||||
: SHOW_HINT
|
||||
| HIDDEN_HINT
|
||||
;
|
||||
|
||||
SHOW_HINT
|
||||
: '/*+' (QUERY_HINT | .)*? '*/' ->channel(HIDDEN)
|
||||
;
|
||||
|
||||
HIDDEN_HINT
|
||||
: '/*' (QUERY_HINT | .)*? '*/' -> channel(HIDDEN)
|
||||
;
|
6
src/grammar/hive/README.md
Normal file
6
src/grammar/hive/README.md
Normal file
@ -0,0 +1,6 @@
|
||||
# HiveSQL (V4)
|
||||
|
||||
## Sources
|
||||
|
||||
<https://github.com/antlr/grammars-v4/blob/master/sql/hive/v4/README.md>
|
||||
<https://github.com/apache/hive/tree/master/parser/src/java/org/apache/hadoop/hive/ql/parse>
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -22,15 +22,21 @@ lexer grammar PlSqlLexer;
|
||||
|
||||
options {
|
||||
superClass=PlSqlBaseLexer;
|
||||
caseInsensitive = true;
|
||||
}
|
||||
@lexer::header {
|
||||
import PlSqlBaseLexer from "./PlSqlBaseLexer";
|
||||
}
|
||||
|
||||
ABORT: 'ABORT';
|
||||
ABS: 'ABS';
|
||||
ABSENT: 'ABSENT';
|
||||
ACCESS: 'ACCESS';
|
||||
ACCESSED: 'ACCESSED';
|
||||
ACCOUNT: 'ACCOUNT';
|
||||
ACL: 'ACL';
|
||||
ACOS: 'ACOS';
|
||||
ACROSS: 'ACROSS';
|
||||
ACTION: 'ACTION';
|
||||
ACTIONS: 'ACTIONS';
|
||||
ACTIVATE: 'ACTIVATE';
|
||||
@ -63,8 +69,11 @@ ALLOCATE: 'ALLOCATE';
|
||||
ALLOW: 'ALLOW';
|
||||
ALL_ROWS: 'ALL_ROWS';
|
||||
ALTER: 'ALTER';
|
||||
ALTERNATE: 'ALTERNATE';
|
||||
ALWAYS: 'ALWAYS';
|
||||
ANALYTIC: 'ANALYTIC';
|
||||
ANALYZE: 'ANALYZE';
|
||||
ANCESTOR: 'ANCESTOR';
|
||||
ANCILLARY: 'ANCILLARY';
|
||||
AND: 'AND';
|
||||
AND_EQUAL: 'AND_EQUAL';
|
||||
@ -116,7 +125,9 @@ AUTO_REOPTIMIZE: 'AUTO_REOPTIMIZE';
|
||||
AVAILABILITY: 'AVAILABILITY';
|
||||
AVRO: 'AVRO';
|
||||
BACKGROUND: 'BACKGROUND';
|
||||
BACKINGFILE: 'BACKINGFILE';
|
||||
BACKUP: 'BACKUP';
|
||||
BACKUPS: 'BACKUPS';
|
||||
BACKUPSET: 'BACKUPSET';
|
||||
BASIC: 'BASIC';
|
||||
BASICFILE: 'BASICFILE';
|
||||
@ -184,10 +195,12 @@ CALL: 'CALL';
|
||||
CANCEL: 'CANCEL';
|
||||
CANONICAL: 'CANONICAL';
|
||||
CAPACITY: 'CAPACITY';
|
||||
CAPTION: 'CAPTION';
|
||||
CARDINALITY: 'CARDINALITY';
|
||||
CASCADE: 'CASCADE';
|
||||
CASE: 'CASE';
|
||||
CAST: 'CAST';
|
||||
CASESENSITIVE: 'CASE-SENSITIVE';
|
||||
CATEGORY: 'CATEGORY';
|
||||
CDBDEFAULT: 'CDB$DEFAULT';
|
||||
CEIL: 'CEIL';
|
||||
@ -210,7 +223,10 @@ CHOOSE: 'CHOOSE';
|
||||
CHR: 'CHR';
|
||||
CHUNK: 'CHUNK';
|
||||
CLASS: 'CLASS';
|
||||
CLASSIFICATION: 'CLASSIFICATION';
|
||||
CLASSIFIER: 'CLASSIFIER';
|
||||
CLAUSE: 'CLAUSE';
|
||||
CLEAN: 'CLEAN';
|
||||
CLEANUP: 'CLEANUP';
|
||||
CLEAR: 'CLEAR';
|
||||
C_LETTER: 'C';
|
||||
@ -243,6 +259,7 @@ COLUMN_VALUE: 'COLUMN_VALUE';
|
||||
COMMENT: 'COMMENT';
|
||||
COMMIT: 'COMMIT';
|
||||
COMMITTED: 'COMMITTED';
|
||||
COMMON: 'COMMON';
|
||||
COMMON_DATA: 'COMMON_DATA';
|
||||
COMPACT: 'COMPACT';
|
||||
COMPATIBILITY: 'COMPATIBILITY';
|
||||
@ -284,8 +301,10 @@ CONSTRAINT: 'CONSTRAINT';
|
||||
CONSTRAINTS: 'CONSTRAINTS';
|
||||
CONSTRUCTOR: 'CONSTRUCTOR';
|
||||
CONTAINER: 'CONTAINER';
|
||||
CONTAINER_DATA: 'CONTAINER_DATA';
|
||||
CONTAINERS: 'CONTAINERS';
|
||||
CONTAINERS_DEFAULT: 'CONTAINERS_DEFAULT';
|
||||
CONTAINER_DATA: 'CONTAINER_DATA';
|
||||
CONTAINER_MAP: 'CONTAINER_MAP';
|
||||
CONTENT: 'CONTENT';
|
||||
CONTENTS: 'CONTENTS';
|
||||
CONTEXT: 'CONTEXT';
|
||||
@ -293,6 +312,7 @@ CONTINUE: 'CONTINUE';
|
||||
CONTROLFILE: 'CONTROLFILE';
|
||||
CON_UID_TO_ID: 'CON_UID_TO_ID';
|
||||
CONVERT: 'CONVERT';
|
||||
CONVERSION: 'CONVERSION';
|
||||
COOKIE: 'COOKIE';
|
||||
COPY: 'COPY';
|
||||
CORR_K: 'CORR_K';
|
||||
@ -376,6 +396,8 @@ DECRYPT: 'DECRYPT';
|
||||
DEDUPLICATE: 'DEDUPLICATE';
|
||||
DEFAULT: 'DEFAULT';
|
||||
DEFAULTS: 'DEFAULTS';
|
||||
DEFAULT_COLLATION: 'DEFAULT_COLLATION';
|
||||
DEFAULT_CREDENTIAL: 'DEFAULT_CREDENTIAL';
|
||||
DEFERRABLE: 'DEFERRABLE';
|
||||
DEFERRED: 'DEFERRED';
|
||||
DEFINED: 'DEFINED';
|
||||
@ -395,6 +417,7 @@ DEQUEUE: 'DEQUEUE';
|
||||
DEREF: 'DEREF';
|
||||
DEREF_NO_REWRITE: 'DEREF_NO_REWRITE';
|
||||
DESC: 'DESC';
|
||||
DESCRIPTION: 'DESCRIPTION';
|
||||
DESTROY: 'DESTROY';
|
||||
DETACHED: 'DETACHED';
|
||||
DETERMINES: 'DETERMINES';
|
||||
@ -445,6 +468,7 @@ DV: 'DV';
|
||||
DYNAMIC: 'DYNAMIC';
|
||||
DYNAMIC_SAMPLING: 'DYNAMIC_SAMPLING';
|
||||
DYNAMIC_SAMPLING_EST_CDN: 'DYNAMIC_SAMPLING_EST_CDN';
|
||||
E_LETTER: 'E';
|
||||
EACH: 'EACH';
|
||||
EDITIONABLE: 'EDITIONABLE';
|
||||
EDITION: 'EDITION';
|
||||
@ -537,6 +561,7 @@ FAR: 'FAR';
|
||||
FAST: 'FAST';
|
||||
FASTSTART: 'FASTSTART';
|
||||
FBTSCAN: 'FBTSCAN';
|
||||
FEATURE: 'FEATURE';
|
||||
FEATURE_DETAILS: 'FEATURE_DETAILS';
|
||||
FEATURE_ID: 'FEATURE_ID';
|
||||
FEATURE_SET: 'FEATURE_SET';
|
||||
@ -544,6 +569,8 @@ FEATURE_VALUE: 'FEATURE_VALUE';
|
||||
FETCH: 'FETCH';
|
||||
FILE: 'FILE';
|
||||
FILE_NAME_CONVERT: 'FILE_NAME_CONVERT';
|
||||
FILEGROUP: 'FILEGROUP';
|
||||
FILESTORE: 'FILESTORE';
|
||||
FILESYSTEM_LIKE_LOGGING: 'FILESYSTEM_LIKE_LOGGING';
|
||||
FILTER: 'FILTER';
|
||||
FINAL: 'FINAL';
|
||||
@ -559,6 +586,7 @@ FLASHBACK: 'FLASHBACK';
|
||||
FLASH_CACHE: 'FLASH_CACHE';
|
||||
FLOAT: 'FLOAT';
|
||||
FLOB: 'FLOB';
|
||||
FLEX: 'FLEX';
|
||||
FLOOR: 'FLOOR';
|
||||
FLUSH: 'FLUSH';
|
||||
FOLDER: 'FOLDER';
|
||||
@ -583,6 +611,8 @@ FULL: 'FULL';
|
||||
FULL_OUTER_JOIN_TO_OUTER: 'FULL_OUTER_JOIN_TO_OUTER';
|
||||
FUNCTION: 'FUNCTION';
|
||||
FUNCTIONS: 'FUNCTIONS';
|
||||
FTP: 'FTP';
|
||||
G_LETTER: 'G';
|
||||
GATHER_OPTIMIZER_STATISTICS: 'GATHER_OPTIMIZER_STATISTICS';
|
||||
GATHER_PLAN_STATISTICS: 'GATHER_PLAN_STATISTICS';
|
||||
GBY_CONC_ROLLUP: 'GBY_CONC_ROLLUP';
|
||||
@ -604,6 +634,7 @@ GROUPS: 'GROUPS';
|
||||
GUARANTEED: 'GUARANTEED';
|
||||
GUARANTEE: 'GUARANTEE';
|
||||
GUARD: 'GUARD';
|
||||
HALF_YEARS: 'HALF_YEARS';
|
||||
HASH_AJ: 'HASH_AJ';
|
||||
HASH: 'HASH';
|
||||
HASHKEYS: 'HASHKEYS';
|
||||
@ -616,14 +647,20 @@ HEXTORAW: 'HEXTORAW';
|
||||
HEXTOREF: 'HEXTOREF';
|
||||
HIDDEN_KEYWORD: 'HIDDEN';
|
||||
HIDE: 'HIDE';
|
||||
HIER_ORDER: 'HIER_ORDER';
|
||||
HIERARCHICAL: 'HIERARCHICAL';
|
||||
HIERARCHIES: 'HIERARCHIES';
|
||||
HIERARCHY: 'HIERARCHY';
|
||||
HIGH: 'HIGH';
|
||||
HINTSET_BEGIN: 'HINTSET_BEGIN';
|
||||
HINTSET_END: 'HINTSET_END';
|
||||
HOT: 'HOT';
|
||||
HOUR: 'HOUR';
|
||||
HOURS: 'HOURS';
|
||||
HTTP: 'HTTP';
|
||||
HWM_BROKERED: 'HWM_BROKERED';
|
||||
HYBRID: 'HYBRID';
|
||||
H_LETTER: 'H';
|
||||
IDENTIFIED: 'IDENTIFIED';
|
||||
IDENTIFIER: 'IDENTIFIER';
|
||||
IDENTITY: 'IDENTITY';
|
||||
@ -640,6 +677,7 @@ IMMEDIATE: 'IMMEDIATE';
|
||||
IMPACT: 'IMPACT';
|
||||
IMPORT: 'IMPORT';
|
||||
INACTIVE: 'INACTIVE';
|
||||
INACTIVE_ACCOUNT_TIME: 'INACTIVE_ACCOUNT_TIME';
|
||||
INCLUDE: 'INCLUDE';
|
||||
INCLUDE_VERSION: 'INCLUDE_VERSION';
|
||||
INCLUDING: 'INCLUDING';
|
||||
@ -719,6 +757,7 @@ INVALIDATE: 'INVALIDATE';
|
||||
INVISIBLE: 'INVISIBLE';
|
||||
IN_XQUERY: 'IN_XQUERY';
|
||||
IS: 'IS';
|
||||
IS_LEAF: 'IS_LEAF';
|
||||
ISOLATION: 'ISOLATION';
|
||||
ISOLATION_LEVEL: 'ISOLATION_LEVEL';
|
||||
ITERATE: 'ITERATE';
|
||||
@ -741,7 +780,9 @@ JSON_SERIALIZE: 'JSON_SERIALIZE';
|
||||
JSON_TABLE: 'JSON_TABLE';
|
||||
JSON_TEXTCONTAINS2: 'JSON_TEXTCONTAINS2';
|
||||
JSON_TEXTCONTAINS: 'JSON_TEXTCONTAINS';
|
||||
JSON_TRANSFORM: 'JSON_TRANSFORM';
|
||||
JSON_VALUE: 'JSON_VALUE';
|
||||
K_LETTER: 'K';
|
||||
KEEP_DUPLICATES: 'KEEP_DUPLICATES';
|
||||
KEEP: 'KEEP';
|
||||
KERBEROS: 'KERBEROS';
|
||||
@ -762,6 +803,9 @@ LAYER: 'LAYER';
|
||||
LDAP_REGISTRATION_ENABLED: 'LDAP_REGISTRATION_ENABLED';
|
||||
LDAP_REGISTRATION: 'LDAP_REGISTRATION';
|
||||
LDAP_REG_SYNC_INTERVAL: 'LDAP_REG_SYNC_INTERVAL';
|
||||
LEAF: 'LEAF';
|
||||
LEAD_CDB: 'LEAD_CDB';
|
||||
LEAD_CDB_URI: 'LEAD_CDB_URI';
|
||||
LEADING: 'LEADING';
|
||||
LEFT: 'LEFT';
|
||||
LENGTH2: 'LENGTH2';
|
||||
@ -771,6 +815,7 @@ LENGTHC: 'LENGTHC';
|
||||
LENGTH: 'LENGTH';
|
||||
LESS: 'LESS';
|
||||
LEVEL: 'LEVEL';
|
||||
LEVEL_NAME: 'LEVEL_NAME';
|
||||
LEVELS: 'LEVELS';
|
||||
LIBRARY: 'LIBRARY';
|
||||
LIFECYCLE: 'LIFECYCLE';
|
||||
@ -797,6 +842,7 @@ LOCALTIME: 'LOCALTIME';
|
||||
LOCALTIMESTAMP: 'LOCALTIMESTAMP';
|
||||
LOCATION: 'LOCATION';
|
||||
LOCATOR: 'LOCATOR';
|
||||
LOCKDOWN: 'LOCKDOWN';
|
||||
LOCKED: 'LOCKED';
|
||||
LOCKING: 'LOCKING';
|
||||
LOCK: 'LOCK';
|
||||
@ -813,16 +859,19 @@ LOGON: 'LOGON';
|
||||
LOG_READ_ONLY_VIOLATIONS: 'LOG_READ_ONLY_VIOLATIONS';
|
||||
LONG: 'LONG';
|
||||
LOOP: 'LOOP';
|
||||
LOST: 'LOST';
|
||||
LOWER: 'LOWER';
|
||||
LOW: 'LOW';
|
||||
LPAD: 'LPAD';
|
||||
LTRIM: 'LTRIM';
|
||||
M_LETTER: 'M';
|
||||
MAIN: 'MAIN';
|
||||
MAKE_REF: 'MAKE_REF';
|
||||
MANAGED: 'MANAGED';
|
||||
MANAGE: 'MANAGE';
|
||||
MANAGEMENT: 'MANAGEMENT';
|
||||
MANAGER: 'MANAGER';
|
||||
MANDATORY: 'MANDATORY';
|
||||
MANUAL: 'MANUAL';
|
||||
MAP: 'MAP';
|
||||
MAPPING: 'MAPPING';
|
||||
@ -850,6 +899,10 @@ MEASURE: 'MEASURE';
|
||||
MEASURES: 'MEASURES';
|
||||
MEDIUM: 'MEDIUM';
|
||||
MEMBER: 'MEMBER';
|
||||
MEMBER_CAPTION: 'MEMBER_CAPTION';
|
||||
MEMBER_DESCRIPTION: 'MEMBER_DESCRIPTION';
|
||||
MEMBER_NAME: 'MEMBER_NAME';
|
||||
MEMBER_UNIQUE_NAME: 'MEMBER_UNIQUE_NAME';
|
||||
MEMCOMPRESS: 'MEMCOMPRESS';
|
||||
MEMORY: 'MEMORY';
|
||||
MERGEACTIONS: 'MERGE$ACTIONS';
|
||||
@ -868,10 +921,13 @@ MINING: 'MINING';
|
||||
MINUS: 'MINUS';
|
||||
MINUS_NULL: 'MINUS_NULL';
|
||||
MINUTE: 'MINUTE';
|
||||
MINUTES: 'MINUTES';
|
||||
MINVALUE: 'MINVALUE';
|
||||
MIRRORCOLD: 'MIRRORCOLD';
|
||||
MIRRORHOT: 'MIRRORHOT';
|
||||
MIRROR: 'MIRROR';
|
||||
MISSING: 'MISSING';
|
||||
MISMATCH: 'MISMATCH';
|
||||
MLSLABEL: 'MLSLABEL';
|
||||
MODEL_COMPILE_SUBQUERY: 'MODEL_COMPILE_SUBQUERY';
|
||||
MODEL_DONTVERIFY_UNIQUENESS: 'MODEL_DONTVERIFY_UNIQUENESS';
|
||||
@ -896,6 +952,7 @@ MONTHS_BETWEEN: 'MONTHS_BETWEEN';
|
||||
MONTHS: 'MONTHS';
|
||||
MOUNT: 'MOUNT';
|
||||
MOUNTPATH: 'MOUNTPATH';
|
||||
MOUNTPOINT: 'MOUNTPOINT';
|
||||
MOVEMENT: 'MOVEMENT';
|
||||
MOVE: 'MOVE';
|
||||
MULTIDIMENSIONAL: 'MULTIDIMENSIONAL';
|
||||
@ -1053,6 +1110,7 @@ NO_PLACE_DISTINCT: 'NO_PLACE_DISTINCT';
|
||||
NO_PLACE_GROUP_BY: 'NO_PLACE_GROUP_BY';
|
||||
NO_PQ_CONCURRENT_UNION: 'NO_PQ_CONCURRENT_UNION';
|
||||
NO_PQ_MAP: 'NO_PQ_MAP';
|
||||
NOPROMPT: 'NOPROMPT';
|
||||
NO_PQ_REPLICATE: 'NO_PQ_REPLICATE';
|
||||
NO_PQ_SKEW: 'NO_PQ_SKEW';
|
||||
NO_PRUNE_GSETS: 'NO_PRUNE_GSETS';
|
||||
@ -1214,6 +1272,7 @@ OVERRIDING: 'OVERRIDING';
|
||||
OWNER: 'OWNER';
|
||||
OWNERSHIP: 'OWNERSHIP';
|
||||
OWN: 'OWN';
|
||||
P_LETTER: 'P';
|
||||
PACKAGE: 'PACKAGE';
|
||||
PACKAGES: 'PACKAGES';
|
||||
PARALLEL_ENABLE: 'PARALLEL_ENABLE';
|
||||
@ -1223,6 +1282,8 @@ PARAMETERFILE: 'PARAMETERFILE';
|
||||
PARAMETERS: 'PARAMETERS';
|
||||
PARAM: 'PARAM';
|
||||
PARENT: 'PARENT';
|
||||
PARENT_LEVEL_NAME: 'PARENT_LEVEL_NAME';
|
||||
PARENT_UNIQUE_NAME: 'PARENT_UNIQUE_NAME';
|
||||
PARITY: 'PARITY';
|
||||
PARTIAL_JOIN: 'PARTIAL_JOIN';
|
||||
PARTIALLY: 'PARTIALLY';
|
||||
@ -1241,6 +1302,7 @@ PASSWORD_LOCK_TIME: 'PASSWORD_LOCK_TIME';
|
||||
PASSWORD: 'PASSWORD';
|
||||
PASSWORD_REUSE_MAX: 'PASSWORD_REUSE_MAX';
|
||||
PASSWORD_REUSE_TIME: 'PASSWORD_REUSE_TIME';
|
||||
PASSWORD_ROLLOVER_TIME: 'PASSWORD_ROLLOVER_TIME';
|
||||
PASSWORD_VERIFY_FUNCTION: 'PASSWORD_VERIFY_FUNCTION';
|
||||
PAST: 'PAST';
|
||||
PATCH: 'PATCH';
|
||||
@ -1289,6 +1351,7 @@ PLSQL_DEBUG: 'PLSQL_DEBUG';
|
||||
PLSQL_OPTIMIZE_LEVEL: 'PLSQL_OPTIMIZE_LEVEL';
|
||||
PLSQL_WARNINGS: 'PLSQL_WARNINGS';
|
||||
PLUGGABLE: 'PLUGGABLE';
|
||||
PMEM: 'PMEM';
|
||||
POINT: 'POINT';
|
||||
POLICY: 'POLICY';
|
||||
POOL_16K: 'POOL_16K';
|
||||
@ -1343,8 +1406,10 @@ PROFILE: 'PROFILE';
|
||||
PROGRAM: 'PROGRAM';
|
||||
PROJECT: 'PROJECT';
|
||||
PROPAGATE: 'PROPAGATE';
|
||||
PROPERTY: 'PROPERTY';
|
||||
PROTECTED: 'PROTECTED';
|
||||
PROTECTION: 'PROTECTION';
|
||||
PROTOCOL: 'PROTOCOL';
|
||||
PROXY: 'PROXY';
|
||||
PRUNING: 'PRUNING';
|
||||
PUBLIC: 'PUBLIC';
|
||||
@ -1356,6 +1421,7 @@ PX_FAULT_TOLERANCE: 'PX_FAULT_TOLERANCE';
|
||||
PX_GRANULE: 'PX_GRANULE';
|
||||
PX_JOIN_FILTER: 'PX_JOIN_FILTER';
|
||||
QB_NAME: 'QB_NAME';
|
||||
QUARTERS: 'QUARTERS';
|
||||
QUERY_BLOCK: 'QUERY_BLOCK';
|
||||
QUERY: 'QUERY';
|
||||
QUEUE_CURR: 'QUEUE_CURR';
|
||||
@ -1364,6 +1430,7 @@ QUEUE_ROWP: 'QUEUE_ROWP';
|
||||
QUIESCE: 'QUIESCE';
|
||||
QUORUM: 'QUORUM';
|
||||
QUOTA: 'QUOTA';
|
||||
QUOTAGROUP: 'QUOTAGROUP';
|
||||
RAISE: 'RAISE';
|
||||
RANDOM_LOCAL: 'RANDOM_LOCAL';
|
||||
RANDOM: 'RANDOM';
|
||||
@ -1425,6 +1492,7 @@ RELIES_ON: 'RELIES_ON';
|
||||
RELOCATE: 'RELOCATE';
|
||||
RELY: 'RELY';
|
||||
REMAINDER: 'REMAINDER';
|
||||
REMOTE: 'REMOTE';
|
||||
REMOTE_MAPPED: 'REMOTE_MAPPED';
|
||||
REMOVE: 'REMOVE';
|
||||
RENAME: 'RENAME';
|
||||
@ -1501,9 +1569,11 @@ SCRUB: 'SCRUB';
|
||||
SD_ALL: 'SD_ALL';
|
||||
SD_INHIBIT: 'SD_INHIBIT';
|
||||
SDO_GEOM_MBR: 'SDO_GEOM_MBR';
|
||||
SDO_GEOMETRY: 'SDO_GEOMETRY';
|
||||
SD_SHOW: 'SD_SHOW';
|
||||
SEARCH: 'SEARCH';
|
||||
SECOND: 'SECOND';
|
||||
SECONDS: 'SECONDS';
|
||||
SECRET: 'SECRET';
|
||||
SECUREFILE_DBA: 'SECUREFILE_DBA';
|
||||
SECUREFILE: 'SECUREFILE';
|
||||
@ -1527,6 +1597,7 @@ SERIALLY_REUSABLE: 'SERIALLY_REUSABLE';
|
||||
SERIAL: 'SERIAL';
|
||||
SERVERERROR: 'SERVERERROR';
|
||||
SERVICE_NAME_CONVERT: 'SERVICE_NAME_CONVERT';
|
||||
SERVICE: 'SERVICE';
|
||||
SERVICES: 'SERVICES';
|
||||
SESSION_CACHED_CURSORS: 'SESSION_CACHED_CURSORS';
|
||||
SESSION: 'SESSION';
|
||||
@ -1538,6 +1609,7 @@ SETS: 'SETS';
|
||||
SETTINGS: 'SETTINGS';
|
||||
SET_TO_JOIN: 'SET_TO_JOIN';
|
||||
SEVERE: 'SEVERE';
|
||||
SHARDSPACE: 'SHARDSPACE';
|
||||
SHARED_POOL: 'SHARED_POOL';
|
||||
SHARED: 'SHARED';
|
||||
SHARE: 'SHARE';
|
||||
@ -1548,6 +1620,7 @@ SHRINK: 'SHRINK';
|
||||
SHUTDOWN: 'SHUTDOWN';
|
||||
SIBLINGS: 'SIBLINGS';
|
||||
SID: 'SID';
|
||||
SITE: 'SITE';
|
||||
SIGNAL_COMPONENT: 'SIGNAL_COMPONENT';
|
||||
SIGNAL_FUNCTION: 'SIGNAL_FUNCTION';
|
||||
SIGN: 'SIGN';
|
||||
@ -1581,11 +1654,13 @@ SQLDATA: 'SQLDATA';
|
||||
SQLERROR: 'SQLERROR';
|
||||
SQLLDR: 'SQLLDR';
|
||||
SQL: 'SQL';
|
||||
SQL_MACRO: 'SQL_MACRO';
|
||||
SQL_TRACE: 'SQL_TRACE';
|
||||
SQL_TRANSLATION_PROFILE: 'SQL_TRANSLATION_PROFILE';
|
||||
SQRT: 'SQRT';
|
||||
STALE: 'STALE';
|
||||
STANDALONE: 'STANDALONE';
|
||||
STANDARD: 'STANDARD';
|
||||
STANDARD_HASH: 'STANDARD_HASH';
|
||||
STANDBY_MAX_DATA_DELAY: 'STANDBY_MAX_DATA_DELAY';
|
||||
STANDBYS: 'STANDBYS';
|
||||
@ -1651,6 +1726,7 @@ SWITCH: 'SWITCH';
|
||||
SYNCHRONOUS: 'SYNCHRONOUS';
|
||||
SYNC: 'SYNC';
|
||||
SYNONYM: 'SYNONYM';
|
||||
SYS: 'SYS';
|
||||
SYSASM: 'SYSASM';
|
||||
SYS_AUDIT: 'SYS_AUDIT';
|
||||
SYSAUX: 'SYSAUX';
|
||||
@ -1930,6 +2006,7 @@ SYS_XQXFORM: 'SYS_XQXFORM';
|
||||
SYS_XSID_TO_RAW: 'SYS_XSID_TO_RAW';
|
||||
SYS_ZMAP_FILTER: 'SYS_ZMAP_FILTER';
|
||||
SYS_ZMAP_REFRESH: 'SYS_ZMAP_REFRESH';
|
||||
T_LETTER: 'T';
|
||||
TABLE_LOOKUP_BY_NL: 'TABLE_LOOKUP_BY_NL';
|
||||
TABLESPACE_NO: 'TABLESPACE_NO';
|
||||
TABLESPACE: 'TABLESPACE';
|
||||
@ -1968,6 +2045,7 @@ TIMEZONE_MINUTE: 'TIMEZONE_MINUTE';
|
||||
TIMEZONE_OFFSET: 'TIMEZONE_OFFSET';
|
||||
TIMEZONE_REGION: 'TIMEZONE_REGION';
|
||||
TIME_ZONE: 'TIME_ZONE';
|
||||
TIMING: 'TIMING';
|
||||
TIV_GB: 'TIV_GB';
|
||||
TIV_SSF: 'TIV_SSF';
|
||||
TO_ACLID: 'TO_ACLID';
|
||||
@ -1994,6 +2072,7 @@ TRACING: 'TRACING';
|
||||
TRACKING: 'TRACKING';
|
||||
TRAILING: 'TRAILING';
|
||||
TRANSACTION: 'TRANSACTION';
|
||||
TRANSFORM: 'TRANSFORM';
|
||||
TRANSFORM_DISTINCT_AGG: 'TRANSFORM_DISTINCT_AGG';
|
||||
TRANSITIONAL: 'TRANSITIONAL';
|
||||
TRANSITION: 'TRANSITION';
|
||||
@ -2094,6 +2173,7 @@ UTF8: 'UTF8';
|
||||
V1: 'V1';
|
||||
V2: 'V2';
|
||||
VALIDATE: 'VALIDATE';
|
||||
VALIDATE_CONVERSION: 'VALIDATE_CONVERSION';
|
||||
VALIDATION: 'VALIDATION';
|
||||
VALID_TIME_END: 'VALID_TIME_END';
|
||||
VALUES: 'VALUES';
|
||||
@ -2204,6 +2284,28 @@ PREDICTION_DETAILS: 'PREDICTION_DETAILS';
|
||||
PREDICTION_PROBABILITY: 'PREDICTION_PROBABILITY';
|
||||
PREDICTION_SET: 'PREDICTION_SET';
|
||||
|
||||
BLOCKCHAIN: 'BLOCKCHAIN';
|
||||
COLLATE: 'COLLATE';
|
||||
COLLATION: 'COLLATION';
|
||||
DEFINITION: 'DEFINITION';
|
||||
DUPLICATED: 'DUPLICATED';
|
||||
EXTENDED: 'EXTENDED';
|
||||
HASHING: 'HASHING';
|
||||
IDLE: 'IDLE';
|
||||
IMMUTABLE: 'IMMUTABLE';
|
||||
ORACLE_DATAPUMP: 'ORACLE_DATAPUMP';
|
||||
ORACLE_HDFS: 'ORACLE_HDFS';
|
||||
ORACLE_HIVE: 'ORACLE_HIVE';
|
||||
ORACLE_LOADER: 'ORACLE_LOADER';
|
||||
SHA2_512_Q: '"SHA2_512"';
|
||||
SHARDED: 'SHARDED';
|
||||
V1_Q: '"V1"';
|
||||
|
||||
ISOLATE: 'ISOLATE';
|
||||
ROOT: 'ROOT';
|
||||
UNITE: 'UNITE';
|
||||
ALGORITHM: 'ALGORITHM';
|
||||
|
||||
CUME_DIST: 'CUME_DIST';
|
||||
DENSE_RANK: 'DENSE_RANK';
|
||||
LISTAGG: 'LISTAGG';
|
||||
@ -2217,9 +2319,12 @@ CORR: 'CORR';
|
||||
COVAR_: 'COVAR_';
|
||||
DECODE: 'DECODE';
|
||||
LAG: 'LAG';
|
||||
LAG_DIFF: 'LAG_DIFF';
|
||||
LAG_DIFF_PERCENT: 'LAG_DIFF_PERCENT';
|
||||
LEAD: 'LEAD';
|
||||
MAX: 'MAX';
|
||||
MEDIAN: 'MEDIAN';
|
||||
MEMOPTIMIZE: 'MEMOPTIMIZE';
|
||||
MIN: 'MIN';
|
||||
NTILE: 'NTILE';
|
||||
NVL: 'NVL';
|
||||
@ -2251,7 +2356,7 @@ BIT_STRING_LIT: 'B' ('\'' [01]* '\'')+;
|
||||
// Rule #284 <HEX_STRING_LIT> - subtoken typecast in <REGULAR_ID>
|
||||
// Lowercase 'x' is a usual addition to the standard
|
||||
|
||||
HEX_STRING_LIT: 'X' ('\'' [A-F0-9]* '\'')+;
|
||||
HEX_STRING_LIT: 'X' ('\'' [A-Fa-f0-9]* '\'')+;
|
||||
DOUBLE_PERIOD: '..';
|
||||
PERIOD: '.';
|
||||
|
||||
@ -2274,6 +2379,7 @@ PERIOD: '.';
|
||||
UNSIGNED_INTEGER: [0-9]+;
|
||||
APPROXIMATE_NUM_LIT: FLOAT_FRAGMENT ('E' ('+'|'-')? (FLOAT_FRAGMENT | [0-9]+))? ('D' | 'F')?;
|
||||
|
||||
|
||||
// Rule #--- <CHAR_STRING> is a base for Rule #065 <char_string_lit> , it incorporates <character_representation>
|
||||
// and a superfluous subtoken typecasting of the "QUOTE"
|
||||
CHAR_STRING: '\'' (~('\'' | '\r' | '\n') | '\'' '\'' | NEWLINE)* '\'';
|
||||
@ -2304,6 +2410,9 @@ COMMA: ',';
|
||||
SOLIDUS: '/';
|
||||
AT_SIGN: '@';
|
||||
ASSIGN_OP: ':=';
|
||||
HASH_OP: '#';
|
||||
|
||||
SQ: '\'';
|
||||
|
||||
BINDVAR
|
||||
: ':' SIMPLE_LETTER (SIMPLE_LETTER | [0-9] | '_')*
|
||||
@ -2359,7 +2468,7 @@ SPACES: [ \t\r\n]+ -> channel(HIDDEN);
|
||||
|
||||
fragment NEWLINE_EOF : NEWLINE | EOF;
|
||||
fragment QUESTION_MARK : '?';
|
||||
fragment SIMPLE_LETTER : [A-Z];
|
||||
fragment SIMPLE_LETTER : [a-zA-Z];
|
||||
fragment FLOAT_FRAGMENT : UNSIGNED_INTEGER* '.'? UNSIGNED_INTEGER+;
|
||||
fragment NEWLINE : '\r'? '\n';
|
||||
fragment SPACE : [ \t];
|
@ -24,11 +24,14 @@ options {
|
||||
tokenVocab=PlSqlLexer;
|
||||
superClass=PlSqlBaseParser;
|
||||
}
|
||||
@parser::header {
|
||||
import PlSqlBaseParser from './PlSqlBaseParser';
|
||||
}
|
||||
|
||||
program: sql_script EOF;
|
||||
program: sql_script SEMICOLON? EOF;
|
||||
|
||||
sql_script
|
||||
: ((unit_statement | sql_plus_command) SEMICOLON?)* EOF
|
||||
: (unit_statement | sql_plus_command)*
|
||||
;
|
||||
|
||||
unit_statement
|
||||
@ -268,21 +271,6 @@ trigger_body
|
||||
| trigger_block
|
||||
;
|
||||
|
||||
routine_clause
|
||||
: routine_name function_argument?
|
||||
;
|
||||
|
||||
compound_trigger_block
|
||||
: COMPOUND TRIGGER seq_of_declare_specs? timing_point_section+ END trigger_name
|
||||
;
|
||||
|
||||
timing_point_section
|
||||
: bk=BEFORE STATEMENT IS trigger_block BEFORE STATEMENT ';'
|
||||
| bk=BEFORE EACH ROW IS trigger_block BEFORE EACH ROW ';'
|
||||
| ak=AFTER STATEMENT IS trigger_block AFTER STATEMENT ';'
|
||||
| ak=AFTER EACH ROW IS trigger_block AFTER EACH ROW ';'
|
||||
;
|
||||
|
||||
non_dml_event
|
||||
: ALTER
|
||||
| ANALYZE
|
||||
@ -366,14 +354,6 @@ alter_method_element
|
||||
: (ADD | DROP) (map_order_function_spec | subprogram_spec)
|
||||
;
|
||||
|
||||
alter_attribute_definition
|
||||
: (ADD | MODIFY | DROP) ATTRIBUTE (attribute_definition | '(' attribute_definition (',' attribute_definition)* ')')
|
||||
;
|
||||
|
||||
attribute_definition
|
||||
: attribute_name type_spec?
|
||||
;
|
||||
|
||||
alter_collection_clauses
|
||||
: MODIFY (LIMIT expression | ELEMENT TYPE type_spec)
|
||||
;
|
||||
@ -1621,27 +1601,6 @@ mv_log_augmentation
|
||||
new_values_clause?
|
||||
;
|
||||
|
||||
// Should bound this to just date/time expr
|
||||
datetime_expr
|
||||
: expression
|
||||
;
|
||||
|
||||
// Should bound this to just interval expr
|
||||
interval_expr
|
||||
: expression
|
||||
;
|
||||
|
||||
synchronous_or_asynchronous
|
||||
: SYNCHRONOUS
|
||||
| ASYNCHRONOUS
|
||||
;
|
||||
|
||||
including_or_excluding
|
||||
: INCLUDING
|
||||
| EXCLUDING
|
||||
;
|
||||
|
||||
|
||||
create_materialized_view_log
|
||||
: CREATE MATERIALIZED VIEW LOG ON tableview_name
|
||||
( ( physical_attributes_clause
|
||||
@ -2005,12 +1964,6 @@ lob_partitioning_storage
|
||||
)
|
||||
;
|
||||
|
||||
datatype_null_enable
|
||||
: column_name datatype
|
||||
SORT? (DEFAULT expression)? (ENCRYPT ( USING CHAR_STRING )? (IDENTIFIED BY REGULAR_ID)? CHAR_STRING? ( NO? SALT )? )?
|
||||
(NOT NULL_)? (ENABLE | DISABLE)?
|
||||
;
|
||||
|
||||
//Technically, this should only allow 'K' | 'M' | 'G' | 'T' | 'P' | 'E'
|
||||
// but having issues with examples/numbers01.sql line 11 "sysdate -1m"
|
||||
size_clause
|
||||
@ -2286,8 +2239,7 @@ database_file_clauses
|
||||
|
||||
create_datafile_clause
|
||||
: CREATE DATAFILE (filename | filenumber) (',' (filename | filenumber) )*
|
||||
(AS (//TODO (','? file_specification)+ |
|
||||
NEW) )?
|
||||
(AS (NEW) )?
|
||||
;
|
||||
|
||||
alter_datafile_clause
|
||||
@ -2655,11 +2607,6 @@ add_column_clause
|
||||
')'
|
||||
| ( column_definition | virtual_column_definition ))
|
||||
column_properties?
|
||||
//TODO (','? out_of_line_part_storage )
|
||||
;
|
||||
|
||||
alter_varray_col_properties
|
||||
: MODIFY VARRAY varray_item '(' modify_lob_parameters ')'
|
||||
;
|
||||
|
||||
varray_col_properties
|
||||
@ -2760,37 +2707,20 @@ column_properties
|
||||
| xmltype_column_properties
|
||||
;
|
||||
|
||||
period_definition
|
||||
: {this.isVersion12()}? PERIOD FOR column_name
|
||||
( '(' start_time_column ',' end_time_column ')' )?
|
||||
;
|
||||
|
||||
start_time_column
|
||||
: column_name
|
||||
;
|
||||
|
||||
end_time_column
|
||||
: column_name
|
||||
;
|
||||
|
||||
column_definition
|
||||
: column_name (datatype | type_name)
|
||||
SORT? (DEFAULT expression)? (ENCRYPT (USING CHAR_STRING)? (IDENTIFIED BY regular_id)? CHAR_STRING? (NO? SALT)? )? (inline_constraint* | inline_ref_constraint)
|
||||
;
|
||||
|
||||
virtual_column_definition
|
||||
: column_name datatype? autogenerated_sequence_definition?
|
||||
: column_name datatype? autogenerated_sequence_definition?
|
||||
VIRTUAL? inline_constraint*
|
||||
;
|
||||
|
||||
|
||||
autogenerated_sequence_definition
|
||||
: GENERATED (ALWAYS | BY DEFAULT (ON NULL_)?)? AS IDENTITY
|
||||
;
|
||||
|
||||
out_of_line_part_storage
|
||||
: PARTITION partition_name
|
||||
;
|
||||
|
||||
nested_table_col_properties
|
||||
: NESTED TABLE (nested_item | COLUMN_VALUE) substitutable_column_clause? (LOCAL | GLOBAL)?
|
||||
STORE AS tableview_name ( '(' ( '(' object_properties ')'
|
||||
@ -2819,10 +2749,6 @@ supplemental_logging_props
|
||||
: SUPPLEMENTAL LOG (supplemental_log_grp_clause | supplemental_id_key_clause)
|
||||
;
|
||||
|
||||
column_or_attribute
|
||||
: regular_id
|
||||
;
|
||||
|
||||
object_type_col_properties
|
||||
: COLUMN column=regular_id substitutable_column_clause
|
||||
;
|
||||
@ -2852,33 +2778,11 @@ drop_primary_key_or_unique_or_generic_clause
|
||||
| CONSTRAINT constraint_name CASCADE?
|
||||
;
|
||||
|
||||
add_constraint
|
||||
: ADD (CONSTRAINT constraint_name)? add_constraint_clause (',' (CONSTRAINT constraint_name)? add_constraint_clause)+
|
||||
;
|
||||
|
||||
add_constraint_clause
|
||||
: primary_key_clause
|
||||
| foreign_key_clause
|
||||
| unique_key_clause
|
||||
| check_constraint
|
||||
;
|
||||
|
||||
check_constraint
|
||||
: CHECK '(' condition ')' DISABLE?
|
||||
;
|
||||
|
||||
drop_constraint
|
||||
: DROP CONSTRAINT constraint_name
|
||||
;
|
||||
|
||||
enable_constraint
|
||||
: ENABLE CONSTRAINT constraint_name
|
||||
;
|
||||
|
||||
disable_constraint
|
||||
: DISABLE CONSTRAINT constraint_name
|
||||
;
|
||||
|
||||
foreign_key_clause
|
||||
: FOREIGN KEY paren_column_list references_clause on_delete_clause?
|
||||
;
|
||||
@ -2891,14 +2795,6 @@ on_delete_clause
|
||||
: ON DELETE (CASCADE | SET NULL_)
|
||||
;
|
||||
|
||||
unique_key_clause
|
||||
: UNIQUE paren_column_list using_index_clause?
|
||||
;
|
||||
|
||||
primary_key_clause
|
||||
: PRIMARY KEY paren_column_list using_index_clause?
|
||||
;
|
||||
|
||||
// Anonymous PL/SQL code block
|
||||
|
||||
anonymous_block
|
||||
@ -3053,10 +2949,6 @@ statement
|
||||
| procedure_call
|
||||
;
|
||||
|
||||
swallow_to_semi
|
||||
: ~';'+
|
||||
;
|
||||
|
||||
assignment_statement
|
||||
: (general_element | bind_variable) ASSIGN_OP expression
|
||||
;
|
||||
@ -3322,7 +3214,7 @@ subquery_operation_part
|
||||
|
||||
query_block
|
||||
: SELECT (DISTINCT | UNIQUE | ALL)? selected_list
|
||||
into_clause? from_clause where_clause? hierarchical_query_clause? group_by_clause? model_clause? order_by_clause?
|
||||
into_clause? from_clause? where_clause? hierarchical_query_clause? group_by_clause? model_clause? order_by_clause?
|
||||
;
|
||||
|
||||
selected_list
|
||||
@ -4146,10 +4038,6 @@ rollback_segment_name
|
||||
: identifier
|
||||
;
|
||||
|
||||
table_var_name
|
||||
: identifier
|
||||
;
|
||||
|
||||
schema_name
|
||||
: identifier
|
||||
;
|
||||
@ -6741,19 +6629,3 @@ non_reserved_keywords_pre12c
|
||||
| YES
|
||||
| ZONE
|
||||
;
|
||||
|
||||
string_function_name
|
||||
: CHR
|
||||
| DECODE
|
||||
| SUBSTR
|
||||
| TO_CHAR
|
||||
| TRIM
|
||||
;
|
||||
|
||||
numeric_function_name
|
||||
: AVG
|
||||
| COUNT
|
||||
| NVL
|
||||
| ROUND
|
||||
| SUM
|
||||
;
|
@ -490,12 +490,12 @@ windowFrame: (
|
||||
)?;
|
||||
|
||||
frameExtent:
|
||||
frameType = RANGE start = frameBound
|
||||
| frameType = ROWS start = frameBound
|
||||
| frameType = GROUPS start = frameBound
|
||||
| frameType = RANGE BETWEEN start = frameBound AND end = frameBound
|
||||
| frameType = ROWS BETWEEN start = frameBound AND end = frameBound
|
||||
| frameType = GROUPS BETWEEN start = frameBound AND end = frameBound;
|
||||
frameType = RANGE frameStart = frameBound
|
||||
| frameType = ROWS frameStart = frameBound
|
||||
| frameType = GROUPS frameStart = frameBound
|
||||
| frameType = RANGE BETWEEN frameStart = frameBound AND end = frameBound
|
||||
| frameType = ROWS BETWEEN frameStart = frameBound AND end = frameBound
|
||||
| frameType = GROUPS BETWEEN frameStart = frameBound AND end = frameBound;
|
||||
|
||||
frameBound:
|
||||
UNBOUNDED boundType = PRECEDING # unboundedFrame
|
||||
|
Reference in New Issue
Block a user