feat: add some query grammar
This commit is contained in:
parent
ba29949359
commit
a5ea7be606
@ -333,6 +333,18 @@ DOUBLE_QUOTE_SYMB: '"';
|
||||
REVERSE_QUOTE_SYMB: '`';
|
||||
COLON_SYMB: ':';
|
||||
ASTERISK_SIGN: '*';
|
||||
STRING_LITERAL: DQUOTA_STRING | SQUOTA_STRING | BQUOTA_STRING;
|
||||
DECIMAL_LITERAL: DEC_DIGIT+;
|
||||
REAL_LITERAL: (DEC_DIGIT+)? '.' DEC_DIGIT+
|
||||
| DEC_DIGIT+ '.' EXPONENT_NUM_PART
|
||||
| (DEC_DIGIT+)? '.' (DEC_DIGIT+ EXPONENT_NUM_PART)
|
||||
| DEC_DIGIT+ EXPONENT_NUM_PART;
|
||||
BIT_STRING: BIT_STRING_L;
|
||||
|
||||
|
||||
fragment EXPONENT_NUM_PART: 'E' [-+]? DEC_DIGIT+;
|
||||
fragment ID_LITERAL: [A-Z_0-9a-z]*?[A-Z_a-z]+?[A-Z_0-9a-z]*;
|
||||
fragment DEC_DIGIT: [0-9];
|
||||
fragment DQUOTA_STRING: '"' ( '\\'. | '""' | ~('"'| '\\') )* '"';
|
||||
fragment SQUOTA_STRING: '\'' ('\\'. | '\'\'' | ~('\'' | '\\'))* '\'';
|
||||
fragment BIT_STRING_L: 'B' '\'' [01]+ '\'';
|
||||
fragment BQUOTA_STRING: '`' ( '\\'. | '``' | ~('`'|'\\'))* '`';
|
@ -144,14 +144,14 @@ selectStatement
|
||||
: SELECT (ALL | DISTINCT)?
|
||||
(ASTERISK_SIGN | projectItemDefinition (COMMA projectItemDefinition)*)
|
||||
FROM tableExpression
|
||||
(WHERE booleanExpression)?
|
||||
(WHERE expression)?
|
||||
(GROUP BY groupItemDefinition (COMMA groupItemDefinition)*)
|
||||
(HAVING booleanExpression)?
|
||||
(HAVING expression)?
|
||||
// (WINDOW windowName AS windowSpec (COMMA windowName AS windowSpec)*)?
|
||||
;
|
||||
|
||||
projectItemDefinition // expression (AS? columnAlias)? | tableAlias . *
|
||||
:
|
||||
projectItemDefinition
|
||||
: expression (AS? uid)? | uid '.' '*'
|
||||
;
|
||||
|
||||
tableExpression
|
||||
@ -160,20 +160,27 @@ tableExpression
|
||||
;
|
||||
|
||||
tableReference
|
||||
: // tablePrimary matchRecognize? (AS? alias (LR_BRACKET columnAlias (COMMA columnAlias)* RR_BRACKET)?)?
|
||||
: tablePrimary matchRecognize? (AS? uid (LR_BRACKET uid (COMMA uid)* RR_BRACKET)?)?
|
||||
;
|
||||
|
||||
// tablePrimary
|
||||
// : TABLE? uid dynamicTableOptions?
|
||||
// | LATERAL TABLE LR_BRACKET uid LR_BRACKET expression (COMMA expression)* RR_BRACKET RR_BRACKET
|
||||
// | UNNEST LR_BRACKET expression RR_BRACKET
|
||||
// ;
|
||||
|
||||
|
||||
joinCondition // ON booleanExpression | USING LR_BRACKET column (COMMA column)* RR_BRACKET
|
||||
matchRecognize
|
||||
:
|
||||
;
|
||||
|
||||
tablePrimary
|
||||
: TABLE? uid dynamicTableOptions?
|
||||
| LATERAL TABLE LR_BRACKET uid LR_BRACKET expression (COMMA expression)* RR_BRACKET RR_BRACKET
|
||||
| UNNEST LR_BRACKET expression RR_BRACKET
|
||||
;
|
||||
|
||||
dynamicTableOptions
|
||||
:
|
||||
;
|
||||
|
||||
joinCondition
|
||||
: ON booleanExpression | USING LR_BRACKET uid (COMMA uid)* RR_BRACKET
|
||||
;
|
||||
|
||||
booleanExpression
|
||||
:
|
||||
;
|
||||
@ -208,15 +215,15 @@ selectWithoutFromDefinition
|
||||
;
|
||||
|
||||
projectItem
|
||||
: // expression (AS? columnAlias)? | tableAlias . *
|
||||
: expression (AS? uid)? | uid '.' '*'
|
||||
;
|
||||
|
||||
queryOrderByDefinition
|
||||
: ORDER BY orderItemDefition (COMMA orderItemDefition)*
|
||||
;
|
||||
|
||||
orderItemDefition // expression (ASC | DESC)?
|
||||
:
|
||||
orderItemDefition
|
||||
: expression (ASC | DESC)
|
||||
;
|
||||
|
||||
queryLimitDefinition
|
||||
@ -235,7 +242,6 @@ queryFetchDefinition // FETCH (FIRST | NEXT) countDefinition? (ROW | ROWS) ONLY
|
||||
:
|
||||
;
|
||||
|
||||
|
||||
// Insert statements
|
||||
|
||||
insertStatement
|
||||
@ -256,13 +262,16 @@ valuesDefinition
|
||||
: VALUES valuesRowDefinition (COMMA valuesRowDefinition)*
|
||||
;
|
||||
|
||||
// TODO 匹配所有的值 任意value 即:(val1 [, val2, ...])
|
||||
valuesRowDefinition
|
||||
: LR_BRACKET
|
||||
.*?
|
||||
allValueDifinition (COMMA allValueDifinition)*
|
||||
RR_BRACKET
|
||||
;
|
||||
|
||||
allValueDifinition
|
||||
: stringLiteral | booleanLiteral | DEC_DIGIT | NULL
|
||||
;
|
||||
|
||||
// base common
|
||||
|
||||
uidList
|
||||
@ -289,6 +298,82 @@ keyValueDefinition
|
||||
: DOUBLE_QUOTE_ID EQUAL_SYMBOL DOUBLE_QUOTE_ID
|
||||
;
|
||||
|
||||
expression
|
||||
:
|
||||
expressions
|
||||
: expression (',' expression)*
|
||||
;
|
||||
|
||||
// Expressions, predicates
|
||||
|
||||
// Simplified approach for expression
|
||||
expression
|
||||
: notOperator=(NOT | '!') expression #notExpression
|
||||
| expression logicalOperator expression #logicalExpression
|
||||
| predicate IS NOT? testValue=(TRUE | FALSE) #isExpression
|
||||
| predicate #predicateExpression
|
||||
;
|
||||
|
||||
predicate
|
||||
: predicate NOT? IN '(' (selectStatement | expressions) ')' #inPredicate
|
||||
| left=predicate comparisonOperator right=predicate #binaryComparasionPredicate
|
||||
| predicate comparisonOperator
|
||||
quantifier=(ALL | ANY) '(' selectStatement ')' #subqueryComparasionPredicate
|
||||
| predicate NOT? BETWEEN predicate AND predicate #betweenPredicate
|
||||
| predicate NOT? LIKE predicate #likePredicate
|
||||
| expressionAtom #expressionAtomPredicate
|
||||
;
|
||||
|
||||
expressionAtom
|
||||
: constant #constantExpressionAtom
|
||||
| fullColumnName #fullColumnNameExpressionAtom
|
||||
| unaryOperator expressionAtom #unaryExpressionAtom
|
||||
| BINARY expressionAtom #binaryExpressionAtom
|
||||
| '(' expression (',' expression)* ')' #nestedExpressionAtom
|
||||
| ROW '(' expression (',' expression)+ ')' #nestedRowExpressionAtom
|
||||
| EXISTS '(' selectStatement ')' #existsExpessionAtom
|
||||
| '(' selectStatement ')' #subqueryExpessionAtom
|
||||
| left=expressionAtom bitOperator right=expressionAtom #bitExpressionAtom
|
||||
| left=expressionAtom mathOperator right=expressionAtom #mathExpressionAtom
|
||||
;
|
||||
|
||||
logicalOperator
|
||||
: AND | '&' '&' | OR | '|' '|'
|
||||
;
|
||||
|
||||
comparisonOperator
|
||||
: '=' | '>' | '<' | '<' '=' | '>' '='
|
||||
| '<' '>' | '!' '=' | '<' '=' '>'
|
||||
;
|
||||
bitOperator
|
||||
: '<' '<' | '>' '>' | '&' | '^' | '|'
|
||||
;
|
||||
|
||||
mathOperator
|
||||
: '*' | '/' | '%' | DIV | '+' | '-' | '--'
|
||||
;
|
||||
|
||||
unaryOperator
|
||||
: '!' | '~' | '+' | '-' | NOT
|
||||
;
|
||||
|
||||
fullColumnName
|
||||
: uid
|
||||
;
|
||||
|
||||
constant
|
||||
: stringLiteral | decimalLiteral
|
||||
| '-' decimalLiteral
|
||||
| booleanLiteral
|
||||
| REAL_LITERAL | BIT_STRING
|
||||
| NOT? NULL
|
||||
;
|
||||
|
||||
stringLiteral
|
||||
: STRING_LITERAL
|
||||
;
|
||||
|
||||
decimalLiteral
|
||||
: DECIMAL_LITERAL | ZERO_DECIMAL | ONE_DECIMAL | TWO_DECIMAL
|
||||
;
|
||||
|
||||
booleanLiteral
|
||||
: TRUE | FALSE;
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -303,6 +303,11 @@ SINGLE_QUOTE_SYMB=302
|
||||
DOUBLE_QUOTE_SYMB=303
|
||||
REVERSE_QUOTE_SYMB=304
|
||||
COLON_SYMB=305
|
||||
ASTERISK_SIGN=306
|
||||
STRING_LITERAL=307
|
||||
DECIMAL_LITERAL=308
|
||||
REAL_LITERAL=309
|
||||
BIT_STRING=310
|
||||
'SELECT'=5
|
||||
'FROM'=6
|
||||
'ADD'=7
|
||||
@ -600,3 +605,4 @@ COLON_SYMB=305
|
||||
'"'=303
|
||||
'`'=304
|
||||
':'=305
|
||||
'*'=306
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,4 +1,21 @@
|
||||
T__0=1
|
||||
T__1=2
|
||||
T__2=3
|
||||
T__3=4
|
||||
T__4=5
|
||||
T__5=6
|
||||
T__6=7
|
||||
T__7=8
|
||||
T__8=9
|
||||
T__9=10
|
||||
T__10=11
|
||||
T__11=12
|
||||
T__12=13
|
||||
T__13=14
|
||||
T__14=15
|
||||
T__15=16
|
||||
T__16=17
|
||||
T__17=18
|
||||
SPACE=1
|
||||
SPEC_MYSQL_COMMENT=2
|
||||
COMMENT_INPUT=3
|
||||
@ -304,7 +321,30 @@ SINGLE_QUOTE_SYMB=302
|
||||
DOUBLE_QUOTE_SYMB=303
|
||||
REVERSE_QUOTE_SYMB=304
|
||||
COLON_SYMB=305
|
||||
','=1
|
||||
ASTERISK_SIGN=306
|
||||
STRING_LITERAL=307
|
||||
DECIMAL_LITERAL=308
|
||||
REAL_LITERAL=309
|
||||
BIT_STRING=310
|
||||
DEC_DIGIT=311
|
||||
'.'=1
|
||||
'*'=2
|
||||
','=3
|
||||
'!'=4
|
||||
'('=5
|
||||
')'=6
|
||||
'&'=7
|
||||
'|'=8
|
||||
'='=9
|
||||
'>'=10
|
||||
'<'=11
|
||||
'^'=12
|
||||
'/'=13
|
||||
'%'=14
|
||||
'+'=15
|
||||
'-'=16
|
||||
'--'=17
|
||||
'~'=18
|
||||
'SELECT'=5
|
||||
'FROM'=6
|
||||
'ADD'=7
|
||||
@ -581,17 +621,6 @@ COLON_SYMB=305
|
||||
'RAW'=282
|
||||
'ROW'=283
|
||||
'NULL'=284
|
||||
'='=285
|
||||
'>'=286
|
||||
'<'=287
|
||||
'!'=288
|
||||
'~'=289
|
||||
'|'=290
|
||||
'&'=291
|
||||
'^'=292
|
||||
'.'=293
|
||||
'('=294
|
||||
')'=295
|
||||
';'=297
|
||||
'@'=298
|
||||
'0'=299
|
||||
|
@ -1,13 +1,64 @@
|
||||
token literal names:
|
||||
null
|
||||
'.'
|
||||
'*'
|
||||
','
|
||||
'!'
|
||||
'('
|
||||
')'
|
||||
'&'
|
||||
'|'
|
||||
'='
|
||||
'>'
|
||||
'<'
|
||||
'^'
|
||||
'/'
|
||||
'%'
|
||||
'+'
|
||||
'-'
|
||||
'--'
|
||||
'~'
|
||||
|
||||
token symbolic names:
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
null
|
||||
|
||||
rule names:
|
||||
T__0
|
||||
T__1
|
||||
T__2
|
||||
T__3
|
||||
T__4
|
||||
T__5
|
||||
T__6
|
||||
T__7
|
||||
T__8
|
||||
T__9
|
||||
T__10
|
||||
T__11
|
||||
T__12
|
||||
T__13
|
||||
T__14
|
||||
T__15
|
||||
T__16
|
||||
T__17
|
||||
|
||||
channel names:
|
||||
DEFAULT_TOKEN_CHANNEL
|
||||
@ -17,4 +68,4 @@ mode names:
|
||||
DEFAULT_MODE
|
||||
|
||||
atn:
|
||||
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 3, 7, 8, 1, 4, 2, 9, 2, 3, 2, 3, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 6, 2, 3, 3, 2, 2, 2, 3, 5, 3, 2, 2, 2, 5, 6, 7, 46, 2, 2, 6, 4, 3, 2, 2, 2, 3, 2, 2]
|
||||
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 20, 76, 8, 1, 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, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 14, 3, 14, 3, 15, 3, 15, 3, 16, 3, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 2, 2, 20, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 3, 2, 2, 2, 75, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 3, 39, 3, 2, 2, 2, 5, 41, 3, 2, 2, 2, 7, 43, 3, 2, 2, 2, 9, 45, 3, 2, 2, 2, 11, 47, 3, 2, 2, 2, 13, 49, 3, 2, 2, 2, 15, 51, 3, 2, 2, 2, 17, 53, 3, 2, 2, 2, 19, 55, 3, 2, 2, 2, 21, 57, 3, 2, 2, 2, 23, 59, 3, 2, 2, 2, 25, 61, 3, 2, 2, 2, 27, 63, 3, 2, 2, 2, 29, 65, 3, 2, 2, 2, 31, 67, 3, 2, 2, 2, 33, 69, 3, 2, 2, 2, 35, 71, 3, 2, 2, 2, 37, 74, 3, 2, 2, 2, 39, 40, 7, 48, 2, 2, 40, 4, 3, 2, 2, 2, 41, 42, 7, 44, 2, 2, 42, 6, 3, 2, 2, 2, 43, 44, 7, 46, 2, 2, 44, 8, 3, 2, 2, 2, 45, 46, 7, 35, 2, 2, 46, 10, 3, 2, 2, 2, 47, 48, 7, 42, 2, 2, 48, 12, 3, 2, 2, 2, 49, 50, 7, 43, 2, 2, 50, 14, 3, 2, 2, 2, 51, 52, 7, 40, 2, 2, 52, 16, 3, 2, 2, 2, 53, 54, 7, 126, 2, 2, 54, 18, 3, 2, 2, 2, 55, 56, 7, 63, 2, 2, 56, 20, 3, 2, 2, 2, 57, 58, 7, 64, 2, 2, 58, 22, 3, 2, 2, 2, 59, 60, 7, 62, 2, 2, 60, 24, 3, 2, 2, 2, 61, 62, 7, 96, 2, 2, 62, 26, 3, 2, 2, 2, 63, 64, 7, 49, 2, 2, 64, 28, 3, 2, 2, 2, 65, 66, 7, 39, 2, 2, 66, 30, 3, 2, 2, 2, 67, 68, 7, 45, 2, 2, 68, 32, 3, 2, 2, 2, 69, 70, 7, 47, 2, 2, 70, 34, 3, 2, 2, 2, 71, 72, 7, 47, 2, 2, 72, 73, 7, 47, 2, 2, 73, 36, 3, 2, 2, 2, 74, 75, 7, 128, 2, 2, 75, 38, 3, 2, 2, 2, 3, 2, 2]
|
@ -5,11 +5,51 @@ var antlr4 = require('antlr4/index');
|
||||
|
||||
|
||||
var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964",
|
||||
"\u0002\u0003\u0007\b\u0001\u0004\u0002\t\u0002\u0003\u0002\u0003\u0002",
|
||||
"\u0002\u0002\u0003\u0003\u0003\u0003\u0002\u0002\u0002\u0006\u0002\u0003",
|
||||
"\u0003\u0002\u0002\u0002\u0003\u0005\u0003\u0002\u0002\u0002\u0005\u0006",
|
||||
"\u0007.\u0002\u0002\u0006\u0004\u0003\u0002\u0002\u0002\u0003\u0002",
|
||||
"\u0002"].join("");
|
||||
"\u0002\u0014L\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004",
|
||||
"\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t",
|
||||
"\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004",
|
||||
"\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010",
|
||||
"\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013",
|
||||
"\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004",
|
||||
"\u0003\u0005\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007",
|
||||
"\u0003\b\u0003\b\u0003\t\u0003\t\u0003\n\u0003\n\u0003\u000b\u0003\u000b",
|
||||
"\u0003\f\u0003\f\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003\u000f",
|
||||
"\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0011\u0003\u0011\u0003\u0012",
|
||||
"\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0002\u0002\u0014\u0003",
|
||||
"\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b\u000f\t\u0011",
|
||||
"\n\u0013\u000b\u0015\f\u0017\r\u0019\u000e\u001b\u000f\u001d\u0010\u001f",
|
||||
"\u0011!\u0012#\u0013%\u0014\u0003\u0002\u0002\u0002K\u0002\u0003\u0003",
|
||||
"\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002\u0002\u0007\u0003",
|
||||
"\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002\u0002\u000b\u0003",
|
||||
"\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002\u0002\u000f\u0003",
|
||||
"\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002\u0002\u0013\u0003",
|
||||
"\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002\u0002\u0017\u0003",
|
||||
"\u0002\u0002\u0002\u0002\u0019\u0003\u0002\u0002\u0002\u0002\u001b\u0003",
|
||||
"\u0002\u0002\u0002\u0002\u001d\u0003\u0002\u0002\u0002\u0002\u001f\u0003",
|
||||
"\u0002\u0002\u0002\u0002!\u0003\u0002\u0002\u0002\u0002#\u0003\u0002",
|
||||
"\u0002\u0002\u0002%\u0003\u0002\u0002\u0002\u0003\'\u0003\u0002\u0002",
|
||||
"\u0002\u0005)\u0003\u0002\u0002\u0002\u0007+\u0003\u0002\u0002\u0002",
|
||||
"\t-\u0003\u0002\u0002\u0002\u000b/\u0003\u0002\u0002\u0002\r1\u0003",
|
||||
"\u0002\u0002\u0002\u000f3\u0003\u0002\u0002\u0002\u00115\u0003\u0002",
|
||||
"\u0002\u0002\u00137\u0003\u0002\u0002\u0002\u00159\u0003\u0002\u0002",
|
||||
"\u0002\u0017;\u0003\u0002\u0002\u0002\u0019=\u0003\u0002\u0002\u0002",
|
||||
"\u001b?\u0003\u0002\u0002\u0002\u001dA\u0003\u0002\u0002\u0002\u001f",
|
||||
"C\u0003\u0002\u0002\u0002!E\u0003\u0002\u0002\u0002#G\u0003\u0002\u0002",
|
||||
"\u0002%J\u0003\u0002\u0002\u0002\'(\u00070\u0002\u0002(\u0004\u0003",
|
||||
"\u0002\u0002\u0002)*\u0007,\u0002\u0002*\u0006\u0003\u0002\u0002\u0002",
|
||||
"+,\u0007.\u0002\u0002,\b\u0003\u0002\u0002\u0002-.\u0007#\u0002\u0002",
|
||||
".\n\u0003\u0002\u0002\u0002/0\u0007*\u0002\u00020\f\u0003\u0002\u0002",
|
||||
"\u000212\u0007+\u0002\u00022\u000e\u0003\u0002\u0002\u000234\u0007(",
|
||||
"\u0002\u00024\u0010\u0003\u0002\u0002\u000256\u0007~\u0002\u00026\u0012",
|
||||
"\u0003\u0002\u0002\u000278\u0007?\u0002\u00028\u0014\u0003\u0002\u0002",
|
||||
"\u00029:\u0007@\u0002\u0002:\u0016\u0003\u0002\u0002\u0002;<\u0007>",
|
||||
"\u0002\u0002<\u0018\u0003\u0002\u0002\u0002=>\u0007`\u0002\u0002>\u001a",
|
||||
"\u0003\u0002\u0002\u0002?@\u00071\u0002\u0002@\u001c\u0003\u0002\u0002",
|
||||
"\u0002AB\u0007\'\u0002\u0002B\u001e\u0003\u0002\u0002\u0002CD\u0007",
|
||||
"-\u0002\u0002D \u0003\u0002\u0002\u0002EF\u0007/\u0002\u0002F\"\u0003",
|
||||
"\u0002\u0002\u0002GH\u0007/\u0002\u0002HI\u0007/\u0002\u0002I$\u0003",
|
||||
"\u0002\u0002\u0002JK\u0007\u0080\u0002\u0002K&\u0003\u0002\u0002\u0002",
|
||||
"\u0003\u0002\u0002"].join("");
|
||||
|
||||
|
||||
var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN);
|
||||
@ -33,16 +73,41 @@ Object.defineProperty(FlinkSqlParserLexer.prototype, "atn", {
|
||||
|
||||
FlinkSqlParserLexer.EOF = antlr4.Token.EOF;
|
||||
FlinkSqlParserLexer.T__0 = 1;
|
||||
FlinkSqlParserLexer.T__1 = 2;
|
||||
FlinkSqlParserLexer.T__2 = 3;
|
||||
FlinkSqlParserLexer.T__3 = 4;
|
||||
FlinkSqlParserLexer.T__4 = 5;
|
||||
FlinkSqlParserLexer.T__5 = 6;
|
||||
FlinkSqlParserLexer.T__6 = 7;
|
||||
FlinkSqlParserLexer.T__7 = 8;
|
||||
FlinkSqlParserLexer.T__8 = 9;
|
||||
FlinkSqlParserLexer.T__9 = 10;
|
||||
FlinkSqlParserLexer.T__10 = 11;
|
||||
FlinkSqlParserLexer.T__11 = 12;
|
||||
FlinkSqlParserLexer.T__12 = 13;
|
||||
FlinkSqlParserLexer.T__13 = 14;
|
||||
FlinkSqlParserLexer.T__14 = 15;
|
||||
FlinkSqlParserLexer.T__15 = 16;
|
||||
FlinkSqlParserLexer.T__16 = 17;
|
||||
FlinkSqlParserLexer.T__17 = 18;
|
||||
|
||||
FlinkSqlParserLexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ];
|
||||
|
||||
FlinkSqlParserLexer.prototype.modeNames = [ "DEFAULT_MODE" ];
|
||||
|
||||
FlinkSqlParserLexer.prototype.literalNames = [ null, "','" ];
|
||||
FlinkSqlParserLexer.prototype.literalNames = [ null, "'.'", "'*'", "','",
|
||||
"'!'", "'('", "')'", "'&'",
|
||||
"'|'", "'='", "'>'", "'<'",
|
||||
"'^'", "'/'", "'%'", "'+'",
|
||||
"'-'", "'--'", "'~'" ];
|
||||
|
||||
FlinkSqlParserLexer.prototype.symbolicNames = [ ];
|
||||
|
||||
FlinkSqlParserLexer.prototype.ruleNames = [ "T__0" ];
|
||||
FlinkSqlParserLexer.prototype.ruleNames = [ "T__0", "T__1", "T__2", "T__3",
|
||||
"T__4", "T__5", "T__6", "T__7",
|
||||
"T__8", "T__9", "T__10", "T__11",
|
||||
"T__12", "T__13", "T__14", "T__15",
|
||||
"T__16", "T__17" ];
|
||||
|
||||
FlinkSqlParserLexer.prototype.grammarFileName = "FlinkSqlParser.g4";
|
||||
|
||||
|
@ -1,2 +1,36 @@
|
||||
T__0=1
|
||||
','=1
|
||||
T__1=2
|
||||
T__2=3
|
||||
T__3=4
|
||||
T__4=5
|
||||
T__5=6
|
||||
T__6=7
|
||||
T__7=8
|
||||
T__8=9
|
||||
T__9=10
|
||||
T__10=11
|
||||
T__11=12
|
||||
T__12=13
|
||||
T__13=14
|
||||
T__14=15
|
||||
T__15=16
|
||||
T__16=17
|
||||
T__17=18
|
||||
'.'=1
|
||||
'*'=2
|
||||
','=3
|
||||
'!'=4
|
||||
'('=5
|
||||
')'=6
|
||||
'&'=7
|
||||
'|'=8
|
||||
'='=9
|
||||
'>'=10
|
||||
'<'=11
|
||||
'^'=12
|
||||
'/'=13
|
||||
'%'=14
|
||||
'+'=15
|
||||
'-'=16
|
||||
'--'=17
|
||||
'~'=18
|
||||
|
@ -245,6 +245,24 @@ FlinkSqlParserListener.prototype.exitDropFunction = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#queryStatement.
|
||||
FlinkSqlParserListener.prototype.enterQueryStatement = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#queryStatement.
|
||||
FlinkSqlParserListener.prototype.exitQueryStatement = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#selectStatements.
|
||||
FlinkSqlParserListener.prototype.enterSelectStatements = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#selectStatements.
|
||||
FlinkSqlParserListener.prototype.exitSelectStatements = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#selectStatement.
|
||||
FlinkSqlParserListener.prototype.enterSelectStatement = function(ctx) {
|
||||
};
|
||||
@ -254,6 +272,159 @@ FlinkSqlParserListener.prototype.exitSelectStatement = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#projectItemDefinition.
|
||||
FlinkSqlParserListener.prototype.enterProjectItemDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#projectItemDefinition.
|
||||
FlinkSqlParserListener.prototype.exitProjectItemDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#tableExpression.
|
||||
FlinkSqlParserListener.prototype.enterTableExpression = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#tableExpression.
|
||||
FlinkSqlParserListener.prototype.exitTableExpression = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#tableReference.
|
||||
FlinkSqlParserListener.prototype.enterTableReference = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#tableReference.
|
||||
FlinkSqlParserListener.prototype.exitTableReference = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#matchRecognize.
|
||||
FlinkSqlParserListener.prototype.enterMatchRecognize = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#matchRecognize.
|
||||
FlinkSqlParserListener.prototype.exitMatchRecognize = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#tablePrimary.
|
||||
FlinkSqlParserListener.prototype.enterTablePrimary = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#tablePrimary.
|
||||
FlinkSqlParserListener.prototype.exitTablePrimary = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#dynamicTableOptions.
|
||||
FlinkSqlParserListener.prototype.enterDynamicTableOptions = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#dynamicTableOptions.
|
||||
FlinkSqlParserListener.prototype.exitDynamicTableOptions = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#joinCondition.
|
||||
FlinkSqlParserListener.prototype.enterJoinCondition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#joinCondition.
|
||||
FlinkSqlParserListener.prototype.exitJoinCondition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#booleanExpression.
|
||||
FlinkSqlParserListener.prototype.enterBooleanExpression = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#booleanExpression.
|
||||
FlinkSqlParserListener.prototype.exitBooleanExpression = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#groupItemDefinition.
|
||||
FlinkSqlParserListener.prototype.enterGroupItemDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#groupItemDefinition.
|
||||
FlinkSqlParserListener.prototype.exitGroupItemDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#selectWithoutFromDefinition.
|
||||
FlinkSqlParserListener.prototype.enterSelectWithoutFromDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#selectWithoutFromDefinition.
|
||||
FlinkSqlParserListener.prototype.exitSelectWithoutFromDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#projectItem.
|
||||
FlinkSqlParserListener.prototype.enterProjectItem = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#projectItem.
|
||||
FlinkSqlParserListener.prototype.exitProjectItem = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#queryOrderByDefinition.
|
||||
FlinkSqlParserListener.prototype.enterQueryOrderByDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#queryOrderByDefinition.
|
||||
FlinkSqlParserListener.prototype.exitQueryOrderByDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#orderItemDefition.
|
||||
FlinkSqlParserListener.prototype.enterOrderItemDefition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#orderItemDefition.
|
||||
FlinkSqlParserListener.prototype.exitOrderItemDefition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#queryLimitDefinition.
|
||||
FlinkSqlParserListener.prototype.enterQueryLimitDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#queryLimitDefinition.
|
||||
FlinkSqlParserListener.prototype.exitQueryLimitDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#countDefinition.
|
||||
FlinkSqlParserListener.prototype.enterCountDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#countDefinition.
|
||||
FlinkSqlParserListener.prototype.exitCountDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#queryOffsetDefinition.
|
||||
FlinkSqlParserListener.prototype.enterQueryOffsetDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#queryOffsetDefinition.
|
||||
FlinkSqlParserListener.prototype.exitQueryOffsetDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#queryFetchDefinition.
|
||||
FlinkSqlParserListener.prototype.enterQueryFetchDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#queryFetchDefinition.
|
||||
FlinkSqlParserListener.prototype.exitQueryFetchDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#insertStatement.
|
||||
FlinkSqlParserListener.prototype.enterInsertStatement = function(ctx) {
|
||||
};
|
||||
@ -290,6 +461,15 @@ FlinkSqlParserListener.prototype.exitValuesRowDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#allValueDifinition.
|
||||
FlinkSqlParserListener.prototype.enterAllValueDifinition = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#allValueDifinition.
|
||||
FlinkSqlParserListener.prototype.exitAllValueDifinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#uidList.
|
||||
FlinkSqlParserListener.prototype.enterUidList = function(ctx) {
|
||||
};
|
||||
@ -344,5 +524,284 @@ FlinkSqlParserListener.prototype.exitKeyValueDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#expressions.
|
||||
FlinkSqlParserListener.prototype.enterExpressions = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#expressions.
|
||||
FlinkSqlParserListener.prototype.exitExpressions = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#isExpression.
|
||||
FlinkSqlParserListener.prototype.enterIsExpression = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#isExpression.
|
||||
FlinkSqlParserListener.prototype.exitIsExpression = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#notExpression.
|
||||
FlinkSqlParserListener.prototype.enterNotExpression = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#notExpression.
|
||||
FlinkSqlParserListener.prototype.exitNotExpression = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#logicalExpression.
|
||||
FlinkSqlParserListener.prototype.enterLogicalExpression = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#logicalExpression.
|
||||
FlinkSqlParserListener.prototype.exitLogicalExpression = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#predicateExpression.
|
||||
FlinkSqlParserListener.prototype.enterPredicateExpression = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#predicateExpression.
|
||||
FlinkSqlParserListener.prototype.exitPredicateExpression = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#expressionAtomPredicate.
|
||||
FlinkSqlParserListener.prototype.enterExpressionAtomPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#expressionAtomPredicate.
|
||||
FlinkSqlParserListener.prototype.exitExpressionAtomPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#inPredicate.
|
||||
FlinkSqlParserListener.prototype.enterInPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#inPredicate.
|
||||
FlinkSqlParserListener.prototype.exitInPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#subqueryComparasionPredicate.
|
||||
FlinkSqlParserListener.prototype.enterSubqueryComparasionPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#subqueryComparasionPredicate.
|
||||
FlinkSqlParserListener.prototype.exitSubqueryComparasionPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#betweenPredicate.
|
||||
FlinkSqlParserListener.prototype.enterBetweenPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#betweenPredicate.
|
||||
FlinkSqlParserListener.prototype.exitBetweenPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#binaryComparasionPredicate.
|
||||
FlinkSqlParserListener.prototype.enterBinaryComparasionPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#binaryComparasionPredicate.
|
||||
FlinkSqlParserListener.prototype.exitBinaryComparasionPredicate = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#likePredicate.
|
||||
FlinkSqlParserListener.prototype.enterLikePredicate = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#likePredicate.
|
||||
FlinkSqlParserListener.prototype.exitLikePredicate = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#unaryExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.enterUnaryExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#unaryExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.exitUnaryExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#subqueryExpessionAtom.
|
||||
FlinkSqlParserListener.prototype.enterSubqueryExpessionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#subqueryExpessionAtom.
|
||||
FlinkSqlParserListener.prototype.exitSubqueryExpessionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#existsExpessionAtom.
|
||||
FlinkSqlParserListener.prototype.enterExistsExpessionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#existsExpessionAtom.
|
||||
FlinkSqlParserListener.prototype.exitExistsExpessionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#constantExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.enterConstantExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#constantExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.exitConstantExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#binaryExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.enterBinaryExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#binaryExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.exitBinaryExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#fullColumnNameExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.enterFullColumnNameExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#fullColumnNameExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.exitFullColumnNameExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#bitExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.enterBitExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#bitExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.exitBitExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#nestedExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.enterNestedExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#nestedExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.exitNestedExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#nestedRowExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.enterNestedRowExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#nestedRowExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.exitNestedRowExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#mathExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.enterMathExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#mathExpressionAtom.
|
||||
FlinkSqlParserListener.prototype.exitMathExpressionAtom = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#logicalOperator.
|
||||
FlinkSqlParserListener.prototype.enterLogicalOperator = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#logicalOperator.
|
||||
FlinkSqlParserListener.prototype.exitLogicalOperator = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#comparisonOperator.
|
||||
FlinkSqlParserListener.prototype.enterComparisonOperator = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#comparisonOperator.
|
||||
FlinkSqlParserListener.prototype.exitComparisonOperator = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#bitOperator.
|
||||
FlinkSqlParserListener.prototype.enterBitOperator = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#bitOperator.
|
||||
FlinkSqlParserListener.prototype.exitBitOperator = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#mathOperator.
|
||||
FlinkSqlParserListener.prototype.enterMathOperator = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#mathOperator.
|
||||
FlinkSqlParserListener.prototype.exitMathOperator = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#unaryOperator.
|
||||
FlinkSqlParserListener.prototype.enterUnaryOperator = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#unaryOperator.
|
||||
FlinkSqlParserListener.prototype.exitUnaryOperator = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#fullColumnName.
|
||||
FlinkSqlParserListener.prototype.enterFullColumnName = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#fullColumnName.
|
||||
FlinkSqlParserListener.prototype.exitFullColumnName = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#constant.
|
||||
FlinkSqlParserListener.prototype.enterConstant = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#constant.
|
||||
FlinkSqlParserListener.prototype.exitConstant = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#stringLiteral.
|
||||
FlinkSqlParserListener.prototype.enterStringLiteral = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#stringLiteral.
|
||||
FlinkSqlParserListener.prototype.exitStringLiteral = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#decimalLiteral.
|
||||
FlinkSqlParserListener.prototype.enterDecimalLiteral = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#decimalLiteral.
|
||||
FlinkSqlParserListener.prototype.exitDecimalLiteral = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Enter a parse tree produced by FlinkSqlParserParser#booleanLiteral.
|
||||
FlinkSqlParserListener.prototype.enterBooleanLiteral = function(ctx) {
|
||||
};
|
||||
|
||||
// Exit a parse tree produced by FlinkSqlParserParser#booleanLiteral.
|
||||
FlinkSqlParserListener.prototype.exitBooleanLiteral = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
|
||||
exports.FlinkSqlParserListener = FlinkSqlParserListener;
|
File diff suppressed because it is too large
Load Diff
@ -168,12 +168,126 @@ FlinkSqlParserVisitor.prototype.visitDropFunction = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#queryStatement.
|
||||
FlinkSqlParserVisitor.prototype.visitQueryStatement = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#selectStatements.
|
||||
FlinkSqlParserVisitor.prototype.visitSelectStatements = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#selectStatement.
|
||||
FlinkSqlParserVisitor.prototype.visitSelectStatement = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#projectItemDefinition.
|
||||
FlinkSqlParserVisitor.prototype.visitProjectItemDefinition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#tableExpression.
|
||||
FlinkSqlParserVisitor.prototype.visitTableExpression = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#tableReference.
|
||||
FlinkSqlParserVisitor.prototype.visitTableReference = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#matchRecognize.
|
||||
FlinkSqlParserVisitor.prototype.visitMatchRecognize = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#tablePrimary.
|
||||
FlinkSqlParserVisitor.prototype.visitTablePrimary = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#dynamicTableOptions.
|
||||
FlinkSqlParserVisitor.prototype.visitDynamicTableOptions = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#joinCondition.
|
||||
FlinkSqlParserVisitor.prototype.visitJoinCondition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#booleanExpression.
|
||||
FlinkSqlParserVisitor.prototype.visitBooleanExpression = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#groupItemDefinition.
|
||||
FlinkSqlParserVisitor.prototype.visitGroupItemDefinition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#selectWithoutFromDefinition.
|
||||
FlinkSqlParserVisitor.prototype.visitSelectWithoutFromDefinition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#projectItem.
|
||||
FlinkSqlParserVisitor.prototype.visitProjectItem = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#queryOrderByDefinition.
|
||||
FlinkSqlParserVisitor.prototype.visitQueryOrderByDefinition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#orderItemDefition.
|
||||
FlinkSqlParserVisitor.prototype.visitOrderItemDefition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#queryLimitDefinition.
|
||||
FlinkSqlParserVisitor.prototype.visitQueryLimitDefinition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#countDefinition.
|
||||
FlinkSqlParserVisitor.prototype.visitCountDefinition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#queryOffsetDefinition.
|
||||
FlinkSqlParserVisitor.prototype.visitQueryOffsetDefinition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#queryFetchDefinition.
|
||||
FlinkSqlParserVisitor.prototype.visitQueryFetchDefinition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#insertStatement.
|
||||
FlinkSqlParserVisitor.prototype.visitInsertStatement = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
@ -198,6 +312,12 @@ FlinkSqlParserVisitor.prototype.visitValuesRowDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#allValueDifinition.
|
||||
FlinkSqlParserVisitor.prototype.visitAllValueDifinition = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#uidList.
|
||||
FlinkSqlParserVisitor.prototype.visitUidList = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
@ -234,5 +354,191 @@ FlinkSqlParserVisitor.prototype.visitKeyValueDefinition = function(ctx) {
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#expressions.
|
||||
FlinkSqlParserVisitor.prototype.visitExpressions = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#isExpression.
|
||||
FlinkSqlParserVisitor.prototype.visitIsExpression = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#notExpression.
|
||||
FlinkSqlParserVisitor.prototype.visitNotExpression = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#logicalExpression.
|
||||
FlinkSqlParserVisitor.prototype.visitLogicalExpression = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#predicateExpression.
|
||||
FlinkSqlParserVisitor.prototype.visitPredicateExpression = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#expressionAtomPredicate.
|
||||
FlinkSqlParserVisitor.prototype.visitExpressionAtomPredicate = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#inPredicate.
|
||||
FlinkSqlParserVisitor.prototype.visitInPredicate = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#subqueryComparasionPredicate.
|
||||
FlinkSqlParserVisitor.prototype.visitSubqueryComparasionPredicate = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#betweenPredicate.
|
||||
FlinkSqlParserVisitor.prototype.visitBetweenPredicate = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#binaryComparasionPredicate.
|
||||
FlinkSqlParserVisitor.prototype.visitBinaryComparasionPredicate = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#likePredicate.
|
||||
FlinkSqlParserVisitor.prototype.visitLikePredicate = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#unaryExpressionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitUnaryExpressionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#subqueryExpessionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitSubqueryExpessionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#existsExpessionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitExistsExpessionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#constantExpressionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitConstantExpressionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#binaryExpressionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitBinaryExpressionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#fullColumnNameExpressionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitFullColumnNameExpressionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#bitExpressionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitBitExpressionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#nestedExpressionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitNestedExpressionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#nestedRowExpressionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitNestedRowExpressionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#mathExpressionAtom.
|
||||
FlinkSqlParserVisitor.prototype.visitMathExpressionAtom = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#logicalOperator.
|
||||
FlinkSqlParserVisitor.prototype.visitLogicalOperator = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#comparisonOperator.
|
||||
FlinkSqlParserVisitor.prototype.visitComparisonOperator = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#bitOperator.
|
||||
FlinkSqlParserVisitor.prototype.visitBitOperator = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#mathOperator.
|
||||
FlinkSqlParserVisitor.prototype.visitMathOperator = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#unaryOperator.
|
||||
FlinkSqlParserVisitor.prototype.visitUnaryOperator = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#fullColumnName.
|
||||
FlinkSqlParserVisitor.prototype.visitFullColumnName = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#constant.
|
||||
FlinkSqlParserVisitor.prototype.visitConstant = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#stringLiteral.
|
||||
FlinkSqlParserVisitor.prototype.visitStringLiteral = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#decimalLiteral.
|
||||
FlinkSqlParserVisitor.prototype.visitDecimalLiteral = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
// Visit a parse tree produced by FlinkSqlParserParser#booleanLiteral.
|
||||
FlinkSqlParserVisitor.prototype.visitBooleanLiteral = function(ctx) {
|
||||
return this.visitChildren(ctx);
|
||||
};
|
||||
|
||||
|
||||
|
||||
exports.FlinkSqlParserVisitor = FlinkSqlParserVisitor;
|
@ -69,4 +69,10 @@ describe('FlinkSQL Syntax Tests', () => {
|
||||
const result = parser.validate(sql);
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
test('Test simple Select Statement', () => {
|
||||
const sql = ` SELECT product, amount FROM Orders;`;
|
||||
const result = parser.validate(sql);
|
||||
console.log(result);
|
||||
expect(result.length).toBe(0);
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user