feat(flink): add createTable grammar
This commit is contained in:
parent
654d96028c
commit
b7df08f012
@ -6,11 +6,12 @@ const grammars = path.resolve(__dirname, '../src/grammar');
|
|||||||
const output = path.resolve(__dirname, '../src/lib');
|
const output = path.resolve(__dirname, '../src/lib');
|
||||||
|
|
||||||
const entry = [
|
const entry = [
|
||||||
'generic',
|
// 'generic',
|
||||||
'hive',
|
// 'hive',
|
||||||
'plsql',
|
// 'plsql',
|
||||||
'spark',
|
// 'spark',
|
||||||
'impala',
|
// 'impala',
|
||||||
|
'flinksql',
|
||||||
];
|
];
|
||||||
|
|
||||||
entry.forEach((language) => {
|
entry.forEach((language) => {
|
||||||
|
308
src/grammar/flinksql/FlinkSqlLexer.g4
Normal file
308
src/grammar/flinksql/FlinkSqlLexer.g4
Normal file
@ -0,0 +1,308 @@
|
|||||||
|
lexer grammar FlinkSqlLexer;
|
||||||
|
|
||||||
|
channels { MYSQLCOMMENT }
|
||||||
|
|
||||||
|
// SKIP
|
||||||
|
|
||||||
|
SPACE: [ \t\r\n]+ -> channel(HIDDEN);
|
||||||
|
SPEC_MYSQL_COMMENT: '/*!' .+? '*/' -> channel(MYSQLCOMMENT);
|
||||||
|
COMMENT_INPUT: '/*' .*? '*/' -> channel(HIDDEN);
|
||||||
|
LINE_COMMENT: (
|
||||||
|
('-- ' | '#') ~[\r\n]* ('\r'? '\n' | EOF)
|
||||||
|
| '--' ('\r'? '\n' | EOF)
|
||||||
|
) -> channel(HIDDEN);
|
||||||
|
|
||||||
|
|
||||||
|
// Common Keywords
|
||||||
|
|
||||||
|
SELECT: 'SELECT';
|
||||||
|
FROM: 'FROM';
|
||||||
|
ADD: 'ADD';
|
||||||
|
AS: 'AS';
|
||||||
|
ALL: 'ALL';
|
||||||
|
ANY: 'ANY';
|
||||||
|
DISTINCT: 'DISTINCT';
|
||||||
|
WHERE: 'WHERE';
|
||||||
|
GROUP: 'GROUP';
|
||||||
|
BY: 'BY';
|
||||||
|
GROUPING: 'GROUPING';
|
||||||
|
SETS: 'SETS';
|
||||||
|
CUBE: 'CUBE';
|
||||||
|
ROLLUP: 'ROLLUP';
|
||||||
|
ORDER: 'ORDER';
|
||||||
|
HAVING: 'HAVING';
|
||||||
|
LIMIT: 'LIMIT';
|
||||||
|
AT: 'AT';
|
||||||
|
OR: 'OR';
|
||||||
|
AND: 'AND';
|
||||||
|
IN: 'IN';
|
||||||
|
NOT: 'NOT';
|
||||||
|
NO: 'NO';
|
||||||
|
EXISTS: 'EXISTS';
|
||||||
|
BETWEEN: 'BETWEEN';
|
||||||
|
LIKE: 'LIKE';
|
||||||
|
RLIKE: 'RLIKE';
|
||||||
|
IS: 'IS';
|
||||||
|
TRUE: 'TRUE';
|
||||||
|
FALSE: 'FALSE';
|
||||||
|
NULLS: 'NULLS';
|
||||||
|
ASC: 'ASC';
|
||||||
|
DESC: 'DESC';
|
||||||
|
FOR: 'FOR';
|
||||||
|
INTERVAL: 'INTERVAL';
|
||||||
|
CASE: 'CASE';
|
||||||
|
WHEN: 'WHEN';
|
||||||
|
THEN: 'THEN';
|
||||||
|
ELSE: 'ELSE';
|
||||||
|
END: 'END';
|
||||||
|
JOIN: 'JOIN';
|
||||||
|
CROSS: 'CROSS';
|
||||||
|
OUTER: 'OUTER';
|
||||||
|
INNER: 'INNER';
|
||||||
|
LEFT: 'LEFT';
|
||||||
|
SEMI: 'SEMI';
|
||||||
|
RIGHT: 'RIGHT';
|
||||||
|
FULL: 'FULL';
|
||||||
|
NATURAL: 'NATURAL';
|
||||||
|
ON: 'ON';
|
||||||
|
PIVOT: 'PIVOT';
|
||||||
|
LATERAL: 'LATERAL';
|
||||||
|
WINDOW: 'WINDOW';
|
||||||
|
OVER: 'OVER';
|
||||||
|
PARTITION: 'PARTITION';
|
||||||
|
RANGE: 'RANGE';
|
||||||
|
ROWS: 'ROWS';
|
||||||
|
UNBOUNDED: 'UNBOUNDED';
|
||||||
|
PRECEDING: 'PRECEDING';
|
||||||
|
FOLLOWING: 'FOLLOWING';
|
||||||
|
CURRENT: 'CURRENT';
|
||||||
|
FIRST: 'FIRST';
|
||||||
|
AFTER: 'AFTER';
|
||||||
|
LAST: 'LAST';
|
||||||
|
WITH: 'WITH';
|
||||||
|
VALUES: 'VALUES';
|
||||||
|
CREATE: 'CREATE';
|
||||||
|
TABLE: 'TABLE';
|
||||||
|
DIRECTORY: 'DIRECTORY';
|
||||||
|
VIEW: 'VIEW';
|
||||||
|
REPLACE: 'REPLACE';
|
||||||
|
INSERT: 'INSERT';
|
||||||
|
DELETE: 'DELETE';
|
||||||
|
INTO: 'INTO';
|
||||||
|
DESCRIBE: 'DESCRIBE';
|
||||||
|
EXPLAIN: 'EXPLAIN';
|
||||||
|
FORMAT: 'FORMAT';
|
||||||
|
LOGICAL: 'LOGICAL';
|
||||||
|
CODEGEN: 'CODEGEN';
|
||||||
|
COST: 'COST';
|
||||||
|
CAST: 'CAST';
|
||||||
|
SHOW: 'SHOW';
|
||||||
|
TABLES: 'TABLES';
|
||||||
|
COLUMNS: 'COLUMNS';
|
||||||
|
COLUMN: 'COLUMN';
|
||||||
|
USE: 'USE';
|
||||||
|
PARTITIONS: 'PARTITIONS';
|
||||||
|
FUNCTIONS: 'FUNCTIONS';
|
||||||
|
DROP: 'DROP';
|
||||||
|
UNION: 'UNION';
|
||||||
|
EXCEPT: 'EXCEPT';
|
||||||
|
SETMINUS: 'SETMINUS';
|
||||||
|
INTERSECT: 'INTERSECT';
|
||||||
|
TO: 'TO';
|
||||||
|
TABLESAMPLE: 'TABLESAMPLE';
|
||||||
|
STRATIFY: 'STRATIFY';
|
||||||
|
ALTER: 'ALTER';
|
||||||
|
RENAME: 'RENAME';
|
||||||
|
STRUCT: 'STRUCT';
|
||||||
|
COMMENT: 'COMMENT';
|
||||||
|
SET: 'SET';
|
||||||
|
RESET: 'RESET';
|
||||||
|
DATA: 'DATA';
|
||||||
|
START: 'START';
|
||||||
|
TRANSACTION: 'TRANSACTION';
|
||||||
|
COMMIT: 'COMMIT';
|
||||||
|
ROLLBACK: 'ROLLBACK';
|
||||||
|
MACRO: 'MACRO';
|
||||||
|
IGNORE: 'IGNORE';
|
||||||
|
BOTH: 'BOTH';
|
||||||
|
LEADING: 'LEADING';
|
||||||
|
TRAILING: 'TRAILING';
|
||||||
|
IF: 'IF';
|
||||||
|
POSITION: 'POSITION';
|
||||||
|
EXTRACT: 'EXTRACT';
|
||||||
|
EQ: 'EQ';
|
||||||
|
NSEQ: 'NSEQ';
|
||||||
|
NEQ: 'NEQ';
|
||||||
|
NEQJ: 'NEQJ';
|
||||||
|
LT: 'LT';
|
||||||
|
LTE: 'LTE';
|
||||||
|
GT: 'GT';
|
||||||
|
GTE: 'GTE';
|
||||||
|
PLUS: 'PLUS';
|
||||||
|
MINUS: 'MINUS';
|
||||||
|
ASTERISK: 'ASTERISK';
|
||||||
|
SLASH: 'SLASH';
|
||||||
|
PERCENT: 'PERCENT';
|
||||||
|
DIV: 'DIV';
|
||||||
|
TILDE: 'TILDE';
|
||||||
|
AMPERSAND: 'AMPERSAND';
|
||||||
|
PIPE: 'PIPE';
|
||||||
|
CONCAT_PIPE: 'CONCAT_PIPE';
|
||||||
|
HAT: 'HAT';
|
||||||
|
PERCENTLIT: 'PERCENTLIT';
|
||||||
|
BUCKET: 'BUCKET';
|
||||||
|
OUT: 'OUT';
|
||||||
|
OF: 'OF';
|
||||||
|
SORT: 'SORT';
|
||||||
|
CLUSTER: 'CLUSTER';
|
||||||
|
DISTRIBUTE: 'DISTRIBUTE';
|
||||||
|
OVERWRITE: 'OVERWRITE';
|
||||||
|
TRANSFORM: 'TRANSFORM';
|
||||||
|
REDUCE: 'REDUCE';
|
||||||
|
USING: 'USING';
|
||||||
|
SERDE: 'SERDE';
|
||||||
|
SERDEPROPERTIES: 'SERDEPROPERTIES';
|
||||||
|
RECORDREADER: 'RECORDREADER';
|
||||||
|
RECORDWRITER: 'RECORDWRITER';
|
||||||
|
DELIMITED: 'DELIMITED';
|
||||||
|
FIELDS: 'FIELDS';
|
||||||
|
TERMINATED: 'TERMINATED';
|
||||||
|
COLLECTION: 'COLLECTION';
|
||||||
|
ITEMS: 'ITEMS';
|
||||||
|
KEYS: 'KEYS';
|
||||||
|
ESCAPED: 'ESCAPED';
|
||||||
|
LINES: 'LINES';
|
||||||
|
SEPARATED: 'SEPARATED';
|
||||||
|
FUNCTION: 'FUNCTION';
|
||||||
|
EXTENDED: 'EXTENDED';
|
||||||
|
REFRESH: 'REFRESH';
|
||||||
|
CLEAR: 'CLEAR';
|
||||||
|
CACHE: 'CACHE';
|
||||||
|
UNCACHE: 'UNCACHE';
|
||||||
|
LAZY: 'LAZY';
|
||||||
|
FORMATTED: 'FORMATTED';
|
||||||
|
GLOBAL: 'GLOBAL';
|
||||||
|
TEMPORARY: 'TEMPORARY';
|
||||||
|
OPTIONS: 'OPTIONS';
|
||||||
|
UNSET: 'UNSET';
|
||||||
|
TBLPROPERTIES: 'TBLPROPERTIES';
|
||||||
|
DBPROPERTIES: 'DBPROPERTIES';
|
||||||
|
BUCKETS: 'BUCKETS';
|
||||||
|
SKEWED: 'SKEWED';
|
||||||
|
STORED: 'STORED';
|
||||||
|
DIRECTORIES: 'DIRECTORIES';
|
||||||
|
LOCATION: 'LOCATION';
|
||||||
|
EXCHANGE: 'EXCHANGE';
|
||||||
|
ARCHIVE: 'ARCHIVE';
|
||||||
|
UNARCHIVE: 'UNARCHIVE';
|
||||||
|
FILEFORMAT: 'FILEFORMAT';
|
||||||
|
TOUCH: 'TOUCH';
|
||||||
|
COMPACT: 'COMPACT';
|
||||||
|
CONCATENATE: 'CONCATENATE';
|
||||||
|
CHANGE: 'CHANGE';
|
||||||
|
CASCADE: 'CASCADE';
|
||||||
|
RESTRICT: 'RESTRICT';
|
||||||
|
CLUSTERED: 'CLUSTERED';
|
||||||
|
SORTED: 'SORTED';
|
||||||
|
PURGE: 'PURGE';
|
||||||
|
INPUTFORMAT: 'INPUTFORMAT';
|
||||||
|
OUTPUTFORMAT: 'OUTPUTFORMAT';
|
||||||
|
DATABASE: 'DATABASE';
|
||||||
|
DATABASES: 'DATABASES';
|
||||||
|
DFS: 'DFS';
|
||||||
|
TRUNCATE: 'TRUNCATE';
|
||||||
|
ANALYZE: 'ANALYZE';
|
||||||
|
COMPUTE: 'COMPUTE';
|
||||||
|
LIST: 'LIST';
|
||||||
|
STATISTICS: 'STATISTICS';
|
||||||
|
PARTITIONED: 'PARTITIONED';
|
||||||
|
EXTERNAL: 'EXTERNAL';
|
||||||
|
DEFINED: 'DEFINED';
|
||||||
|
REVOKE: 'REVOKE';
|
||||||
|
GRANT: 'GRANT';
|
||||||
|
LOCK: 'LOCK';
|
||||||
|
UNLOCK: 'UNLOCK';
|
||||||
|
MSCK: 'MSCK';
|
||||||
|
REPAIR: 'REPAIR';
|
||||||
|
RECOVER: 'RECOVER';
|
||||||
|
EXPORT: 'EXPORT';
|
||||||
|
IMPORT: 'IMPORT';
|
||||||
|
LOAD: 'LOAD';
|
||||||
|
ROLE: 'ROLE';
|
||||||
|
ROLES: 'ROLES';
|
||||||
|
COMPACTIONS: 'COMPACTIONS';
|
||||||
|
PRINCIPALS: 'PRINCIPALS';
|
||||||
|
TRANSACTIONS: 'TRANSACTIONS';
|
||||||
|
INDEX: 'INDEX';
|
||||||
|
INDEXES: 'INDEXES';
|
||||||
|
LOCKS: 'LOCKS';
|
||||||
|
OPTION: 'OPTION';
|
||||||
|
ANTI: 'ANTI';
|
||||||
|
LOCAL: 'LOCAL';
|
||||||
|
INPATH: 'INPATH';
|
||||||
|
WATERMARK: 'WATERMARK';
|
||||||
|
UNNEST: 'UNNEST';
|
||||||
|
MATCH_RECOGNIZE: 'MATCH_RECOGNIZE';
|
||||||
|
MEASURES: 'MEASURES';
|
||||||
|
ONE: 'ONE';
|
||||||
|
PER: 'PER';
|
||||||
|
MATCH: 'MATCH';
|
||||||
|
SKIP1: 'SKIP1';
|
||||||
|
NEXT: 'NEXT';
|
||||||
|
PAST: 'PAST';
|
||||||
|
PATTERN: 'PATTERN';
|
||||||
|
WITHIN: 'WITHIN';
|
||||||
|
DEFINE: 'DEFINE';
|
||||||
|
BIGINT_LITERAL: 'BIGINT_LITERAL';
|
||||||
|
SMALLINT_LITERAL: 'SMALLINT_LITERAL';
|
||||||
|
TINYINT_LITERAL: 'TINYINT_LITERAL';
|
||||||
|
INTEGER_VALUE: 'INTEGER_VALUE';
|
||||||
|
DECIMAL_VALUE: 'DECIMAL_VALUE';
|
||||||
|
DOUBLE_LITERAL: 'DOUBLE_LITERAL';
|
||||||
|
BIGDECIMAL_LITERAL: 'BIGDECIMAL_LITERAL';
|
||||||
|
IDENTIFIER: 'IDENTIFIER';
|
||||||
|
BACKQUOTED_IDENTIFIER: 'BACKQUOTED_IDENTIFIER';
|
||||||
|
SIMPLE_COMMENT: 'SIMPLE_COMMENT';
|
||||||
|
BRACKETED_EMPTY_COMMENT: 'BRACKETED_EMPTY_COMMENT';
|
||||||
|
BRACKETED_COMMENT: 'BRACKETED_COMMENT';
|
||||||
|
WS: 'WS';
|
||||||
|
UNRECOGNIZED: 'UNRECOGNIZED';
|
||||||
|
REVERSE_QUOTE_ID: '"' ~'"'+ '"';
|
||||||
|
DOT_ID: '.' ID_LITERAL;
|
||||||
|
ID: ID_LITERAL;
|
||||||
|
|
||||||
|
|
||||||
|
// DATA TYPE Keywords
|
||||||
|
|
||||||
|
STRING: 'STRING';
|
||||||
|
ARRAY: 'ARRAY';
|
||||||
|
MAP: 'MAP';
|
||||||
|
CHAR: 'CHAR';
|
||||||
|
VARCHAR: 'VARCHAR';
|
||||||
|
BINARY: 'BINARY';
|
||||||
|
VARBINARY: 'VARBINARY';
|
||||||
|
BYTES: 'BYTES';
|
||||||
|
DECIMAL: 'DECIMAL';
|
||||||
|
TINYINT: 'TINYINT';
|
||||||
|
SMALLINT: 'SMALLINT';
|
||||||
|
INT: 'INT';
|
||||||
|
BIGINT: 'BIGINT';
|
||||||
|
FLOAT: 'FLOAT';
|
||||||
|
DOUBLE: 'DOUBLE';
|
||||||
|
DATE: 'DATE';
|
||||||
|
TIME: 'TIME';
|
||||||
|
TIMESTAMP: 'TIMESTAMP';
|
||||||
|
MULTISET: 'MULTISET';
|
||||||
|
BOOLEAN: 'BOOLEAN';
|
||||||
|
RAW: 'RAW';
|
||||||
|
ROW: 'ROW';
|
||||||
|
NULL: 'NULL';
|
||||||
|
|
||||||
|
|
||||||
|
// single character Keywords
|
||||||
|
|
||||||
|
EQUAL: '=';
|
||||||
|
COMMA: ',';
|
||||||
|
|
||||||
|
|
||||||
|
fragment ID_LITERAL: [A-Z_0-9a-z]*?[A-Z_a-z]+?[A-Z_0-9a-z]*;
|
119
src/grammar/flinksql/FlinkSqlParser.g4
Normal file
119
src/grammar/flinksql/FlinkSqlParser.g4
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
parser grammar FlinkSqlParser;
|
||||||
|
|
||||||
|
options { tokenVocab=FlinkSqlLexer; }
|
||||||
|
|
||||||
|
program: statement EOF;
|
||||||
|
|
||||||
|
statement
|
||||||
|
: sqlStatement EOF
|
||||||
|
;
|
||||||
|
|
||||||
|
sqlStatement
|
||||||
|
: ddlStatement | dmlStatement
|
||||||
|
;
|
||||||
|
|
||||||
|
ddlStatement
|
||||||
|
: createTable | createDatabase | createView | createFunction
|
||||||
|
| alterTable | alterDatabase | alterFunction
|
||||||
|
| dropTable | dropDatabase | dropView | dropFunction
|
||||||
|
;
|
||||||
|
|
||||||
|
dmlStatement
|
||||||
|
: selectStatement | insertStatement
|
||||||
|
;
|
||||||
|
|
||||||
|
createTable
|
||||||
|
: CREATE TABLE tableName
|
||||||
|
(
|
||||||
|
columnOptionDefinition (',' columnOptionDefinition)*
|
||||||
|
)
|
||||||
|
partitionDefinition?
|
||||||
|
WITH (
|
||||||
|
withOptionDefinition (',' withOptionDefinition)*
|
||||||
|
)
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
tableName
|
||||||
|
: ID (DOT_ID)*?
|
||||||
|
;
|
||||||
|
|
||||||
|
columnOptionDefinition
|
||||||
|
: columnName columnType
|
||||||
|
;
|
||||||
|
|
||||||
|
columnName
|
||||||
|
: ID
|
||||||
|
;
|
||||||
|
|
||||||
|
columnType
|
||||||
|
: CHAR | VARCHAR | STRING | BINARY | VARBINARY | BYTES
|
||||||
|
| DECIMAL | TINYINT | SMALLINT | INT | BIGINT | FLOAT | DOUBLE
|
||||||
|
| DATE | TIME | TIMESTAMP
|
||||||
|
| ARRAY | MAP | MULTISET | ROW
|
||||||
|
| BOOLEAN | RAW | NULL
|
||||||
|
;
|
||||||
|
|
||||||
|
partitionDefinition
|
||||||
|
: PARTITIONED BY partitionColumnDefinition
|
||||||
|
;
|
||||||
|
|
||||||
|
partitionColumnDefinition
|
||||||
|
: partitionColumnName (COMMA partitionColumnName)*
|
||||||
|
;
|
||||||
|
|
||||||
|
partitionColumnName
|
||||||
|
: ID
|
||||||
|
;
|
||||||
|
|
||||||
|
withOptionDefinition
|
||||||
|
: REVERSE_QUOTE_ID EQUAL REVERSE_QUOTE_ID
|
||||||
|
;
|
||||||
|
|
||||||
|
createDatabase
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
createView
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
createFunction
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
alterTable
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
alterDatabase
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
alterFunction
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
dropTable
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
dropDatabase
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
dropView
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
dropFunction
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
selectStatement
|
||||||
|
:
|
||||||
|
;
|
||||||
|
|
||||||
|
insertStatement
|
||||||
|
:
|
||||||
|
;
|
873
src/lib/flinksql/FlinkSqlLexer.interp
Normal file
873
src/lib/flinksql/FlinkSqlLexer.interp
Normal file
File diff suppressed because one or more lines are too long
2302
src/lib/flinksql/FlinkSqlLexer.js
Normal file
2302
src/lib/flinksql/FlinkSqlLexer.js
Normal file
File diff suppressed because it is too large
Load Diff
561
src/lib/flinksql/FlinkSqlLexer.tokens
Normal file
561
src/lib/flinksql/FlinkSqlLexer.tokens
Normal file
@ -0,0 +1,561 @@
|
|||||||
|
SPACE=1
|
||||||
|
SPEC_MYSQL_COMMENT=2
|
||||||
|
COMMENT_INPUT=3
|
||||||
|
LINE_COMMENT=4
|
||||||
|
SELECT=5
|
||||||
|
FROM=6
|
||||||
|
ADD=7
|
||||||
|
AS=8
|
||||||
|
ALL=9
|
||||||
|
ANY=10
|
||||||
|
DISTINCT=11
|
||||||
|
WHERE=12
|
||||||
|
GROUP=13
|
||||||
|
BY=14
|
||||||
|
GROUPING=15
|
||||||
|
SETS=16
|
||||||
|
CUBE=17
|
||||||
|
ROLLUP=18
|
||||||
|
ORDER=19
|
||||||
|
HAVING=20
|
||||||
|
LIMIT=21
|
||||||
|
AT=22
|
||||||
|
OR=23
|
||||||
|
AND=24
|
||||||
|
IN=25
|
||||||
|
NOT=26
|
||||||
|
NO=27
|
||||||
|
EXISTS=28
|
||||||
|
BETWEEN=29
|
||||||
|
LIKE=30
|
||||||
|
RLIKE=31
|
||||||
|
IS=32
|
||||||
|
TRUE=33
|
||||||
|
FALSE=34
|
||||||
|
NULLS=35
|
||||||
|
ASC=36
|
||||||
|
DESC=37
|
||||||
|
FOR=38
|
||||||
|
INTERVAL=39
|
||||||
|
CASE=40
|
||||||
|
WHEN=41
|
||||||
|
THEN=42
|
||||||
|
ELSE=43
|
||||||
|
END=44
|
||||||
|
JOIN=45
|
||||||
|
CROSS=46
|
||||||
|
OUTER=47
|
||||||
|
INNER=48
|
||||||
|
LEFT=49
|
||||||
|
SEMI=50
|
||||||
|
RIGHT=51
|
||||||
|
FULL=52
|
||||||
|
NATURAL=53
|
||||||
|
ON=54
|
||||||
|
PIVOT=55
|
||||||
|
LATERAL=56
|
||||||
|
WINDOW=57
|
||||||
|
OVER=58
|
||||||
|
PARTITION=59
|
||||||
|
RANGE=60
|
||||||
|
ROWS=61
|
||||||
|
UNBOUNDED=62
|
||||||
|
PRECEDING=63
|
||||||
|
FOLLOWING=64
|
||||||
|
CURRENT=65
|
||||||
|
FIRST=66
|
||||||
|
AFTER=67
|
||||||
|
LAST=68
|
||||||
|
WITH=69
|
||||||
|
VALUES=70
|
||||||
|
CREATE=71
|
||||||
|
TABLE=72
|
||||||
|
DIRECTORY=73
|
||||||
|
VIEW=74
|
||||||
|
REPLACE=75
|
||||||
|
INSERT=76
|
||||||
|
DELETE=77
|
||||||
|
INTO=78
|
||||||
|
DESCRIBE=79
|
||||||
|
EXPLAIN=80
|
||||||
|
FORMAT=81
|
||||||
|
LOGICAL=82
|
||||||
|
CODEGEN=83
|
||||||
|
COST=84
|
||||||
|
CAST=85
|
||||||
|
SHOW=86
|
||||||
|
TABLES=87
|
||||||
|
COLUMNS=88
|
||||||
|
COLUMN=89
|
||||||
|
USE=90
|
||||||
|
PARTITIONS=91
|
||||||
|
FUNCTIONS=92
|
||||||
|
DROP=93
|
||||||
|
UNION=94
|
||||||
|
EXCEPT=95
|
||||||
|
SETMINUS=96
|
||||||
|
INTERSECT=97
|
||||||
|
TO=98
|
||||||
|
TABLESAMPLE=99
|
||||||
|
STRATIFY=100
|
||||||
|
ALTER=101
|
||||||
|
RENAME=102
|
||||||
|
STRUCT=103
|
||||||
|
COMMENT=104
|
||||||
|
SET=105
|
||||||
|
RESET=106
|
||||||
|
DATA=107
|
||||||
|
START=108
|
||||||
|
TRANSACTION=109
|
||||||
|
COMMIT=110
|
||||||
|
ROLLBACK=111
|
||||||
|
MACRO=112
|
||||||
|
IGNORE=113
|
||||||
|
BOTH=114
|
||||||
|
LEADING=115
|
||||||
|
TRAILING=116
|
||||||
|
IF=117
|
||||||
|
POSITION=118
|
||||||
|
EXTRACT=119
|
||||||
|
EQ=120
|
||||||
|
NSEQ=121
|
||||||
|
NEQ=122
|
||||||
|
NEQJ=123
|
||||||
|
LT=124
|
||||||
|
LTE=125
|
||||||
|
GT=126
|
||||||
|
GTE=127
|
||||||
|
PLUS=128
|
||||||
|
MINUS=129
|
||||||
|
ASTERISK=130
|
||||||
|
SLASH=131
|
||||||
|
PERCENT=132
|
||||||
|
DIV=133
|
||||||
|
TILDE=134
|
||||||
|
AMPERSAND=135
|
||||||
|
PIPE=136
|
||||||
|
CONCAT_PIPE=137
|
||||||
|
HAT=138
|
||||||
|
PERCENTLIT=139
|
||||||
|
BUCKET=140
|
||||||
|
OUT=141
|
||||||
|
OF=142
|
||||||
|
SORT=143
|
||||||
|
CLUSTER=144
|
||||||
|
DISTRIBUTE=145
|
||||||
|
OVERWRITE=146
|
||||||
|
TRANSFORM=147
|
||||||
|
REDUCE=148
|
||||||
|
USING=149
|
||||||
|
SERDE=150
|
||||||
|
SERDEPROPERTIES=151
|
||||||
|
RECORDREADER=152
|
||||||
|
RECORDWRITER=153
|
||||||
|
DELIMITED=154
|
||||||
|
FIELDS=155
|
||||||
|
TERMINATED=156
|
||||||
|
COLLECTION=157
|
||||||
|
ITEMS=158
|
||||||
|
KEYS=159
|
||||||
|
ESCAPED=160
|
||||||
|
LINES=161
|
||||||
|
SEPARATED=162
|
||||||
|
FUNCTION=163
|
||||||
|
EXTENDED=164
|
||||||
|
REFRESH=165
|
||||||
|
CLEAR=166
|
||||||
|
CACHE=167
|
||||||
|
UNCACHE=168
|
||||||
|
LAZY=169
|
||||||
|
FORMATTED=170
|
||||||
|
GLOBAL=171
|
||||||
|
TEMPORARY=172
|
||||||
|
OPTIONS=173
|
||||||
|
UNSET=174
|
||||||
|
TBLPROPERTIES=175
|
||||||
|
DBPROPERTIES=176
|
||||||
|
BUCKETS=177
|
||||||
|
SKEWED=178
|
||||||
|
STORED=179
|
||||||
|
DIRECTORIES=180
|
||||||
|
LOCATION=181
|
||||||
|
EXCHANGE=182
|
||||||
|
ARCHIVE=183
|
||||||
|
UNARCHIVE=184
|
||||||
|
FILEFORMAT=185
|
||||||
|
TOUCH=186
|
||||||
|
COMPACT=187
|
||||||
|
CONCATENATE=188
|
||||||
|
CHANGE=189
|
||||||
|
CASCADE=190
|
||||||
|
RESTRICT=191
|
||||||
|
CLUSTERED=192
|
||||||
|
SORTED=193
|
||||||
|
PURGE=194
|
||||||
|
INPUTFORMAT=195
|
||||||
|
OUTPUTFORMAT=196
|
||||||
|
DATABASE=197
|
||||||
|
DATABASES=198
|
||||||
|
DFS=199
|
||||||
|
TRUNCATE=200
|
||||||
|
ANALYZE=201
|
||||||
|
COMPUTE=202
|
||||||
|
LIST=203
|
||||||
|
STATISTICS=204
|
||||||
|
PARTITIONED=205
|
||||||
|
EXTERNAL=206
|
||||||
|
DEFINED=207
|
||||||
|
REVOKE=208
|
||||||
|
GRANT=209
|
||||||
|
LOCK=210
|
||||||
|
UNLOCK=211
|
||||||
|
MSCK=212
|
||||||
|
REPAIR=213
|
||||||
|
RECOVER=214
|
||||||
|
EXPORT=215
|
||||||
|
IMPORT=216
|
||||||
|
LOAD=217
|
||||||
|
ROLE=218
|
||||||
|
ROLES=219
|
||||||
|
COMPACTIONS=220
|
||||||
|
PRINCIPALS=221
|
||||||
|
TRANSACTIONS=222
|
||||||
|
INDEX=223
|
||||||
|
INDEXES=224
|
||||||
|
LOCKS=225
|
||||||
|
OPTION=226
|
||||||
|
ANTI=227
|
||||||
|
LOCAL=228
|
||||||
|
INPATH=229
|
||||||
|
WATERMARK=230
|
||||||
|
UNNEST=231
|
||||||
|
MATCH_RECOGNIZE=232
|
||||||
|
MEASURES=233
|
||||||
|
ONE=234
|
||||||
|
PER=235
|
||||||
|
MATCH=236
|
||||||
|
SKIP1=237
|
||||||
|
NEXT=238
|
||||||
|
PAST=239
|
||||||
|
PATTERN=240
|
||||||
|
WITHIN=241
|
||||||
|
DEFINE=242
|
||||||
|
BIGINT_LITERAL=243
|
||||||
|
SMALLINT_LITERAL=244
|
||||||
|
TINYINT_LITERAL=245
|
||||||
|
INTEGER_VALUE=246
|
||||||
|
DECIMAL_VALUE=247
|
||||||
|
DOUBLE_LITERAL=248
|
||||||
|
BIGDECIMAL_LITERAL=249
|
||||||
|
IDENTIFIER=250
|
||||||
|
BACKQUOTED_IDENTIFIER=251
|
||||||
|
SIMPLE_COMMENT=252
|
||||||
|
BRACKETED_EMPTY_COMMENT=253
|
||||||
|
BRACKETED_COMMENT=254
|
||||||
|
WS=255
|
||||||
|
UNRECOGNIZED=256
|
||||||
|
REVERSE_QUOTE_ID=257
|
||||||
|
DOT_ID=258
|
||||||
|
ID=259
|
||||||
|
STRING=260
|
||||||
|
ARRAY=261
|
||||||
|
MAP=262
|
||||||
|
CHAR=263
|
||||||
|
VARCHAR=264
|
||||||
|
BINARY=265
|
||||||
|
VARBINARY=266
|
||||||
|
BYTES=267
|
||||||
|
DECIMAL=268
|
||||||
|
TINYINT=269
|
||||||
|
SMALLINT=270
|
||||||
|
INT=271
|
||||||
|
BIGINT=272
|
||||||
|
FLOAT=273
|
||||||
|
DOUBLE=274
|
||||||
|
DATE=275
|
||||||
|
TIME=276
|
||||||
|
TIMESTAMP=277
|
||||||
|
MULTISET=278
|
||||||
|
BOOLEAN=279
|
||||||
|
RAW=280
|
||||||
|
ROW=281
|
||||||
|
NULL=282
|
||||||
|
EQUAL=283
|
||||||
|
COMMA=284
|
||||||
|
'SELECT'=5
|
||||||
|
'FROM'=6
|
||||||
|
'ADD'=7
|
||||||
|
'AS'=8
|
||||||
|
'ALL'=9
|
||||||
|
'ANY'=10
|
||||||
|
'DISTINCT'=11
|
||||||
|
'WHERE'=12
|
||||||
|
'GROUP'=13
|
||||||
|
'BY'=14
|
||||||
|
'GROUPING'=15
|
||||||
|
'SETS'=16
|
||||||
|
'CUBE'=17
|
||||||
|
'ROLLUP'=18
|
||||||
|
'ORDER'=19
|
||||||
|
'HAVING'=20
|
||||||
|
'LIMIT'=21
|
||||||
|
'AT'=22
|
||||||
|
'OR'=23
|
||||||
|
'AND'=24
|
||||||
|
'IN'=25
|
||||||
|
'NOT'=26
|
||||||
|
'NO'=27
|
||||||
|
'EXISTS'=28
|
||||||
|
'BETWEEN'=29
|
||||||
|
'LIKE'=30
|
||||||
|
'RLIKE'=31
|
||||||
|
'IS'=32
|
||||||
|
'TRUE'=33
|
||||||
|
'FALSE'=34
|
||||||
|
'NULLS'=35
|
||||||
|
'ASC'=36
|
||||||
|
'DESC'=37
|
||||||
|
'FOR'=38
|
||||||
|
'INTERVAL'=39
|
||||||
|
'CASE'=40
|
||||||
|
'WHEN'=41
|
||||||
|
'THEN'=42
|
||||||
|
'ELSE'=43
|
||||||
|
'END'=44
|
||||||
|
'JOIN'=45
|
||||||
|
'CROSS'=46
|
||||||
|
'OUTER'=47
|
||||||
|
'INNER'=48
|
||||||
|
'LEFT'=49
|
||||||
|
'SEMI'=50
|
||||||
|
'RIGHT'=51
|
||||||
|
'FULL'=52
|
||||||
|
'NATURAL'=53
|
||||||
|
'ON'=54
|
||||||
|
'PIVOT'=55
|
||||||
|
'LATERAL'=56
|
||||||
|
'WINDOW'=57
|
||||||
|
'OVER'=58
|
||||||
|
'PARTITION'=59
|
||||||
|
'RANGE'=60
|
||||||
|
'ROWS'=61
|
||||||
|
'UNBOUNDED'=62
|
||||||
|
'PRECEDING'=63
|
||||||
|
'FOLLOWING'=64
|
||||||
|
'CURRENT'=65
|
||||||
|
'FIRST'=66
|
||||||
|
'AFTER'=67
|
||||||
|
'LAST'=68
|
||||||
|
'WITH'=69
|
||||||
|
'VALUES'=70
|
||||||
|
'CREATE'=71
|
||||||
|
'TABLE'=72
|
||||||
|
'DIRECTORY'=73
|
||||||
|
'VIEW'=74
|
||||||
|
'REPLACE'=75
|
||||||
|
'INSERT'=76
|
||||||
|
'DELETE'=77
|
||||||
|
'INTO'=78
|
||||||
|
'DESCRIBE'=79
|
||||||
|
'EXPLAIN'=80
|
||||||
|
'FORMAT'=81
|
||||||
|
'LOGICAL'=82
|
||||||
|
'CODEGEN'=83
|
||||||
|
'COST'=84
|
||||||
|
'CAST'=85
|
||||||
|
'SHOW'=86
|
||||||
|
'TABLES'=87
|
||||||
|
'COLUMNS'=88
|
||||||
|
'COLUMN'=89
|
||||||
|
'USE'=90
|
||||||
|
'PARTITIONS'=91
|
||||||
|
'FUNCTIONS'=92
|
||||||
|
'DROP'=93
|
||||||
|
'UNION'=94
|
||||||
|
'EXCEPT'=95
|
||||||
|
'SETMINUS'=96
|
||||||
|
'INTERSECT'=97
|
||||||
|
'TO'=98
|
||||||
|
'TABLESAMPLE'=99
|
||||||
|
'STRATIFY'=100
|
||||||
|
'ALTER'=101
|
||||||
|
'RENAME'=102
|
||||||
|
'STRUCT'=103
|
||||||
|
'COMMENT'=104
|
||||||
|
'SET'=105
|
||||||
|
'RESET'=106
|
||||||
|
'DATA'=107
|
||||||
|
'START'=108
|
||||||
|
'TRANSACTION'=109
|
||||||
|
'COMMIT'=110
|
||||||
|
'ROLLBACK'=111
|
||||||
|
'MACRO'=112
|
||||||
|
'IGNORE'=113
|
||||||
|
'BOTH'=114
|
||||||
|
'LEADING'=115
|
||||||
|
'TRAILING'=116
|
||||||
|
'IF'=117
|
||||||
|
'POSITION'=118
|
||||||
|
'EXTRACT'=119
|
||||||
|
'EQ'=120
|
||||||
|
'NSEQ'=121
|
||||||
|
'NEQ'=122
|
||||||
|
'NEQJ'=123
|
||||||
|
'LT'=124
|
||||||
|
'LTE'=125
|
||||||
|
'GT'=126
|
||||||
|
'GTE'=127
|
||||||
|
'PLUS'=128
|
||||||
|
'MINUS'=129
|
||||||
|
'ASTERISK'=130
|
||||||
|
'SLASH'=131
|
||||||
|
'PERCENT'=132
|
||||||
|
'DIV'=133
|
||||||
|
'TILDE'=134
|
||||||
|
'AMPERSAND'=135
|
||||||
|
'PIPE'=136
|
||||||
|
'CONCAT_PIPE'=137
|
||||||
|
'HAT'=138
|
||||||
|
'PERCENTLIT'=139
|
||||||
|
'BUCKET'=140
|
||||||
|
'OUT'=141
|
||||||
|
'OF'=142
|
||||||
|
'SORT'=143
|
||||||
|
'CLUSTER'=144
|
||||||
|
'DISTRIBUTE'=145
|
||||||
|
'OVERWRITE'=146
|
||||||
|
'TRANSFORM'=147
|
||||||
|
'REDUCE'=148
|
||||||
|
'USING'=149
|
||||||
|
'SERDE'=150
|
||||||
|
'SERDEPROPERTIES'=151
|
||||||
|
'RECORDREADER'=152
|
||||||
|
'RECORDWRITER'=153
|
||||||
|
'DELIMITED'=154
|
||||||
|
'FIELDS'=155
|
||||||
|
'TERMINATED'=156
|
||||||
|
'COLLECTION'=157
|
||||||
|
'ITEMS'=158
|
||||||
|
'KEYS'=159
|
||||||
|
'ESCAPED'=160
|
||||||
|
'LINES'=161
|
||||||
|
'SEPARATED'=162
|
||||||
|
'FUNCTION'=163
|
||||||
|
'EXTENDED'=164
|
||||||
|
'REFRESH'=165
|
||||||
|
'CLEAR'=166
|
||||||
|
'CACHE'=167
|
||||||
|
'UNCACHE'=168
|
||||||
|
'LAZY'=169
|
||||||
|
'FORMATTED'=170
|
||||||
|
'GLOBAL'=171
|
||||||
|
'TEMPORARY'=172
|
||||||
|
'OPTIONS'=173
|
||||||
|
'UNSET'=174
|
||||||
|
'TBLPROPERTIES'=175
|
||||||
|
'DBPROPERTIES'=176
|
||||||
|
'BUCKETS'=177
|
||||||
|
'SKEWED'=178
|
||||||
|
'STORED'=179
|
||||||
|
'DIRECTORIES'=180
|
||||||
|
'LOCATION'=181
|
||||||
|
'EXCHANGE'=182
|
||||||
|
'ARCHIVE'=183
|
||||||
|
'UNARCHIVE'=184
|
||||||
|
'FILEFORMAT'=185
|
||||||
|
'TOUCH'=186
|
||||||
|
'COMPACT'=187
|
||||||
|
'CONCATENATE'=188
|
||||||
|
'CHANGE'=189
|
||||||
|
'CASCADE'=190
|
||||||
|
'RESTRICT'=191
|
||||||
|
'CLUSTERED'=192
|
||||||
|
'SORTED'=193
|
||||||
|
'PURGE'=194
|
||||||
|
'INPUTFORMAT'=195
|
||||||
|
'OUTPUTFORMAT'=196
|
||||||
|
'DATABASE'=197
|
||||||
|
'DATABASES'=198
|
||||||
|
'DFS'=199
|
||||||
|
'TRUNCATE'=200
|
||||||
|
'ANALYZE'=201
|
||||||
|
'COMPUTE'=202
|
||||||
|
'LIST'=203
|
||||||
|
'STATISTICS'=204
|
||||||
|
'PARTITIONED'=205
|
||||||
|
'EXTERNAL'=206
|
||||||
|
'DEFINED'=207
|
||||||
|
'REVOKE'=208
|
||||||
|
'GRANT'=209
|
||||||
|
'LOCK'=210
|
||||||
|
'UNLOCK'=211
|
||||||
|
'MSCK'=212
|
||||||
|
'REPAIR'=213
|
||||||
|
'RECOVER'=214
|
||||||
|
'EXPORT'=215
|
||||||
|
'IMPORT'=216
|
||||||
|
'LOAD'=217
|
||||||
|
'ROLE'=218
|
||||||
|
'ROLES'=219
|
||||||
|
'COMPACTIONS'=220
|
||||||
|
'PRINCIPALS'=221
|
||||||
|
'TRANSACTIONS'=222
|
||||||
|
'INDEX'=223
|
||||||
|
'INDEXES'=224
|
||||||
|
'LOCKS'=225
|
||||||
|
'OPTION'=226
|
||||||
|
'ANTI'=227
|
||||||
|
'LOCAL'=228
|
||||||
|
'INPATH'=229
|
||||||
|
'WATERMARK'=230
|
||||||
|
'UNNEST'=231
|
||||||
|
'MATCH_RECOGNIZE'=232
|
||||||
|
'MEASURES'=233
|
||||||
|
'ONE'=234
|
||||||
|
'PER'=235
|
||||||
|
'MATCH'=236
|
||||||
|
'SKIP1'=237
|
||||||
|
'NEXT'=238
|
||||||
|
'PAST'=239
|
||||||
|
'PATTERN'=240
|
||||||
|
'WITHIN'=241
|
||||||
|
'DEFINE'=242
|
||||||
|
'BIGINT_LITERAL'=243
|
||||||
|
'SMALLINT_LITERAL'=244
|
||||||
|
'TINYINT_LITERAL'=245
|
||||||
|
'INTEGER_VALUE'=246
|
||||||
|
'DECIMAL_VALUE'=247
|
||||||
|
'DOUBLE_LITERAL'=248
|
||||||
|
'BIGDECIMAL_LITERAL'=249
|
||||||
|
'IDENTIFIER'=250
|
||||||
|
'BACKQUOTED_IDENTIFIER'=251
|
||||||
|
'SIMPLE_COMMENT'=252
|
||||||
|
'BRACKETED_EMPTY_COMMENT'=253
|
||||||
|
'BRACKETED_COMMENT'=254
|
||||||
|
'WS'=255
|
||||||
|
'UNRECOGNIZED'=256
|
||||||
|
'STRING'=260
|
||||||
|
'ARRAY'=261
|
||||||
|
'MAP'=262
|
||||||
|
'CHAR'=263
|
||||||
|
'VARCHAR'=264
|
||||||
|
'BINARY'=265
|
||||||
|
'VARBINARY'=266
|
||||||
|
'BYTES'=267
|
||||||
|
'DECIMAL'=268
|
||||||
|
'TINYINT'=269
|
||||||
|
'SMALLINT'=270
|
||||||
|
'INT'=271
|
||||||
|
'BIGINT'=272
|
||||||
|
'FLOAT'=273
|
||||||
|
'DOUBLE'=274
|
||||||
|
'DATE'=275
|
||||||
|
'TIME'=276
|
||||||
|
'TIMESTAMP'=277
|
||||||
|
'MULTISET'=278
|
||||||
|
'BOOLEAN'=279
|
||||||
|
'RAW'=280
|
||||||
|
'ROW'=281
|
||||||
|
'NULL'=282
|
||||||
|
'='=283
|
||||||
|
','=284
|
605
src/lib/flinksql/FlinkSqlParser.interp
Normal file
605
src/lib/flinksql/FlinkSqlParser.interp
Normal file
@ -0,0 +1,605 @@
|
|||||||
|
token literal names:
|
||||||
|
null
|
||||||
|
null
|
||||||
|
null
|
||||||
|
null
|
||||||
|
null
|
||||||
|
'SELECT'
|
||||||
|
'FROM'
|
||||||
|
'ADD'
|
||||||
|
'AS'
|
||||||
|
'ALL'
|
||||||
|
'ANY'
|
||||||
|
'DISTINCT'
|
||||||
|
'WHERE'
|
||||||
|
'GROUP'
|
||||||
|
'BY'
|
||||||
|
'GROUPING'
|
||||||
|
'SETS'
|
||||||
|
'CUBE'
|
||||||
|
'ROLLUP'
|
||||||
|
'ORDER'
|
||||||
|
'HAVING'
|
||||||
|
'LIMIT'
|
||||||
|
'AT'
|
||||||
|
'OR'
|
||||||
|
'AND'
|
||||||
|
'IN'
|
||||||
|
'NOT'
|
||||||
|
'NO'
|
||||||
|
'EXISTS'
|
||||||
|
'BETWEEN'
|
||||||
|
'LIKE'
|
||||||
|
'RLIKE'
|
||||||
|
'IS'
|
||||||
|
'TRUE'
|
||||||
|
'FALSE'
|
||||||
|
'NULLS'
|
||||||
|
'ASC'
|
||||||
|
'DESC'
|
||||||
|
'FOR'
|
||||||
|
'INTERVAL'
|
||||||
|
'CASE'
|
||||||
|
'WHEN'
|
||||||
|
'THEN'
|
||||||
|
'ELSE'
|
||||||
|
'END'
|
||||||
|
'JOIN'
|
||||||
|
'CROSS'
|
||||||
|
'OUTER'
|
||||||
|
'INNER'
|
||||||
|
'LEFT'
|
||||||
|
'SEMI'
|
||||||
|
'RIGHT'
|
||||||
|
'FULL'
|
||||||
|
'NATURAL'
|
||||||
|
'ON'
|
||||||
|
'PIVOT'
|
||||||
|
'LATERAL'
|
||||||
|
'WINDOW'
|
||||||
|
'OVER'
|
||||||
|
'PARTITION'
|
||||||
|
'RANGE'
|
||||||
|
'ROWS'
|
||||||
|
'UNBOUNDED'
|
||||||
|
'PRECEDING'
|
||||||
|
'FOLLOWING'
|
||||||
|
'CURRENT'
|
||||||
|
'FIRST'
|
||||||
|
'AFTER'
|
||||||
|
'LAST'
|
||||||
|
'WITH'
|
||||||
|
'VALUES'
|
||||||
|
'CREATE'
|
||||||
|
'TABLE'
|
||||||
|
'DIRECTORY'
|
||||||
|
'VIEW'
|
||||||
|
'REPLACE'
|
||||||
|
'INSERT'
|
||||||
|
'DELETE'
|
||||||
|
'INTO'
|
||||||
|
'DESCRIBE'
|
||||||
|
'EXPLAIN'
|
||||||
|
'FORMAT'
|
||||||
|
'LOGICAL'
|
||||||
|
'CODEGEN'
|
||||||
|
'COST'
|
||||||
|
'CAST'
|
||||||
|
'SHOW'
|
||||||
|
'TABLES'
|
||||||
|
'COLUMNS'
|
||||||
|
'COLUMN'
|
||||||
|
'USE'
|
||||||
|
'PARTITIONS'
|
||||||
|
'FUNCTIONS'
|
||||||
|
'DROP'
|
||||||
|
'UNION'
|
||||||
|
'EXCEPT'
|
||||||
|
'SETMINUS'
|
||||||
|
'INTERSECT'
|
||||||
|
'TO'
|
||||||
|
'TABLESAMPLE'
|
||||||
|
'STRATIFY'
|
||||||
|
'ALTER'
|
||||||
|
'RENAME'
|
||||||
|
'STRUCT'
|
||||||
|
'COMMENT'
|
||||||
|
'SET'
|
||||||
|
'RESET'
|
||||||
|
'DATA'
|
||||||
|
'START'
|
||||||
|
'TRANSACTION'
|
||||||
|
'COMMIT'
|
||||||
|
'ROLLBACK'
|
||||||
|
'MACRO'
|
||||||
|
'IGNORE'
|
||||||
|
'BOTH'
|
||||||
|
'LEADING'
|
||||||
|
'TRAILING'
|
||||||
|
'IF'
|
||||||
|
'POSITION'
|
||||||
|
'EXTRACT'
|
||||||
|
'EQ'
|
||||||
|
'NSEQ'
|
||||||
|
'NEQ'
|
||||||
|
'NEQJ'
|
||||||
|
'LT'
|
||||||
|
'LTE'
|
||||||
|
'GT'
|
||||||
|
'GTE'
|
||||||
|
'PLUS'
|
||||||
|
'MINUS'
|
||||||
|
'ASTERISK'
|
||||||
|
'SLASH'
|
||||||
|
'PERCENT'
|
||||||
|
'DIV'
|
||||||
|
'TILDE'
|
||||||
|
'AMPERSAND'
|
||||||
|
'PIPE'
|
||||||
|
'CONCAT_PIPE'
|
||||||
|
'HAT'
|
||||||
|
'PERCENTLIT'
|
||||||
|
'BUCKET'
|
||||||
|
'OUT'
|
||||||
|
'OF'
|
||||||
|
'SORT'
|
||||||
|
'CLUSTER'
|
||||||
|
'DISTRIBUTE'
|
||||||
|
'OVERWRITE'
|
||||||
|
'TRANSFORM'
|
||||||
|
'REDUCE'
|
||||||
|
'USING'
|
||||||
|
'SERDE'
|
||||||
|
'SERDEPROPERTIES'
|
||||||
|
'RECORDREADER'
|
||||||
|
'RECORDWRITER'
|
||||||
|
'DELIMITED'
|
||||||
|
'FIELDS'
|
||||||
|
'TERMINATED'
|
||||||
|
'COLLECTION'
|
||||||
|
'ITEMS'
|
||||||
|
'KEYS'
|
||||||
|
'ESCAPED'
|
||||||
|
'LINES'
|
||||||
|
'SEPARATED'
|
||||||
|
'FUNCTION'
|
||||||
|
'EXTENDED'
|
||||||
|
'REFRESH'
|
||||||
|
'CLEAR'
|
||||||
|
'CACHE'
|
||||||
|
'UNCACHE'
|
||||||
|
'LAZY'
|
||||||
|
'FORMATTED'
|
||||||
|
'GLOBAL'
|
||||||
|
'TEMPORARY'
|
||||||
|
'OPTIONS'
|
||||||
|
'UNSET'
|
||||||
|
'TBLPROPERTIES'
|
||||||
|
'DBPROPERTIES'
|
||||||
|
'BUCKETS'
|
||||||
|
'SKEWED'
|
||||||
|
'STORED'
|
||||||
|
'DIRECTORIES'
|
||||||
|
'LOCATION'
|
||||||
|
'EXCHANGE'
|
||||||
|
'ARCHIVE'
|
||||||
|
'UNARCHIVE'
|
||||||
|
'FILEFORMAT'
|
||||||
|
'TOUCH'
|
||||||
|
'COMPACT'
|
||||||
|
'CONCATENATE'
|
||||||
|
'CHANGE'
|
||||||
|
'CASCADE'
|
||||||
|
'RESTRICT'
|
||||||
|
'CLUSTERED'
|
||||||
|
'SORTED'
|
||||||
|
'PURGE'
|
||||||
|
'INPUTFORMAT'
|
||||||
|
'OUTPUTFORMAT'
|
||||||
|
'DATABASE'
|
||||||
|
'DATABASES'
|
||||||
|
'DFS'
|
||||||
|
'TRUNCATE'
|
||||||
|
'ANALYZE'
|
||||||
|
'COMPUTE'
|
||||||
|
'LIST'
|
||||||
|
'STATISTICS'
|
||||||
|
'PARTITIONED'
|
||||||
|
'EXTERNAL'
|
||||||
|
'DEFINED'
|
||||||
|
'REVOKE'
|
||||||
|
'GRANT'
|
||||||
|
'LOCK'
|
||||||
|
'UNLOCK'
|
||||||
|
'MSCK'
|
||||||
|
'REPAIR'
|
||||||
|
'RECOVER'
|
||||||
|
'EXPORT'
|
||||||
|
'IMPORT'
|
||||||
|
'LOAD'
|
||||||
|
'ROLE'
|
||||||
|
'ROLES'
|
||||||
|
'COMPACTIONS'
|
||||||
|
'PRINCIPALS'
|
||||||
|
'TRANSACTIONS'
|
||||||
|
'INDEX'
|
||||||
|
'INDEXES'
|
||||||
|
'LOCKS'
|
||||||
|
'OPTION'
|
||||||
|
'ANTI'
|
||||||
|
'LOCAL'
|
||||||
|
'INPATH'
|
||||||
|
'WATERMARK'
|
||||||
|
'UNNEST'
|
||||||
|
'MATCH_RECOGNIZE'
|
||||||
|
'MEASURES'
|
||||||
|
'ONE'
|
||||||
|
'PER'
|
||||||
|
'MATCH'
|
||||||
|
'SKIP1'
|
||||||
|
'NEXT'
|
||||||
|
'PAST'
|
||||||
|
'PATTERN'
|
||||||
|
'WITHIN'
|
||||||
|
'DEFINE'
|
||||||
|
'BIGINT_LITERAL'
|
||||||
|
'SMALLINT_LITERAL'
|
||||||
|
'TINYINT_LITERAL'
|
||||||
|
'INTEGER_VALUE'
|
||||||
|
'DECIMAL_VALUE'
|
||||||
|
'DOUBLE_LITERAL'
|
||||||
|
'BIGDECIMAL_LITERAL'
|
||||||
|
'IDENTIFIER'
|
||||||
|
'BACKQUOTED_IDENTIFIER'
|
||||||
|
'SIMPLE_COMMENT'
|
||||||
|
'BRACKETED_EMPTY_COMMENT'
|
||||||
|
'BRACKETED_COMMENT'
|
||||||
|
'WS'
|
||||||
|
'UNRECOGNIZED'
|
||||||
|
null
|
||||||
|
null
|
||||||
|
null
|
||||||
|
'STRING'
|
||||||
|
'ARRAY'
|
||||||
|
'MAP'
|
||||||
|
'CHAR'
|
||||||
|
'VARCHAR'
|
||||||
|
'BINARY'
|
||||||
|
'VARBINARY'
|
||||||
|
'BYTES'
|
||||||
|
'DECIMAL'
|
||||||
|
'TINYINT'
|
||||||
|
'SMALLINT'
|
||||||
|
'INT'
|
||||||
|
'BIGINT'
|
||||||
|
'FLOAT'
|
||||||
|
'DOUBLE'
|
||||||
|
'DATE'
|
||||||
|
'TIME'
|
||||||
|
'TIMESTAMP'
|
||||||
|
'MULTISET'
|
||||||
|
'BOOLEAN'
|
||||||
|
'RAW'
|
||||||
|
'ROW'
|
||||||
|
'NULL'
|
||||||
|
'='
|
||||||
|
','
|
||||||
|
|
||||||
|
token symbolic names:
|
||||||
|
null
|
||||||
|
SPACE
|
||||||
|
SPEC_MYSQL_COMMENT
|
||||||
|
COMMENT_INPUT
|
||||||
|
LINE_COMMENT
|
||||||
|
SELECT
|
||||||
|
FROM
|
||||||
|
ADD
|
||||||
|
AS
|
||||||
|
ALL
|
||||||
|
ANY
|
||||||
|
DISTINCT
|
||||||
|
WHERE
|
||||||
|
GROUP
|
||||||
|
BY
|
||||||
|
GROUPING
|
||||||
|
SETS
|
||||||
|
CUBE
|
||||||
|
ROLLUP
|
||||||
|
ORDER
|
||||||
|
HAVING
|
||||||
|
LIMIT
|
||||||
|
AT
|
||||||
|
OR
|
||||||
|
AND
|
||||||
|
IN
|
||||||
|
NOT
|
||||||
|
NO
|
||||||
|
EXISTS
|
||||||
|
BETWEEN
|
||||||
|
LIKE
|
||||||
|
RLIKE
|
||||||
|
IS
|
||||||
|
TRUE
|
||||||
|
FALSE
|
||||||
|
NULLS
|
||||||
|
ASC
|
||||||
|
DESC
|
||||||
|
FOR
|
||||||
|
INTERVAL
|
||||||
|
CASE
|
||||||
|
WHEN
|
||||||
|
THEN
|
||||||
|
ELSE
|
||||||
|
END
|
||||||
|
JOIN
|
||||||
|
CROSS
|
||||||
|
OUTER
|
||||||
|
INNER
|
||||||
|
LEFT
|
||||||
|
SEMI
|
||||||
|
RIGHT
|
||||||
|
FULL
|
||||||
|
NATURAL
|
||||||
|
ON
|
||||||
|
PIVOT
|
||||||
|
LATERAL
|
||||||
|
WINDOW
|
||||||
|
OVER
|
||||||
|
PARTITION
|
||||||
|
RANGE
|
||||||
|
ROWS
|
||||||
|
UNBOUNDED
|
||||||
|
PRECEDING
|
||||||
|
FOLLOWING
|
||||||
|
CURRENT
|
||||||
|
FIRST
|
||||||
|
AFTER
|
||||||
|
LAST
|
||||||
|
WITH
|
||||||
|
VALUES
|
||||||
|
CREATE
|
||||||
|
TABLE
|
||||||
|
DIRECTORY
|
||||||
|
VIEW
|
||||||
|
REPLACE
|
||||||
|
INSERT
|
||||||
|
DELETE
|
||||||
|
INTO
|
||||||
|
DESCRIBE
|
||||||
|
EXPLAIN
|
||||||
|
FORMAT
|
||||||
|
LOGICAL
|
||||||
|
CODEGEN
|
||||||
|
COST
|
||||||
|
CAST
|
||||||
|
SHOW
|
||||||
|
TABLES
|
||||||
|
COLUMNS
|
||||||
|
COLUMN
|
||||||
|
USE
|
||||||
|
PARTITIONS
|
||||||
|
FUNCTIONS
|
||||||
|
DROP
|
||||||
|
UNION
|
||||||
|
EXCEPT
|
||||||
|
SETMINUS
|
||||||
|
INTERSECT
|
||||||
|
TO
|
||||||
|
TABLESAMPLE
|
||||||
|
STRATIFY
|
||||||
|
ALTER
|
||||||
|
RENAME
|
||||||
|
STRUCT
|
||||||
|
COMMENT
|
||||||
|
SET
|
||||||
|
RESET
|
||||||
|
DATA
|
||||||
|
START
|
||||||
|
TRANSACTION
|
||||||
|
COMMIT
|
||||||
|
ROLLBACK
|
||||||
|
MACRO
|
||||||
|
IGNORE
|
||||||
|
BOTH
|
||||||
|
LEADING
|
||||||
|
TRAILING
|
||||||
|
IF
|
||||||
|
POSITION
|
||||||
|
EXTRACT
|
||||||
|
EQ
|
||||||
|
NSEQ
|
||||||
|
NEQ
|
||||||
|
NEQJ
|
||||||
|
LT
|
||||||
|
LTE
|
||||||
|
GT
|
||||||
|
GTE
|
||||||
|
PLUS
|
||||||
|
MINUS
|
||||||
|
ASTERISK
|
||||||
|
SLASH
|
||||||
|
PERCENT
|
||||||
|
DIV
|
||||||
|
TILDE
|
||||||
|
AMPERSAND
|
||||||
|
PIPE
|
||||||
|
CONCAT_PIPE
|
||||||
|
HAT
|
||||||
|
PERCENTLIT
|
||||||
|
BUCKET
|
||||||
|
OUT
|
||||||
|
OF
|
||||||
|
SORT
|
||||||
|
CLUSTER
|
||||||
|
DISTRIBUTE
|
||||||
|
OVERWRITE
|
||||||
|
TRANSFORM
|
||||||
|
REDUCE
|
||||||
|
USING
|
||||||
|
SERDE
|
||||||
|
SERDEPROPERTIES
|
||||||
|
RECORDREADER
|
||||||
|
RECORDWRITER
|
||||||
|
DELIMITED
|
||||||
|
FIELDS
|
||||||
|
TERMINATED
|
||||||
|
COLLECTION
|
||||||
|
ITEMS
|
||||||
|
KEYS
|
||||||
|
ESCAPED
|
||||||
|
LINES
|
||||||
|
SEPARATED
|
||||||
|
FUNCTION
|
||||||
|
EXTENDED
|
||||||
|
REFRESH
|
||||||
|
CLEAR
|
||||||
|
CACHE
|
||||||
|
UNCACHE
|
||||||
|
LAZY
|
||||||
|
FORMATTED
|
||||||
|
GLOBAL
|
||||||
|
TEMPORARY
|
||||||
|
OPTIONS
|
||||||
|
UNSET
|
||||||
|
TBLPROPERTIES
|
||||||
|
DBPROPERTIES
|
||||||
|
BUCKETS
|
||||||
|
SKEWED
|
||||||
|
STORED
|
||||||
|
DIRECTORIES
|
||||||
|
LOCATION
|
||||||
|
EXCHANGE
|
||||||
|
ARCHIVE
|
||||||
|
UNARCHIVE
|
||||||
|
FILEFORMAT
|
||||||
|
TOUCH
|
||||||
|
COMPACT
|
||||||
|
CONCATENATE
|
||||||
|
CHANGE
|
||||||
|
CASCADE
|
||||||
|
RESTRICT
|
||||||
|
CLUSTERED
|
||||||
|
SORTED
|
||||||
|
PURGE
|
||||||
|
INPUTFORMAT
|
||||||
|
OUTPUTFORMAT
|
||||||
|
DATABASE
|
||||||
|
DATABASES
|
||||||
|
DFS
|
||||||
|
TRUNCATE
|
||||||
|
ANALYZE
|
||||||
|
COMPUTE
|
||||||
|
LIST
|
||||||
|
STATISTICS
|
||||||
|
PARTITIONED
|
||||||
|
EXTERNAL
|
||||||
|
DEFINED
|
||||||
|
REVOKE
|
||||||
|
GRANT
|
||||||
|
LOCK
|
||||||
|
UNLOCK
|
||||||
|
MSCK
|
||||||
|
REPAIR
|
||||||
|
RECOVER
|
||||||
|
EXPORT
|
||||||
|
IMPORT
|
||||||
|
LOAD
|
||||||
|
ROLE
|
||||||
|
ROLES
|
||||||
|
COMPACTIONS
|
||||||
|
PRINCIPALS
|
||||||
|
TRANSACTIONS
|
||||||
|
INDEX
|
||||||
|
INDEXES
|
||||||
|
LOCKS
|
||||||
|
OPTION
|
||||||
|
ANTI
|
||||||
|
LOCAL
|
||||||
|
INPATH
|
||||||
|
WATERMARK
|
||||||
|
UNNEST
|
||||||
|
MATCH_RECOGNIZE
|
||||||
|
MEASURES
|
||||||
|
ONE
|
||||||
|
PER
|
||||||
|
MATCH
|
||||||
|
SKIP1
|
||||||
|
NEXT
|
||||||
|
PAST
|
||||||
|
PATTERN
|
||||||
|
WITHIN
|
||||||
|
DEFINE
|
||||||
|
BIGINT_LITERAL
|
||||||
|
SMALLINT_LITERAL
|
||||||
|
TINYINT_LITERAL
|
||||||
|
INTEGER_VALUE
|
||||||
|
DECIMAL_VALUE
|
||||||
|
DOUBLE_LITERAL
|
||||||
|
BIGDECIMAL_LITERAL
|
||||||
|
IDENTIFIER
|
||||||
|
BACKQUOTED_IDENTIFIER
|
||||||
|
SIMPLE_COMMENT
|
||||||
|
BRACKETED_EMPTY_COMMENT
|
||||||
|
BRACKETED_COMMENT
|
||||||
|
WS
|
||||||
|
UNRECOGNIZED
|
||||||
|
REVERSE_QUOTE_ID
|
||||||
|
DOT_ID
|
||||||
|
ID
|
||||||
|
STRING
|
||||||
|
ARRAY
|
||||||
|
MAP
|
||||||
|
CHAR
|
||||||
|
VARCHAR
|
||||||
|
BINARY
|
||||||
|
VARBINARY
|
||||||
|
BYTES
|
||||||
|
DECIMAL
|
||||||
|
TINYINT
|
||||||
|
SMALLINT
|
||||||
|
INT
|
||||||
|
BIGINT
|
||||||
|
FLOAT
|
||||||
|
DOUBLE
|
||||||
|
DATE
|
||||||
|
TIME
|
||||||
|
TIMESTAMP
|
||||||
|
MULTISET
|
||||||
|
BOOLEAN
|
||||||
|
RAW
|
||||||
|
ROW
|
||||||
|
NULL
|
||||||
|
EQUAL
|
||||||
|
COMMA
|
||||||
|
|
||||||
|
rule names:
|
||||||
|
program
|
||||||
|
statement
|
||||||
|
sqlStatement
|
||||||
|
ddlStatement
|
||||||
|
dmlStatement
|
||||||
|
createTable
|
||||||
|
tableName
|
||||||
|
columnOptionDefinition
|
||||||
|
columnName
|
||||||
|
columnType
|
||||||
|
partitionDefinition
|
||||||
|
partitionColumnDefinition
|
||||||
|
partitionColumnName
|
||||||
|
withOptionDefinition
|
||||||
|
createDatabase
|
||||||
|
createView
|
||||||
|
createFunction
|
||||||
|
alterTable
|
||||||
|
alterDatabase
|
||||||
|
alterFunction
|
||||||
|
dropTable
|
||||||
|
dropDatabase
|
||||||
|
dropView
|
||||||
|
dropFunction
|
||||||
|
selectStatement
|
||||||
|
insertStatement
|
||||||
|
|
||||||
|
|
||||||
|
atn:
|
||||||
|
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 286, 161, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 5, 4, 63, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 76, 10, 5, 3, 6, 3, 6, 5, 6, 80, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 88, 10, 7, 12, 7, 14, 7, 91, 11, 7, 3, 7, 5, 7, 94, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 100, 10, 7, 12, 7, 14, 7, 103, 11, 7, 3, 8, 3, 8, 7, 8, 107, 10, 8, 12, 8, 14, 8, 110, 11, 8, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 7, 13, 126, 10, 13, 12, 13, 14, 13, 129, 11, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 19, 3, 19, 3, 20, 3, 20, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 24, 3, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 108, 2, 28, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 2, 3, 3, 2, 262, 284, 2, 151, 2, 54, 3, 2, 2, 2, 4, 57, 3, 2, 2, 2, 6, 62, 3, 2, 2, 2, 8, 75, 3, 2, 2, 2, 10, 79, 3, 2, 2, 2, 12, 81, 3, 2, 2, 2, 14, 104, 3, 2, 2, 2, 16, 111, 3, 2, 2, 2, 18, 114, 3, 2, 2, 2, 20, 116, 3, 2, 2, 2, 22, 118, 3, 2, 2, 2, 24, 122, 3, 2, 2, 2, 26, 130, 3, 2, 2, 2, 28, 132, 3, 2, 2, 2, 30, 136, 3, 2, 2, 2, 32, 138, 3, 2, 2, 2, 34, 140, 3, 2, 2, 2, 36, 142, 3, 2, 2, 2, 38, 144, 3, 2, 2, 2, 40, 146, 3, 2, 2, 2, 42, 148, 3, 2, 2, 2, 44, 150, 3, 2, 2, 2, 46, 152, 3, 2, 2, 2, 48, 154, 3, 2, 2, 2, 50, 156, 3, 2, 2, 2, 52, 158, 3, 2, 2, 2, 54, 55, 5, 4, 3, 2, 55, 56, 7, 2, 2, 3, 56, 3, 3, 2, 2, 2, 57, 58, 5, 6, 4, 2, 58, 59, 7, 2, 2, 3, 59, 5, 3, 2, 2, 2, 60, 63, 5, 8, 5, 2, 61, 63, 5, 10, 6, 2, 62, 60, 3, 2, 2, 2, 62, 61, 3, 2, 2, 2, 63, 7, 3, 2, 2, 2, 64, 76, 5, 12, 7, 2, 65, 76, 5, 30, 16, 2, 66, 76, 5, 32, 17, 2, 67, 76, 5, 34, 18, 2, 68, 76, 5, 36, 19, 2, 69, 76, 5, 38, 20, 2, 70, 76, 5, 40, 21, 2, 71, 76, 5, 42, 22, 2, 72, 76, 5, 44, 23, 2, 73, 76, 5, 46, 24, 2, 74, 76, 5, 48, 25, 2, 75, 64, 3, 2, 2, 2, 75, 65, 3, 2, 2, 2, 75, 66, 3, 2, 2, 2, 75, 67, 3, 2, 2, 2, 75, 68, 3, 2, 2, 2, 75, 69, 3, 2, 2, 2, 75, 70, 3, 2, 2, 2, 75, 71, 3, 2, 2, 2, 75, 72, 3, 2, 2, 2, 75, 73, 3, 2, 2, 2, 75, 74, 3, 2, 2, 2, 76, 9, 3, 2, 2, 2, 77, 80, 5, 50, 26, 2, 78, 80, 5, 52, 27, 2, 79, 77, 3, 2, 2, 2, 79, 78, 3, 2, 2, 2, 80, 11, 3, 2, 2, 2, 81, 82, 7, 73, 2, 2, 82, 83, 7, 74, 2, 2, 83, 84, 5, 14, 8, 2, 84, 89, 5, 16, 9, 2, 85, 86, 7, 286, 2, 2, 86, 88, 5, 16, 9, 2, 87, 85, 3, 2, 2, 2, 88, 91, 3, 2, 2, 2, 89, 87, 3, 2, 2, 2, 89, 90, 3, 2, 2, 2, 90, 93, 3, 2, 2, 2, 91, 89, 3, 2, 2, 2, 92, 94, 5, 22, 12, 2, 93, 92, 3, 2, 2, 2, 93, 94, 3, 2, 2, 2, 94, 95, 3, 2, 2, 2, 95, 96, 7, 71, 2, 2, 96, 101, 5, 28, 15, 2, 97, 98, 7, 286, 2, 2, 98, 100, 5, 28, 15, 2, 99, 97, 3, 2, 2, 2, 100, 103, 3, 2, 2, 2, 101, 99, 3, 2, 2, 2, 101, 102, 3, 2, 2, 2, 102, 13, 3, 2, 2, 2, 103, 101, 3, 2, 2, 2, 104, 108, 7, 261, 2, 2, 105, 107, 7, 260, 2, 2, 106, 105, 3, 2, 2, 2, 107, 110, 3, 2, 2, 2, 108, 109, 3, 2, 2, 2, 108, 106, 3, 2, 2, 2, 109, 15, 3, 2, 2, 2, 110, 108, 3, 2, 2, 2, 111, 112, 5, 18, 10, 2, 112, 113, 5, 20, 11, 2, 113, 17, 3, 2, 2, 2, 114, 115, 7, 261, 2, 2, 115, 19, 3, 2, 2, 2, 116, 117, 9, 2, 2, 2, 117, 21, 3, 2, 2, 2, 118, 119, 7, 207, 2, 2, 119, 120, 7, 16, 2, 2, 120, 121, 5, 24, 13, 2, 121, 23, 3, 2, 2, 2, 122, 127, 5, 26, 14, 2, 123, 124, 7, 286, 2, 2, 124, 126, 5, 26, 14, 2, 125, 123, 3, 2, 2, 2, 126, 129, 3, 2, 2, 2, 127, 125, 3, 2, 2, 2, 127, 128, 3, 2, 2, 2, 128, 25, 3, 2, 2, 2, 129, 127, 3, 2, 2, 2, 130, 131, 7, 261, 2, 2, 131, 27, 3, 2, 2, 2, 132, 133, 7, 259, 2, 2, 133, 134, 7, 285, 2, 2, 134, 135, 7, 259, 2, 2, 135, 29, 3, 2, 2, 2, 136, 137, 3, 2, 2, 2, 137, 31, 3, 2, 2, 2, 138, 139, 3, 2, 2, 2, 139, 33, 3, 2, 2, 2, 140, 141, 3, 2, 2, 2, 141, 35, 3, 2, 2, 2, 142, 143, 3, 2, 2, 2, 143, 37, 3, 2, 2, 2, 144, 145, 3, 2, 2, 2, 145, 39, 3, 2, 2, 2, 146, 147, 3, 2, 2, 2, 147, 41, 3, 2, 2, 2, 148, 149, 3, 2, 2, 2, 149, 43, 3, 2, 2, 2, 150, 151, 3, 2, 2, 2, 151, 45, 3, 2, 2, 2, 152, 153, 3, 2, 2, 2, 153, 47, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 49, 3, 2, 2, 2, 156, 157, 3, 2, 2, 2, 157, 51, 3, 2, 2, 2, 158, 159, 3, 2, 2, 2, 159, 53, 3, 2, 2, 2, 10, 62, 75, 79, 89, 93, 101, 108, 127]
|
2723
src/lib/flinksql/FlinkSqlParser.js
Normal file
2723
src/lib/flinksql/FlinkSqlParser.js
Normal file
File diff suppressed because it is too large
Load Diff
561
src/lib/flinksql/FlinkSqlParser.tokens
Normal file
561
src/lib/flinksql/FlinkSqlParser.tokens
Normal file
@ -0,0 +1,561 @@
|
|||||||
|
SPACE=1
|
||||||
|
SPEC_MYSQL_COMMENT=2
|
||||||
|
COMMENT_INPUT=3
|
||||||
|
LINE_COMMENT=4
|
||||||
|
SELECT=5
|
||||||
|
FROM=6
|
||||||
|
ADD=7
|
||||||
|
AS=8
|
||||||
|
ALL=9
|
||||||
|
ANY=10
|
||||||
|
DISTINCT=11
|
||||||
|
WHERE=12
|
||||||
|
GROUP=13
|
||||||
|
BY=14
|
||||||
|
GROUPING=15
|
||||||
|
SETS=16
|
||||||
|
CUBE=17
|
||||||
|
ROLLUP=18
|
||||||
|
ORDER=19
|
||||||
|
HAVING=20
|
||||||
|
LIMIT=21
|
||||||
|
AT=22
|
||||||
|
OR=23
|
||||||
|
AND=24
|
||||||
|
IN=25
|
||||||
|
NOT=26
|
||||||
|
NO=27
|
||||||
|
EXISTS=28
|
||||||
|
BETWEEN=29
|
||||||
|
LIKE=30
|
||||||
|
RLIKE=31
|
||||||
|
IS=32
|
||||||
|
TRUE=33
|
||||||
|
FALSE=34
|
||||||
|
NULLS=35
|
||||||
|
ASC=36
|
||||||
|
DESC=37
|
||||||
|
FOR=38
|
||||||
|
INTERVAL=39
|
||||||
|
CASE=40
|
||||||
|
WHEN=41
|
||||||
|
THEN=42
|
||||||
|
ELSE=43
|
||||||
|
END=44
|
||||||
|
JOIN=45
|
||||||
|
CROSS=46
|
||||||
|
OUTER=47
|
||||||
|
INNER=48
|
||||||
|
LEFT=49
|
||||||
|
SEMI=50
|
||||||
|
RIGHT=51
|
||||||
|
FULL=52
|
||||||
|
NATURAL=53
|
||||||
|
ON=54
|
||||||
|
PIVOT=55
|
||||||
|
LATERAL=56
|
||||||
|
WINDOW=57
|
||||||
|
OVER=58
|
||||||
|
PARTITION=59
|
||||||
|
RANGE=60
|
||||||
|
ROWS=61
|
||||||
|
UNBOUNDED=62
|
||||||
|
PRECEDING=63
|
||||||
|
FOLLOWING=64
|
||||||
|
CURRENT=65
|
||||||
|
FIRST=66
|
||||||
|
AFTER=67
|
||||||
|
LAST=68
|
||||||
|
WITH=69
|
||||||
|
VALUES=70
|
||||||
|
CREATE=71
|
||||||
|
TABLE=72
|
||||||
|
DIRECTORY=73
|
||||||
|
VIEW=74
|
||||||
|
REPLACE=75
|
||||||
|
INSERT=76
|
||||||
|
DELETE=77
|
||||||
|
INTO=78
|
||||||
|
DESCRIBE=79
|
||||||
|
EXPLAIN=80
|
||||||
|
FORMAT=81
|
||||||
|
LOGICAL=82
|
||||||
|
CODEGEN=83
|
||||||
|
COST=84
|
||||||
|
CAST=85
|
||||||
|
SHOW=86
|
||||||
|
TABLES=87
|
||||||
|
COLUMNS=88
|
||||||
|
COLUMN=89
|
||||||
|
USE=90
|
||||||
|
PARTITIONS=91
|
||||||
|
FUNCTIONS=92
|
||||||
|
DROP=93
|
||||||
|
UNION=94
|
||||||
|
EXCEPT=95
|
||||||
|
SETMINUS=96
|
||||||
|
INTERSECT=97
|
||||||
|
TO=98
|
||||||
|
TABLESAMPLE=99
|
||||||
|
STRATIFY=100
|
||||||
|
ALTER=101
|
||||||
|
RENAME=102
|
||||||
|
STRUCT=103
|
||||||
|
COMMENT=104
|
||||||
|
SET=105
|
||||||
|
RESET=106
|
||||||
|
DATA=107
|
||||||
|
START=108
|
||||||
|
TRANSACTION=109
|
||||||
|
COMMIT=110
|
||||||
|
ROLLBACK=111
|
||||||
|
MACRO=112
|
||||||
|
IGNORE=113
|
||||||
|
BOTH=114
|
||||||
|
LEADING=115
|
||||||
|
TRAILING=116
|
||||||
|
IF=117
|
||||||
|
POSITION=118
|
||||||
|
EXTRACT=119
|
||||||
|
EQ=120
|
||||||
|
NSEQ=121
|
||||||
|
NEQ=122
|
||||||
|
NEQJ=123
|
||||||
|
LT=124
|
||||||
|
LTE=125
|
||||||
|
GT=126
|
||||||
|
GTE=127
|
||||||
|
PLUS=128
|
||||||
|
MINUS=129
|
||||||
|
ASTERISK=130
|
||||||
|
SLASH=131
|
||||||
|
PERCENT=132
|
||||||
|
DIV=133
|
||||||
|
TILDE=134
|
||||||
|
AMPERSAND=135
|
||||||
|
PIPE=136
|
||||||
|
CONCAT_PIPE=137
|
||||||
|
HAT=138
|
||||||
|
PERCENTLIT=139
|
||||||
|
BUCKET=140
|
||||||
|
OUT=141
|
||||||
|
OF=142
|
||||||
|
SORT=143
|
||||||
|
CLUSTER=144
|
||||||
|
DISTRIBUTE=145
|
||||||
|
OVERWRITE=146
|
||||||
|
TRANSFORM=147
|
||||||
|
REDUCE=148
|
||||||
|
USING=149
|
||||||
|
SERDE=150
|
||||||
|
SERDEPROPERTIES=151
|
||||||
|
RECORDREADER=152
|
||||||
|
RECORDWRITER=153
|
||||||
|
DELIMITED=154
|
||||||
|
FIELDS=155
|
||||||
|
TERMINATED=156
|
||||||
|
COLLECTION=157
|
||||||
|
ITEMS=158
|
||||||
|
KEYS=159
|
||||||
|
ESCAPED=160
|
||||||
|
LINES=161
|
||||||
|
SEPARATED=162
|
||||||
|
FUNCTION=163
|
||||||
|
EXTENDED=164
|
||||||
|
REFRESH=165
|
||||||
|
CLEAR=166
|
||||||
|
CACHE=167
|
||||||
|
UNCACHE=168
|
||||||
|
LAZY=169
|
||||||
|
FORMATTED=170
|
||||||
|
GLOBAL=171
|
||||||
|
TEMPORARY=172
|
||||||
|
OPTIONS=173
|
||||||
|
UNSET=174
|
||||||
|
TBLPROPERTIES=175
|
||||||
|
DBPROPERTIES=176
|
||||||
|
BUCKETS=177
|
||||||
|
SKEWED=178
|
||||||
|
STORED=179
|
||||||
|
DIRECTORIES=180
|
||||||
|
LOCATION=181
|
||||||
|
EXCHANGE=182
|
||||||
|
ARCHIVE=183
|
||||||
|
UNARCHIVE=184
|
||||||
|
FILEFORMAT=185
|
||||||
|
TOUCH=186
|
||||||
|
COMPACT=187
|
||||||
|
CONCATENATE=188
|
||||||
|
CHANGE=189
|
||||||
|
CASCADE=190
|
||||||
|
RESTRICT=191
|
||||||
|
CLUSTERED=192
|
||||||
|
SORTED=193
|
||||||
|
PURGE=194
|
||||||
|
INPUTFORMAT=195
|
||||||
|
OUTPUTFORMAT=196
|
||||||
|
DATABASE=197
|
||||||
|
DATABASES=198
|
||||||
|
DFS=199
|
||||||
|
TRUNCATE=200
|
||||||
|
ANALYZE=201
|
||||||
|
COMPUTE=202
|
||||||
|
LIST=203
|
||||||
|
STATISTICS=204
|
||||||
|
PARTITIONED=205
|
||||||
|
EXTERNAL=206
|
||||||
|
DEFINED=207
|
||||||
|
REVOKE=208
|
||||||
|
GRANT=209
|
||||||
|
LOCK=210
|
||||||
|
UNLOCK=211
|
||||||
|
MSCK=212
|
||||||
|
REPAIR=213
|
||||||
|
RECOVER=214
|
||||||
|
EXPORT=215
|
||||||
|
IMPORT=216
|
||||||
|
LOAD=217
|
||||||
|
ROLE=218
|
||||||
|
ROLES=219
|
||||||
|
COMPACTIONS=220
|
||||||
|
PRINCIPALS=221
|
||||||
|
TRANSACTIONS=222
|
||||||
|
INDEX=223
|
||||||
|
INDEXES=224
|
||||||
|
LOCKS=225
|
||||||
|
OPTION=226
|
||||||
|
ANTI=227
|
||||||
|
LOCAL=228
|
||||||
|
INPATH=229
|
||||||
|
WATERMARK=230
|
||||||
|
UNNEST=231
|
||||||
|
MATCH_RECOGNIZE=232
|
||||||
|
MEASURES=233
|
||||||
|
ONE=234
|
||||||
|
PER=235
|
||||||
|
MATCH=236
|
||||||
|
SKIP1=237
|
||||||
|
NEXT=238
|
||||||
|
PAST=239
|
||||||
|
PATTERN=240
|
||||||
|
WITHIN=241
|
||||||
|
DEFINE=242
|
||||||
|
BIGINT_LITERAL=243
|
||||||
|
SMALLINT_LITERAL=244
|
||||||
|
TINYINT_LITERAL=245
|
||||||
|
INTEGER_VALUE=246
|
||||||
|
DECIMAL_VALUE=247
|
||||||
|
DOUBLE_LITERAL=248
|
||||||
|
BIGDECIMAL_LITERAL=249
|
||||||
|
IDENTIFIER=250
|
||||||
|
BACKQUOTED_IDENTIFIER=251
|
||||||
|
SIMPLE_COMMENT=252
|
||||||
|
BRACKETED_EMPTY_COMMENT=253
|
||||||
|
BRACKETED_COMMENT=254
|
||||||
|
WS=255
|
||||||
|
UNRECOGNIZED=256
|
||||||
|
REVERSE_QUOTE_ID=257
|
||||||
|
DOT_ID=258
|
||||||
|
ID=259
|
||||||
|
STRING=260
|
||||||
|
ARRAY=261
|
||||||
|
MAP=262
|
||||||
|
CHAR=263
|
||||||
|
VARCHAR=264
|
||||||
|
BINARY=265
|
||||||
|
VARBINARY=266
|
||||||
|
BYTES=267
|
||||||
|
DECIMAL=268
|
||||||
|
TINYINT=269
|
||||||
|
SMALLINT=270
|
||||||
|
INT=271
|
||||||
|
BIGINT=272
|
||||||
|
FLOAT=273
|
||||||
|
DOUBLE=274
|
||||||
|
DATE=275
|
||||||
|
TIME=276
|
||||||
|
TIMESTAMP=277
|
||||||
|
MULTISET=278
|
||||||
|
BOOLEAN=279
|
||||||
|
RAW=280
|
||||||
|
ROW=281
|
||||||
|
NULL=282
|
||||||
|
EQUAL=283
|
||||||
|
COMMA=284
|
||||||
|
'SELECT'=5
|
||||||
|
'FROM'=6
|
||||||
|
'ADD'=7
|
||||||
|
'AS'=8
|
||||||
|
'ALL'=9
|
||||||
|
'ANY'=10
|
||||||
|
'DISTINCT'=11
|
||||||
|
'WHERE'=12
|
||||||
|
'GROUP'=13
|
||||||
|
'BY'=14
|
||||||
|
'GROUPING'=15
|
||||||
|
'SETS'=16
|
||||||
|
'CUBE'=17
|
||||||
|
'ROLLUP'=18
|
||||||
|
'ORDER'=19
|
||||||
|
'HAVING'=20
|
||||||
|
'LIMIT'=21
|
||||||
|
'AT'=22
|
||||||
|
'OR'=23
|
||||||
|
'AND'=24
|
||||||
|
'IN'=25
|
||||||
|
'NOT'=26
|
||||||
|
'NO'=27
|
||||||
|
'EXISTS'=28
|
||||||
|
'BETWEEN'=29
|
||||||
|
'LIKE'=30
|
||||||
|
'RLIKE'=31
|
||||||
|
'IS'=32
|
||||||
|
'TRUE'=33
|
||||||
|
'FALSE'=34
|
||||||
|
'NULLS'=35
|
||||||
|
'ASC'=36
|
||||||
|
'DESC'=37
|
||||||
|
'FOR'=38
|
||||||
|
'INTERVAL'=39
|
||||||
|
'CASE'=40
|
||||||
|
'WHEN'=41
|
||||||
|
'THEN'=42
|
||||||
|
'ELSE'=43
|
||||||
|
'END'=44
|
||||||
|
'JOIN'=45
|
||||||
|
'CROSS'=46
|
||||||
|
'OUTER'=47
|
||||||
|
'INNER'=48
|
||||||
|
'LEFT'=49
|
||||||
|
'SEMI'=50
|
||||||
|
'RIGHT'=51
|
||||||
|
'FULL'=52
|
||||||
|
'NATURAL'=53
|
||||||
|
'ON'=54
|
||||||
|
'PIVOT'=55
|
||||||
|
'LATERAL'=56
|
||||||
|
'WINDOW'=57
|
||||||
|
'OVER'=58
|
||||||
|
'PARTITION'=59
|
||||||
|
'RANGE'=60
|
||||||
|
'ROWS'=61
|
||||||
|
'UNBOUNDED'=62
|
||||||
|
'PRECEDING'=63
|
||||||
|
'FOLLOWING'=64
|
||||||
|
'CURRENT'=65
|
||||||
|
'FIRST'=66
|
||||||
|
'AFTER'=67
|
||||||
|
'LAST'=68
|
||||||
|
'WITH'=69
|
||||||
|
'VALUES'=70
|
||||||
|
'CREATE'=71
|
||||||
|
'TABLE'=72
|
||||||
|
'DIRECTORY'=73
|
||||||
|
'VIEW'=74
|
||||||
|
'REPLACE'=75
|
||||||
|
'INSERT'=76
|
||||||
|
'DELETE'=77
|
||||||
|
'INTO'=78
|
||||||
|
'DESCRIBE'=79
|
||||||
|
'EXPLAIN'=80
|
||||||
|
'FORMAT'=81
|
||||||
|
'LOGICAL'=82
|
||||||
|
'CODEGEN'=83
|
||||||
|
'COST'=84
|
||||||
|
'CAST'=85
|
||||||
|
'SHOW'=86
|
||||||
|
'TABLES'=87
|
||||||
|
'COLUMNS'=88
|
||||||
|
'COLUMN'=89
|
||||||
|
'USE'=90
|
||||||
|
'PARTITIONS'=91
|
||||||
|
'FUNCTIONS'=92
|
||||||
|
'DROP'=93
|
||||||
|
'UNION'=94
|
||||||
|
'EXCEPT'=95
|
||||||
|
'SETMINUS'=96
|
||||||
|
'INTERSECT'=97
|
||||||
|
'TO'=98
|
||||||
|
'TABLESAMPLE'=99
|
||||||
|
'STRATIFY'=100
|
||||||
|
'ALTER'=101
|
||||||
|
'RENAME'=102
|
||||||
|
'STRUCT'=103
|
||||||
|
'COMMENT'=104
|
||||||
|
'SET'=105
|
||||||
|
'RESET'=106
|
||||||
|
'DATA'=107
|
||||||
|
'START'=108
|
||||||
|
'TRANSACTION'=109
|
||||||
|
'COMMIT'=110
|
||||||
|
'ROLLBACK'=111
|
||||||
|
'MACRO'=112
|
||||||
|
'IGNORE'=113
|
||||||
|
'BOTH'=114
|
||||||
|
'LEADING'=115
|
||||||
|
'TRAILING'=116
|
||||||
|
'IF'=117
|
||||||
|
'POSITION'=118
|
||||||
|
'EXTRACT'=119
|
||||||
|
'EQ'=120
|
||||||
|
'NSEQ'=121
|
||||||
|
'NEQ'=122
|
||||||
|
'NEQJ'=123
|
||||||
|
'LT'=124
|
||||||
|
'LTE'=125
|
||||||
|
'GT'=126
|
||||||
|
'GTE'=127
|
||||||
|
'PLUS'=128
|
||||||
|
'MINUS'=129
|
||||||
|
'ASTERISK'=130
|
||||||
|
'SLASH'=131
|
||||||
|
'PERCENT'=132
|
||||||
|
'DIV'=133
|
||||||
|
'TILDE'=134
|
||||||
|
'AMPERSAND'=135
|
||||||
|
'PIPE'=136
|
||||||
|
'CONCAT_PIPE'=137
|
||||||
|
'HAT'=138
|
||||||
|
'PERCENTLIT'=139
|
||||||
|
'BUCKET'=140
|
||||||
|
'OUT'=141
|
||||||
|
'OF'=142
|
||||||
|
'SORT'=143
|
||||||
|
'CLUSTER'=144
|
||||||
|
'DISTRIBUTE'=145
|
||||||
|
'OVERWRITE'=146
|
||||||
|
'TRANSFORM'=147
|
||||||
|
'REDUCE'=148
|
||||||
|
'USING'=149
|
||||||
|
'SERDE'=150
|
||||||
|
'SERDEPROPERTIES'=151
|
||||||
|
'RECORDREADER'=152
|
||||||
|
'RECORDWRITER'=153
|
||||||
|
'DELIMITED'=154
|
||||||
|
'FIELDS'=155
|
||||||
|
'TERMINATED'=156
|
||||||
|
'COLLECTION'=157
|
||||||
|
'ITEMS'=158
|
||||||
|
'KEYS'=159
|
||||||
|
'ESCAPED'=160
|
||||||
|
'LINES'=161
|
||||||
|
'SEPARATED'=162
|
||||||
|
'FUNCTION'=163
|
||||||
|
'EXTENDED'=164
|
||||||
|
'REFRESH'=165
|
||||||
|
'CLEAR'=166
|
||||||
|
'CACHE'=167
|
||||||
|
'UNCACHE'=168
|
||||||
|
'LAZY'=169
|
||||||
|
'FORMATTED'=170
|
||||||
|
'GLOBAL'=171
|
||||||
|
'TEMPORARY'=172
|
||||||
|
'OPTIONS'=173
|
||||||
|
'UNSET'=174
|
||||||
|
'TBLPROPERTIES'=175
|
||||||
|
'DBPROPERTIES'=176
|
||||||
|
'BUCKETS'=177
|
||||||
|
'SKEWED'=178
|
||||||
|
'STORED'=179
|
||||||
|
'DIRECTORIES'=180
|
||||||
|
'LOCATION'=181
|
||||||
|
'EXCHANGE'=182
|
||||||
|
'ARCHIVE'=183
|
||||||
|
'UNARCHIVE'=184
|
||||||
|
'FILEFORMAT'=185
|
||||||
|
'TOUCH'=186
|
||||||
|
'COMPACT'=187
|
||||||
|
'CONCATENATE'=188
|
||||||
|
'CHANGE'=189
|
||||||
|
'CASCADE'=190
|
||||||
|
'RESTRICT'=191
|
||||||
|
'CLUSTERED'=192
|
||||||
|
'SORTED'=193
|
||||||
|
'PURGE'=194
|
||||||
|
'INPUTFORMAT'=195
|
||||||
|
'OUTPUTFORMAT'=196
|
||||||
|
'DATABASE'=197
|
||||||
|
'DATABASES'=198
|
||||||
|
'DFS'=199
|
||||||
|
'TRUNCATE'=200
|
||||||
|
'ANALYZE'=201
|
||||||
|
'COMPUTE'=202
|
||||||
|
'LIST'=203
|
||||||
|
'STATISTICS'=204
|
||||||
|
'PARTITIONED'=205
|
||||||
|
'EXTERNAL'=206
|
||||||
|
'DEFINED'=207
|
||||||
|
'REVOKE'=208
|
||||||
|
'GRANT'=209
|
||||||
|
'LOCK'=210
|
||||||
|
'UNLOCK'=211
|
||||||
|
'MSCK'=212
|
||||||
|
'REPAIR'=213
|
||||||
|
'RECOVER'=214
|
||||||
|
'EXPORT'=215
|
||||||
|
'IMPORT'=216
|
||||||
|
'LOAD'=217
|
||||||
|
'ROLE'=218
|
||||||
|
'ROLES'=219
|
||||||
|
'COMPACTIONS'=220
|
||||||
|
'PRINCIPALS'=221
|
||||||
|
'TRANSACTIONS'=222
|
||||||
|
'INDEX'=223
|
||||||
|
'INDEXES'=224
|
||||||
|
'LOCKS'=225
|
||||||
|
'OPTION'=226
|
||||||
|
'ANTI'=227
|
||||||
|
'LOCAL'=228
|
||||||
|
'INPATH'=229
|
||||||
|
'WATERMARK'=230
|
||||||
|
'UNNEST'=231
|
||||||
|
'MATCH_RECOGNIZE'=232
|
||||||
|
'MEASURES'=233
|
||||||
|
'ONE'=234
|
||||||
|
'PER'=235
|
||||||
|
'MATCH'=236
|
||||||
|
'SKIP1'=237
|
||||||
|
'NEXT'=238
|
||||||
|
'PAST'=239
|
||||||
|
'PATTERN'=240
|
||||||
|
'WITHIN'=241
|
||||||
|
'DEFINE'=242
|
||||||
|
'BIGINT_LITERAL'=243
|
||||||
|
'SMALLINT_LITERAL'=244
|
||||||
|
'TINYINT_LITERAL'=245
|
||||||
|
'INTEGER_VALUE'=246
|
||||||
|
'DECIMAL_VALUE'=247
|
||||||
|
'DOUBLE_LITERAL'=248
|
||||||
|
'BIGDECIMAL_LITERAL'=249
|
||||||
|
'IDENTIFIER'=250
|
||||||
|
'BACKQUOTED_IDENTIFIER'=251
|
||||||
|
'SIMPLE_COMMENT'=252
|
||||||
|
'BRACKETED_EMPTY_COMMENT'=253
|
||||||
|
'BRACKETED_COMMENT'=254
|
||||||
|
'WS'=255
|
||||||
|
'UNRECOGNIZED'=256
|
||||||
|
'STRING'=260
|
||||||
|
'ARRAY'=261
|
||||||
|
'MAP'=262
|
||||||
|
'CHAR'=263
|
||||||
|
'VARCHAR'=264
|
||||||
|
'BINARY'=265
|
||||||
|
'VARBINARY'=266
|
||||||
|
'BYTES'=267
|
||||||
|
'DECIMAL'=268
|
||||||
|
'TINYINT'=269
|
||||||
|
'SMALLINT'=270
|
||||||
|
'INT'=271
|
||||||
|
'BIGINT'=272
|
||||||
|
'FLOAT'=273
|
||||||
|
'DOUBLE'=274
|
||||||
|
'DATE'=275
|
||||||
|
'TIME'=276
|
||||||
|
'TIMESTAMP'=277
|
||||||
|
'MULTISET'=278
|
||||||
|
'BOOLEAN'=279
|
||||||
|
'RAW'=280
|
||||||
|
'ROW'=281
|
||||||
|
'NULL'=282
|
||||||
|
'='=283
|
||||||
|
','=284
|
249
src/lib/flinksql/FlinkSqlParserListener.js
Normal file
249
src/lib/flinksql/FlinkSqlParserListener.js
Normal file
@ -0,0 +1,249 @@
|
|||||||
|
// Generated from /Users/erindeng/Desktop/dt-sql-parser/src/grammar/flinksql/FlinkSqlParser.g4 by ANTLR 4.8
|
||||||
|
// jshint ignore: start
|
||||||
|
var antlr4 = require('antlr4/index');
|
||||||
|
|
||||||
|
// This class defines a complete listener for a parse tree produced by FlinkSqlParser.
|
||||||
|
function FlinkSqlParserListener() {
|
||||||
|
antlr4.tree.ParseTreeListener.call(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
FlinkSqlParserListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype);
|
||||||
|
FlinkSqlParserListener.prototype.constructor = FlinkSqlParserListener;
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#program.
|
||||||
|
FlinkSqlParserListener.prototype.enterProgram = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#program.
|
||||||
|
FlinkSqlParserListener.prototype.exitProgram = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#statement.
|
||||||
|
FlinkSqlParserListener.prototype.enterStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#statement.
|
||||||
|
FlinkSqlParserListener.prototype.exitStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#sqlStatement.
|
||||||
|
FlinkSqlParserListener.prototype.enterSqlStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#sqlStatement.
|
||||||
|
FlinkSqlParserListener.prototype.exitSqlStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#ddlStatement.
|
||||||
|
FlinkSqlParserListener.prototype.enterDdlStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#ddlStatement.
|
||||||
|
FlinkSqlParserListener.prototype.exitDdlStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#dmlStatement.
|
||||||
|
FlinkSqlParserListener.prototype.enterDmlStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#dmlStatement.
|
||||||
|
FlinkSqlParserListener.prototype.exitDmlStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#createTable.
|
||||||
|
FlinkSqlParserListener.prototype.enterCreateTable = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#createTable.
|
||||||
|
FlinkSqlParserListener.prototype.exitCreateTable = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#tableName.
|
||||||
|
FlinkSqlParserListener.prototype.enterTableName = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#tableName.
|
||||||
|
FlinkSqlParserListener.prototype.exitTableName = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#columnOptionDefinition.
|
||||||
|
FlinkSqlParserListener.prototype.enterColumnOptionDefinition = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#columnOptionDefinition.
|
||||||
|
FlinkSqlParserListener.prototype.exitColumnOptionDefinition = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#columnName.
|
||||||
|
FlinkSqlParserListener.prototype.enterColumnName = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#columnName.
|
||||||
|
FlinkSqlParserListener.prototype.exitColumnName = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#columnType.
|
||||||
|
FlinkSqlParserListener.prototype.enterColumnType = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#columnType.
|
||||||
|
FlinkSqlParserListener.prototype.exitColumnType = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#partitionDefinition.
|
||||||
|
FlinkSqlParserListener.prototype.enterPartitionDefinition = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#partitionDefinition.
|
||||||
|
FlinkSqlParserListener.prototype.exitPartitionDefinition = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#partitionColumnDefinition.
|
||||||
|
FlinkSqlParserListener.prototype.enterPartitionColumnDefinition = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#partitionColumnDefinition.
|
||||||
|
FlinkSqlParserListener.prototype.exitPartitionColumnDefinition = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#partitionColumnName.
|
||||||
|
FlinkSqlParserListener.prototype.enterPartitionColumnName = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#partitionColumnName.
|
||||||
|
FlinkSqlParserListener.prototype.exitPartitionColumnName = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#withOptionDefinition.
|
||||||
|
FlinkSqlParserListener.prototype.enterWithOptionDefinition = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#withOptionDefinition.
|
||||||
|
FlinkSqlParserListener.prototype.exitWithOptionDefinition = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#createDatabase.
|
||||||
|
FlinkSqlParserListener.prototype.enterCreateDatabase = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#createDatabase.
|
||||||
|
FlinkSqlParserListener.prototype.exitCreateDatabase = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#createView.
|
||||||
|
FlinkSqlParserListener.prototype.enterCreateView = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#createView.
|
||||||
|
FlinkSqlParserListener.prototype.exitCreateView = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#createFunction.
|
||||||
|
FlinkSqlParserListener.prototype.enterCreateFunction = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#createFunction.
|
||||||
|
FlinkSqlParserListener.prototype.exitCreateFunction = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#alterTable.
|
||||||
|
FlinkSqlParserListener.prototype.enterAlterTable = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#alterTable.
|
||||||
|
FlinkSqlParserListener.prototype.exitAlterTable = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#alterDatabase.
|
||||||
|
FlinkSqlParserListener.prototype.enterAlterDatabase = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#alterDatabase.
|
||||||
|
FlinkSqlParserListener.prototype.exitAlterDatabase = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#alterFunction.
|
||||||
|
FlinkSqlParserListener.prototype.enterAlterFunction = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#alterFunction.
|
||||||
|
FlinkSqlParserListener.prototype.exitAlterFunction = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#dropTable.
|
||||||
|
FlinkSqlParserListener.prototype.enterDropTable = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#dropTable.
|
||||||
|
FlinkSqlParserListener.prototype.exitDropTable = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#dropDatabase.
|
||||||
|
FlinkSqlParserListener.prototype.enterDropDatabase = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#dropDatabase.
|
||||||
|
FlinkSqlParserListener.prototype.exitDropDatabase = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#dropView.
|
||||||
|
FlinkSqlParserListener.prototype.enterDropView = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#dropView.
|
||||||
|
FlinkSqlParserListener.prototype.exitDropView = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#dropFunction.
|
||||||
|
FlinkSqlParserListener.prototype.enterDropFunction = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#dropFunction.
|
||||||
|
FlinkSqlParserListener.prototype.exitDropFunction = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#selectStatement.
|
||||||
|
FlinkSqlParserListener.prototype.enterSelectStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#selectStatement.
|
||||||
|
FlinkSqlParserListener.prototype.exitSelectStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Enter a parse tree produced by FlinkSqlParser#insertStatement.
|
||||||
|
FlinkSqlParserListener.prototype.enterInsertStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
// Exit a parse tree produced by FlinkSqlParser#insertStatement.
|
||||||
|
FlinkSqlParserListener.prototype.exitInsertStatement = function(ctx) {
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
exports.FlinkSqlParserListener = FlinkSqlParserListener;
|
172
src/lib/flinksql/FlinkSqlParserVisitor.js
Normal file
172
src/lib/flinksql/FlinkSqlParserVisitor.js
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
// Generated from /Users/erindeng/Desktop/dt-sql-parser/src/grammar/flinksql/FlinkSqlParser.g4 by ANTLR 4.8
|
||||||
|
// jshint ignore: start
|
||||||
|
var antlr4 = require('antlr4/index');
|
||||||
|
|
||||||
|
// This class defines a complete generic visitor for a parse tree produced by FlinkSqlParser.
|
||||||
|
|
||||||
|
function FlinkSqlParserVisitor() {
|
||||||
|
antlr4.tree.ParseTreeVisitor.call(this);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
FlinkSqlParserVisitor.prototype = Object.create(antlr4.tree.ParseTreeVisitor.prototype);
|
||||||
|
FlinkSqlParserVisitor.prototype.constructor = FlinkSqlParserVisitor;
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#program.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitProgram = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#statement.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitStatement = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#sqlStatement.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitSqlStatement = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#ddlStatement.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitDdlStatement = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#dmlStatement.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitDmlStatement = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#createTable.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitCreateTable = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#tableName.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitTableName = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#columnOptionDefinition.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitColumnOptionDefinition = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#columnName.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitColumnName = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#columnType.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitColumnType = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#partitionDefinition.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitPartitionDefinition = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#partitionColumnDefinition.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitPartitionColumnDefinition = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#partitionColumnName.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitPartitionColumnName = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#withOptionDefinition.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitWithOptionDefinition = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#createDatabase.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitCreateDatabase = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#createView.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitCreateView = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#createFunction.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitCreateFunction = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#alterTable.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitAlterTable = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#alterDatabase.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitAlterDatabase = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#alterFunction.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitAlterFunction = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#dropTable.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitDropTable = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#dropDatabase.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitDropDatabase = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#dropView.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitDropView = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#dropFunction.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitDropFunction = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#selectStatement.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitSelectStatement = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Visit a parse tree produced by FlinkSqlParser#insertStatement.
|
||||||
|
FlinkSqlParserVisitor.prototype.visitInsertStatement = function(ctx) {
|
||||||
|
return this.visitChildren(ctx);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
exports.FlinkSqlParserVisitor = FlinkSqlParserVisitor;
|
20
src/parser/flinksql.ts
Normal file
20
src/parser/flinksql.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import { InputStream, CommonTokenStream, Lexer } from 'antlr4';
|
||||||
|
import { FlinkSqlLexer } from '../lib/flinksql/FlinkSqlLexer';
|
||||||
|
import { FlinkSqlParser } from '../lib/flinksql/FlinkSqlParser';
|
||||||
|
export * from '../lib/flinksql/FlinkSqlParserListener';
|
||||||
|
export * from '../lib/flinksql/FlinkSqlParserVisitor';
|
||||||
|
|
||||||
|
import BasicParser from './common/BasicParser';
|
||||||
|
|
||||||
|
export default class FlinkSQL extends BasicParser {
|
||||||
|
public createLexer(input: string): Lexer {
|
||||||
|
const chars = new InputStream(input);
|
||||||
|
const lexer = <unknown> new FlinkSqlLexer(chars) as Lexer;
|
||||||
|
return lexer;
|
||||||
|
}
|
||||||
|
public createParserFromLexer(lexer: Lexer) {
|
||||||
|
const tokenStream = new CommonTokenStream(lexer);
|
||||||
|
return new FlinkSqlParser(tokenStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,4 @@
|
|||||||
export * from './generic';
|
export * from './generic';
|
||||||
export * from './plsql';
|
export * from './plsql';
|
||||||
export * from './hive';
|
export * from './hive';
|
||||||
|
export * from './flinksql';
|
||||||
|
12
test/parser/flinksql/lexer.test.ts
Normal file
12
test/parser/flinksql/lexer.test.ts
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
import SQLParser from '../../../src/parser/flinksql';
|
||||||
|
// todo 校验 token 解析
|
||||||
|
describe('FlinkSQL Lexer tests', () => {
|
||||||
|
const parser = new SQLParser();
|
||||||
|
|
||||||
|
const sql = 'SELECT * FROM table1';
|
||||||
|
const tokens = parser.getAllTokens(sql);
|
||||||
|
|
||||||
|
test('token counts', () => {
|
||||||
|
expect(tokens.length).toBe(7);
|
||||||
|
});
|
||||||
|
});
|
22
test/parser/flinksql/listener.test.ts
Normal file
22
test/parser/flinksql/listener.test.ts
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import SQLParser, { PlSqlParserListener } from '../../../src/parser/plsql';
|
||||||
|
// todo 校验关键字提取
|
||||||
|
describe('PLSQL Listener Tests', () => {
|
||||||
|
const expectTableName = 'user1';
|
||||||
|
const sql = `select id,name,sex from ${expectTableName};`;
|
||||||
|
const parser = new SQLParser();
|
||||||
|
|
||||||
|
const parserTree = parser.parse(sql);
|
||||||
|
|
||||||
|
test('Listener enterTableName', async () => {
|
||||||
|
let result = '';
|
||||||
|
class MyListener extends PlSqlParserListener {
|
||||||
|
enterTable_ref_list(ctx): void {
|
||||||
|
result = ctx.getText().toLowerCase();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const listenTableName: any = new MyListener();
|
||||||
|
|
||||||
|
await parser.listen(listenTableName, parserTree);
|
||||||
|
expect(result).toBe(expectTableName);
|
||||||
|
});
|
||||||
|
});
|
20
test/parser/flinksql/syntax.test.ts
Normal file
20
test/parser/flinksql/syntax.test.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import SQLParser from '../../../src/parser/flinksql';
|
||||||
|
|
||||||
|
describe('FlinkSQL Syntax Tests', () => {
|
||||||
|
const parser = new SQLParser();
|
||||||
|
|
||||||
|
test('Test simple CreateTable Statement', () => {
|
||||||
|
const sql = `
|
||||||
|
CREATE TABLE Orders (
|
||||||
|
user BIGINT,
|
||||||
|
product STRING
|
||||||
|
) WITH (
|
||||||
|
"connector" = "kafka",
|
||||||
|
"scan.startup.mode" = "earliest-offset"
|
||||||
|
);
|
||||||
|
`;
|
||||||
|
const result = parser.validate(sql);
|
||||||
|
|
||||||
|
expect(result.length).toBe(0);
|
||||||
|
});
|
||||||
|
});
|
23
test/parser/flinksql/visitor.test.ts
Normal file
23
test/parser/flinksql/visitor.test.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import SQLParser, { PlSqlParserVisitor } from '../../../src/parser/plsql';
|
||||||
|
// todo 校验关键字提取
|
||||||
|
describe('PLSQL Visitor Tests', () => {
|
||||||
|
const expectTableName = 'user1';
|
||||||
|
const sql = `select id,name,sex from ${expectTableName};`;
|
||||||
|
const parser = new SQLParser();
|
||||||
|
|
||||||
|
const parserTree = parser.parse(sql);
|
||||||
|
|
||||||
|
test('Visitor visitTable_ref_list', () => {
|
||||||
|
let result = '';
|
||||||
|
class MyVisitor extends PlSqlParserVisitor {
|
||||||
|
visitTable_ref_list(ctx): void {
|
||||||
|
result = ctx.getText().toLowerCase();
|
||||||
|
super.visitTable_ref_list(ctx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const visitor: any = new MyVisitor();
|
||||||
|
visitor.visit(parserTree);
|
||||||
|
|
||||||
|
expect(result).toBe(expectTableName);
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user