feat: add some query grammar

This commit is contained in:
Erindcl 2020-11-11 19:58:14 +08:00
parent ba29949359
commit a5ea7be606
14 changed files with 8903 additions and 2199 deletions

View File

@ -333,6 +333,18 @@ DOUBLE_QUOTE_SYMB: '"';
REVERSE_QUOTE_SYMB: '`'; REVERSE_QUOTE_SYMB: '`';
COLON_SYMB: ':'; COLON_SYMB: ':';
ASTERISK_SIGN: '*'; 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 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: '`' ( '\\'. | '``' | ~('`'|'\\'))* '`';

View File

@ -144,14 +144,14 @@ selectStatement
: SELECT (ALL | DISTINCT)? : SELECT (ALL | DISTINCT)?
(ASTERISK_SIGN | projectItemDefinition (COMMA projectItemDefinition)*) (ASTERISK_SIGN | projectItemDefinition (COMMA projectItemDefinition)*)
FROM tableExpression FROM tableExpression
(WHERE booleanExpression)? (WHERE expression)?
(GROUP BY groupItemDefinition (COMMA groupItemDefinition)*) (GROUP BY groupItemDefinition (COMMA groupItemDefinition)*)
(HAVING booleanExpression)? (HAVING expression)?
// (WINDOW windowName AS windowSpec (COMMA windowName AS windowSpec)*)? // (WINDOW windowName AS windowSpec (COMMA windowName AS windowSpec)*)?
; ;
projectItemDefinition // expression (AS? columnAlias)? | tableAlias . * projectItemDefinition
: : expression (AS? uid)? | uid '.' '*'
; ;
tableExpression tableExpression
@ -160,20 +160,27 @@ tableExpression
; ;
tableReference tableReference
: // tablePrimary matchRecognize? (AS? alias (LR_BRACKET columnAlias (COMMA columnAlias)* RR_BRACKET)?)? : tablePrimary matchRecognize? (AS? uid (LR_BRACKET uid (COMMA uid)* RR_BRACKET)?)?
; ;
// tablePrimary matchRecognize
// : 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
: :
; ;
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 booleanExpression
: :
; ;
@ -208,15 +215,15 @@ selectWithoutFromDefinition
; ;
projectItem projectItem
: // expression (AS? columnAlias)? | tableAlias . * : expression (AS? uid)? | uid '.' '*'
; ;
queryOrderByDefinition queryOrderByDefinition
: ORDER BY orderItemDefition (COMMA orderItemDefition)* : ORDER BY orderItemDefition (COMMA orderItemDefition)*
; ;
orderItemDefition // expression (ASC | DESC)? orderItemDefition
: : expression (ASC | DESC)
; ;
queryLimitDefinition queryLimitDefinition
@ -235,7 +242,6 @@ queryFetchDefinition // FETCH (FIRST | NEXT) countDefinition? (ROW | ROWS) ONLY
: :
; ;
// Insert statements // Insert statements
insertStatement insertStatement
@ -256,13 +262,16 @@ valuesDefinition
: VALUES valuesRowDefinition (COMMA valuesRowDefinition)* : VALUES valuesRowDefinition (COMMA valuesRowDefinition)*
; ;
// TODO 匹配所有的值 任意value 即:(val1 [, val2, ...])
valuesRowDefinition valuesRowDefinition
: LR_BRACKET : LR_BRACKET
.*? allValueDifinition (COMMA allValueDifinition)*
RR_BRACKET RR_BRACKET
; ;
allValueDifinition
: stringLiteral | booleanLiteral | DEC_DIGIT | NULL
;
// base common // base common
uidList uidList
@ -289,6 +298,82 @@ keyValueDefinition
: DOUBLE_QUOTE_ID EQUAL_SYMBOL DOUBLE_QUOTE_ID : 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

View File

@ -303,6 +303,11 @@ SINGLE_QUOTE_SYMB=302
DOUBLE_QUOTE_SYMB=303 DOUBLE_QUOTE_SYMB=303
REVERSE_QUOTE_SYMB=304 REVERSE_QUOTE_SYMB=304
COLON_SYMB=305 COLON_SYMB=305
ASTERISK_SIGN=306
STRING_LITERAL=307
DECIMAL_LITERAL=308
REAL_LITERAL=309
BIT_STRING=310
'SELECT'=5 'SELECT'=5
'FROM'=6 'FROM'=6
'ADD'=7 'ADD'=7
@ -600,3 +605,4 @@ COLON_SYMB=305
'"'=303 '"'=303
'`'=304 '`'=304
':'=305 ':'=305
'*'=306

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,21 @@
T__0=1 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 SPACE=1
SPEC_MYSQL_COMMENT=2 SPEC_MYSQL_COMMENT=2
COMMENT_INPUT=3 COMMENT_INPUT=3
@ -304,7 +321,30 @@ SINGLE_QUOTE_SYMB=302
DOUBLE_QUOTE_SYMB=303 DOUBLE_QUOTE_SYMB=303
REVERSE_QUOTE_SYMB=304 REVERSE_QUOTE_SYMB=304
COLON_SYMB=305 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 'SELECT'=5
'FROM'=6 'FROM'=6
'ADD'=7 'ADD'=7
@ -581,17 +621,6 @@ COLON_SYMB=305
'RAW'=282 'RAW'=282
'ROW'=283 'ROW'=283
'NULL'=284 'NULL'=284
'='=285
'>'=286
'<'=287
'!'=288
'~'=289
'|'=290
'&'=291
'^'=292
'.'=293
'('=294
')'=295
';'=297 ';'=297
'@'=298 '@'=298
'0'=299 '0'=299

View File

@ -1,13 +1,64 @@
token literal names: token literal names:
null null
'.'
'*'
',' ','
'!'
'('
')'
'&'
'|'
'='
'>'
'<'
'^'
'/'
'%'
'+'
'-'
'--'
'~'
token symbolic names: token symbolic names:
null null
null null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
rule names: rule names:
T__0 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: channel names:
DEFAULT_TOKEN_CHANNEL DEFAULT_TOKEN_CHANNEL
@ -17,4 +68,4 @@ mode names:
DEFAULT_MODE DEFAULT_MODE
atn: 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]

View File

@ -5,11 +5,51 @@ var antlr4 = require('antlr4/index');
var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", 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\u0014L\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004",
"\u0002\u0002\u0003\u0003\u0003\u0003\u0002\u0002\u0002\u0006\u0002\u0003", "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t",
"\u0003\u0002\u0002\u0002\u0003\u0005\u0003\u0002\u0002\u0002\u0005\u0006", "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004",
"\u0007.\u0002\u0002\u0006\u0004\u0003\u0002\u0002\u0002\u0003\u0002", "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010",
"\u0002"].join(""); "\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); var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN);
@ -33,16 +73,41 @@ Object.defineProperty(FlinkSqlParserLexer.prototype, "atn", {
FlinkSqlParserLexer.EOF = antlr4.Token.EOF; FlinkSqlParserLexer.EOF = antlr4.Token.EOF;
FlinkSqlParserLexer.T__0 = 1; 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.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ];
FlinkSqlParserLexer.prototype.modeNames = [ "DEFAULT_MODE" ]; FlinkSqlParserLexer.prototype.modeNames = [ "DEFAULT_MODE" ];
FlinkSqlParserLexer.prototype.literalNames = [ null, "','" ]; FlinkSqlParserLexer.prototype.literalNames = [ null, "'.'", "'*'", "','",
"'!'", "'('", "')'", "'&'",
"'|'", "'='", "'>'", "'<'",
"'^'", "'/'", "'%'", "'+'",
"'-'", "'--'", "'~'" ];
FlinkSqlParserLexer.prototype.symbolicNames = [ ]; 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"; FlinkSqlParserLexer.prototype.grammarFileName = "FlinkSqlParser.g4";

View File

@ -1,2 +1,36 @@
T__0=1 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

View File

@ -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. // Enter a parse tree produced by FlinkSqlParserParser#selectStatement.
FlinkSqlParserListener.prototype.enterSelectStatement = function(ctx) { 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. // Enter a parse tree produced by FlinkSqlParserParser#insertStatement.
FlinkSqlParserListener.prototype.enterInsertStatement = function(ctx) { 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. // Enter a parse tree produced by FlinkSqlParserParser#uidList.
FlinkSqlParserListener.prototype.enterUidList = function(ctx) { 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; exports.FlinkSqlParserListener = FlinkSqlParserListener;

File diff suppressed because it is too large Load Diff

View File

@ -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. // Visit a parse tree produced by FlinkSqlParserParser#selectStatement.
FlinkSqlParserVisitor.prototype.visitSelectStatement = function(ctx) { FlinkSqlParserVisitor.prototype.visitSelectStatement = function(ctx) {
return this.visitChildren(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. // Visit a parse tree produced by FlinkSqlParserParser#insertStatement.
FlinkSqlParserVisitor.prototype.visitInsertStatement = function(ctx) { FlinkSqlParserVisitor.prototype.visitInsertStatement = function(ctx) {
return this.visitChildren(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. // Visit a parse tree produced by FlinkSqlParserParser#uidList.
FlinkSqlParserVisitor.prototype.visitUidList = function(ctx) { FlinkSqlParserVisitor.prototype.visitUidList = function(ctx) {
return this.visitChildren(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; exports.FlinkSqlParserVisitor = FlinkSqlParserVisitor;

View File

@ -69,4 +69,10 @@ describe('FlinkSQL Syntax Tests', () => {
const result = parser.validate(sql); const result = parser.validate(sql);
expect(result.length).toBe(0); 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);
});
}); });