Skip to content

Commit c0842b3

Browse files
authored
Feat/flink dt sql (#75)
* feat: dt self develop grammar * feat: dt self develop grammar
1 parent 4f02f9a commit c0842b3

11 files changed

Lines changed: 5330 additions & 4778 deletions

src/grammar/flinksql/FlinkSqlLexer.g4

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,14 @@ JAVA: 'JAVA';
252252
SCALA: 'SCALA';
253253
PYTHON: 'PYTHON';
254254
JAR: 'JAR';
255+
FILE: 'FILE';
256+
PYTHON_FILES: 'PYTHON_FILES';
257+
PYTHON_REQUIREMENTS: 'PYTHON_REQUIREMENTS';
258+
PYTHON_DEPENDENCIES: 'PYTHON_DEPENDENCIES';
259+
PYTHON_JAR: 'PYTHON_JAR';
260+
PYTHON_ARCHIVES: 'PYTHON_ARCHIVES';
261+
PYTHON_PARAMETER: 'PYTHON_PARAMETER';
262+
ENGINE: 'ENGINE';
255263
CATALOGS: 'CATALOGS';
256264
VIEWS: 'VIEWS';
257265
JARS: 'JARS';
@@ -345,7 +353,9 @@ REAL_LITERAL: (DEC_DIGIT+)? '.' DEC_DIGIT+
345353
BIT_STRING: BIT_STRING_L;
346354
ID_LITERAL: ID_LITERAL_FRAG;
347355
PLUS_ID_LITERAL: PLUS_ID_LITERAL_FRAG;
356+
FILE_PATH: FILE_PATH_STRING;
348357

358+
fragment FILE_PATH_STRING: ([/\\] (~([/\\ ]))*)+;
349359
fragment JAR_FILE_PARTTARN: '`' ( '\\'. | '``' | ~('`'|'\\'))* '`';
350360
fragment EXPONENT_NUM_PART: 'E' [-+]? DEC_DIGIT+;
351361
fragment ID_LITERAL_FRAG: [A-Z_0-9a-z]*?[A-Z_a-z]+?[A-Z_0-9a-z]*;

src/grammar/flinksql/FlinkSqlParser.g4

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ sqlStatements
1414

1515
sqlStatement
1616
: ddlStatement | dmlStatement | describeStatement | explainStatement | useStatement | showStatememt
17-
| loadStatement | unloadStatememt | setStatememt | resetStatememt | jarStatememt
17+
| loadStatement | unloadStatememt | setStatememt | resetStatememt | jarStatememt | dtAddStatement
1818
;
1919

2020
emptyStatement
@@ -86,6 +86,15 @@ jarStatememt
8686
: (ADD | REMOVE) JAR jarFileName
8787
;
8888

89+
// 数栈平台自研的添加文件语法
90+
dtAddStatement
91+
: ADD JAR WITH FILE_PATH (AS uid)?
92+
| ADD FILE WITH FILE_PATH (AS uid)? (RENAME uid)?
93+
| ADD (PYTHON_FILES | PYTHON_REQUIREMENTS | PYTHON_DEPENDENCIES | PYTHON_JAR | PYTHON_ARCHIVES) WITH FILE_PATH RENAME uid
94+
| ADD PYTHON_PARAMETER FILE_PATH
95+
| ADD ENGINE FILE WITH FILE_PATH RENAME uid KEY uid
96+
;
97+
8998
// Create statements
9099

91100
createTable

src/lib/flinksql/FlinkSqlLexer.interp

Lines changed: 29 additions & 1 deletion
Large diffs are not rendered by default.

src/lib/flinksql/FlinkSqlLexer.js

Lines changed: 1774 additions & 1658 deletions
Large diffs are not rendered by default.

src/lib/flinksql/FlinkSqlLexer.tokens

Lines changed: 157 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -241,80 +241,89 @@ JAVA=240
241241
SCALA=241
242242
PYTHON=242
243243
JAR=243
244-
CATALOGS=244
245-
VIEWS=245
246-
JARS=246
247-
PRIMARY=247
248-
KEY=248
249-
PERIOD=249
250-
SYSTEM_TIME=250
251-
ENFORCED=251
252-
METADATA=252
253-
VIRTUAL=253
254-
STRING=254
255-
ARRAY=255
256-
MAP=256
257-
CHAR=257
258-
VARCHAR=258
259-
BINARY=259
260-
VARBINARY=260
261-
BYTES=261
262-
DECIMAL=262
263-
DEC=263
264-
NUMERIC=264
265-
TINYINT=265
266-
SMALLINT=266
267-
INT=267
268-
INTEGER=268
269-
BIGINT=269
270-
FLOAT=270
271-
DOUBLE=271
272-
DATE=272
273-
TIME=273
274-
TIMESTAMP=274
275-
TIMESTAMP_LTZ=275
276-
MULTISET=276
277-
BOOLEAN=277
278-
RAW=278
279-
ROW=279
280-
NULL=280
281-
DATETIME=281
282-
EQUAL_SYMBOL=282
283-
GREATER_SYMBOL=283
284-
LESS_SYMBOL=284
285-
EXCLAMATION_SYMBOL=285
286-
BIT_NOT_OP=286
287-
BIT_OR_OP=287
288-
BIT_AND_OP=288
289-
BIT_XOR_OP=289
290-
DOT=290
291-
LS_BRACKET=291
292-
RS_BRACKET=292
293-
LR_BRACKET=293
294-
RR_BRACKET=294
295-
COMMA=295
296-
SEMICOLON=296
297-
AT_SIGN=297
298-
SINGLE_QUOTE_SYMB=298
299-
DOUBLE_QUOTE_SYMB=299
300-
REVERSE_QUOTE_SYMB=300
301-
COLON_SYMB=301
302-
ASTERISK_SIGN=302
303-
UNDERLINE_SIGN=303
304-
HYPNEN_SIGN=304
305-
ADD_SIGN=305
306-
PENCENT_SIGN=306
307-
DOUBLE_VERTICAL_SIGN=307
308-
DOUBLE_HYPNEN_SIGN=308
309-
SLASH_SIGN=309
310-
DOT_ID=310
311-
PLUS_DOT_ID=311
312-
STRING_LITERAL=312
313-
DIG_LITERAL=313
314-
REAL_LITERAL=314
315-
BIT_STRING=315
316-
ID_LITERAL=316
317-
PLUS_ID_LITERAL=317
244+
FILE=244
245+
PYTHON_FILES=245
246+
PYTHON_REQUIREMENTS=246
247+
PYTHON_DEPENDENCIES=247
248+
PYTHON_JAR=248
249+
PYTHON_ARCHIVES=249
250+
PYTHON_PARAMETER=250
251+
ENGINE=251
252+
CATALOGS=252
253+
VIEWS=253
254+
JARS=254
255+
PRIMARY=255
256+
KEY=256
257+
PERIOD=257
258+
SYSTEM_TIME=258
259+
ENFORCED=259
260+
METADATA=260
261+
VIRTUAL=261
262+
STRING=262
263+
ARRAY=263
264+
MAP=264
265+
CHAR=265
266+
VARCHAR=266
267+
BINARY=267
268+
VARBINARY=268
269+
BYTES=269
270+
DECIMAL=270
271+
DEC=271
272+
NUMERIC=272
273+
TINYINT=273
274+
SMALLINT=274
275+
INT=275
276+
INTEGER=276
277+
BIGINT=277
278+
FLOAT=278
279+
DOUBLE=279
280+
DATE=280
281+
TIME=281
282+
TIMESTAMP=282
283+
TIMESTAMP_LTZ=283
284+
MULTISET=284
285+
BOOLEAN=285
286+
RAW=286
287+
ROW=287
288+
NULL=288
289+
DATETIME=289
290+
EQUAL_SYMBOL=290
291+
GREATER_SYMBOL=291
292+
LESS_SYMBOL=292
293+
EXCLAMATION_SYMBOL=293
294+
BIT_NOT_OP=294
295+
BIT_OR_OP=295
296+
BIT_AND_OP=296
297+
BIT_XOR_OP=297
298+
DOT=298
299+
LS_BRACKET=299
300+
RS_BRACKET=300
301+
LR_BRACKET=301
302+
RR_BRACKET=302
303+
COMMA=303
304+
SEMICOLON=304
305+
AT_SIGN=305
306+
SINGLE_QUOTE_SYMB=306
307+
DOUBLE_QUOTE_SYMB=307
308+
REVERSE_QUOTE_SYMB=308
309+
COLON_SYMB=309
310+
ASTERISK_SIGN=310
311+
UNDERLINE_SIGN=311
312+
HYPNEN_SIGN=312
313+
ADD_SIGN=313
314+
PENCENT_SIGN=314
315+
DOUBLE_VERTICAL_SIGN=315
316+
DOUBLE_HYPNEN_SIGN=316
317+
SLASH_SIGN=317
318+
DOT_ID=318
319+
PLUS_DOT_ID=319
320+
STRING_LITERAL=320
321+
DIG_LITERAL=321
322+
REAL_LITERAL=322
323+
BIT_STRING=323
324+
ID_LITERAL=324
325+
PLUS_ID_LITERAL=325
326+
FILE_PATH=326
318327
'SELECT'=4
319328
'FROM'=5
320329
'ADD'=6
@@ -555,69 +564,77 @@ PLUS_ID_LITERAL=317
555564
'SCALA'=241
556565
'PYTHON'=242
557566
'JAR'=243
558-
'CATALOGS'=244
559-
'VIEWS'=245
560-
'JARS'=246
561-
'PRIMARY'=247
562-
'KEY'=248
563-
'PERIOD'=249
564-
'SYSTEM_TIME'=250
565-
'ENFORCED'=251
566-
'METADATA'=252
567-
'VIRTUAL'=253
568-
'STRING'=254
569-
'ARRAY'=255
570-
'MAP'=256
571-
'CHAR'=257
572-
'VARCHAR'=258
573-
'BINARY'=259
574-
'VARBINARY'=260
575-
'BYTES'=261
576-
'DECIMAL'=262
577-
'DEC'=263
578-
'NUMERIC'=264
579-
'TINYINT'=265
580-
'SMALLINT'=266
581-
'INT'=267
582-
'INTEGER'=268
583-
'BIGINT'=269
584-
'FLOAT'=270
585-
'DOUBLE'=271
586-
'DATE'=272
587-
'TIME'=273
588-
'TIMESTAMP'=274
589-
'TIMESTAMP_LTZ'=275
590-
'MULTISET'=276
591-
'BOOLEAN'=277
592-
'RAW'=278
593-
'ROW'=279
594-
'NULL'=280
595-
'DATETIME'=281
596-
'='=282
597-
'>'=283
598-
'<'=284
599-
'!'=285
600-
'~'=286
601-
'|'=287
602-
'&'=288
603-
'^'=289
604-
'.'=290
605-
'['=291
606-
']'=292
607-
'('=293
608-
')'=294
609-
','=295
610-
';'=296
611-
'@'=297
612-
'\''=298
613-
'"'=299
614-
'`'=300
615-
':'=301
616-
'*'=302
617-
'_'=303
618-
'-'=304
619-
'+'=305
620-
'%'=306
621-
'||'=307
622-
'--'=308
623-
'/'=309
567+
'FILE'=244
568+
'PYTHON_FILES'=245
569+
'PYTHON_REQUIREMENTS'=246
570+
'PYTHON_DEPENDENCIES'=247
571+
'PYTHON_JAR'=248
572+
'PYTHON_ARCHIVES'=249
573+
'PYTHON_PARAMETER'=250
574+
'ENGINE'=251
575+
'CATALOGS'=252
576+
'VIEWS'=253
577+
'JARS'=254
578+
'PRIMARY'=255
579+
'KEY'=256
580+
'PERIOD'=257
581+
'SYSTEM_TIME'=258
582+
'ENFORCED'=259
583+
'METADATA'=260
584+
'VIRTUAL'=261
585+
'STRING'=262
586+
'ARRAY'=263
587+
'MAP'=264
588+
'CHAR'=265
589+
'VARCHAR'=266
590+
'BINARY'=267
591+
'VARBINARY'=268
592+
'BYTES'=269
593+
'DECIMAL'=270
594+
'DEC'=271
595+
'NUMERIC'=272
596+
'TINYINT'=273
597+
'SMALLINT'=274
598+
'INT'=275
599+
'INTEGER'=276
600+
'BIGINT'=277
601+
'FLOAT'=278
602+
'DOUBLE'=279
603+
'DATE'=280
604+
'TIME'=281
605+
'TIMESTAMP'=282
606+
'TIMESTAMP_LTZ'=283
607+
'MULTISET'=284
608+
'BOOLEAN'=285
609+
'RAW'=286
610+
'ROW'=287
611+
'NULL'=288
612+
'DATETIME'=289
613+
'='=290
614+
'>'=291
615+
'<'=292
616+
'!'=293
617+
'~'=294
618+
'|'=295
619+
'&'=296
620+
'^'=297
621+
'.'=298
622+
'['=299
623+
']'=300
624+
'('=301
625+
')'=302
626+
','=303
627+
';'=304
628+
'@'=305
629+
'\''=306
630+
'"'=307
631+
'`'=308
632+
':'=309
633+
'*'=310
634+
'_'=311
635+
'-'=312
636+
'+'=313
637+
'%'=314
638+
'||'=315
639+
'--'=316
640+
'/'=317

0 commit comments

Comments
 (0)