feat(flink): add inset\drop\alter grammar
This commit is contained in:
		@ -267,9 +267,11 @@ BRACKETED_EMPTY_COMMENT:      'BRACKETED_EMPTY_COMMENT';
 | 
			
		||||
BRACKETED_COMMENT:            'BRACKETED_COMMENT';
 | 
			
		||||
WS:                           'WS';
 | 
			
		||||
UNRECOGNIZED:                 'UNRECOGNIZED';
 | 
			
		||||
REVERSE_QUOTE_ID:             '"' ~'"'+ '"';
 | 
			
		||||
REVERSE_QUOTE_ID:              '`' ~'`'+ '`';
 | 
			
		||||
DOUBLE_QUOTE_ID:              '"' ~'"'+ '"';
 | 
			
		||||
DOT_ID:                       '.' ID_LITERAL;
 | 
			
		||||
ID:                           ID_LITERAL;
 | 
			
		||||
SYSTEM:                       'SYSTEM';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// DATA TYPE Keywords
 | 
			
		||||
@ -332,4 +334,4 @@ REVERSE_QUOTE_SYMB:                  '`';
 | 
			
		||||
COLON_SYMB:                          ':';
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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]*;
 | 
			
		||||
@ -30,20 +30,16 @@ dmlStatement
 | 
			
		||||
    : selectStatement | insertStatement
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Create statements
 | 
			
		||||
 | 
			
		||||
createTable
 | 
			
		||||
    : CREATE TABLE tableName
 | 
			
		||||
    : CREATE TABLE uid
 | 
			
		||||
    LR_BRACKET 
 | 
			
		||||
        columnOptionDefinition (COMMA columnOptionDefinition)*
 | 
			
		||||
    RR_BRACKET
 | 
			
		||||
    partitionDefinition?
 | 
			
		||||
    WITH LR_BRACKET
 | 
			
		||||
        withOptionDefinition (COMMA withOptionDefinition)*
 | 
			
		||||
    RR_BRACKET
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
tableName
 | 
			
		||||
    : ID (DOT_ID)*?
 | 
			
		||||
    withOption
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
columnOptionDefinition
 | 
			
		||||
@ -74,54 +70,118 @@ partitionColumnName
 | 
			
		||||
    : ID
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
withOptionDefinition
 | 
			
		||||
    : REVERSE_QUOTE_ID EQUAL_SYMBOL REVERSE_QUOTE_ID
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
createDatabase
 | 
			
		||||
    :
 | 
			
		||||
    : CREATE DATABASE ifNotExists? uid withOption
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
createView
 | 
			
		||||
    :
 | 
			
		||||
    : CREATE TEMPORARY? VIEW ifNotExists? uid AS selectStatement
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
createFunction
 | 
			
		||||
    :
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
// Alter statements
 | 
			
		||||
 | 
			
		||||
alterTable
 | 
			
		||||
    :
 | 
			
		||||
    : ALTER TABLE uid (renameDefinition | setKeyValueDefinition)
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
renameDefinition
 | 
			
		||||
    : RENAME TO uid
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
setKeyValueDefinition
 | 
			
		||||
    : SET LR_BRACKET
 | 
			
		||||
        keyValueDefinition (COMMA keyValueDefinition)*
 | 
			
		||||
    RR_BRACKET
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
alterDatabase
 | 
			
		||||
    :
 | 
			
		||||
    : ALTER DATABASE uid setKeyValueDefinition
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
alterFunction
 | 
			
		||||
    :
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Drop statements
 | 
			
		||||
 | 
			
		||||
dropTable
 | 
			
		||||
    :
 | 
			
		||||
    : DROP TABLE ifExists uid
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
dropDatabase
 | 
			
		||||
    :
 | 
			
		||||
    : DROP DATABASE ifExists uid dropType=(RESTRICT | CASCADE)?
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
dropView
 | 
			
		||||
    :
 | 
			
		||||
    : DROP TEMPORARY? VIEW ifExists uid
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
dropFunction
 | 
			
		||||
    :
 | 
			
		||||
    : DROP (TEMPORARY|TEMPORARY SYSTEM)? FUNCTION ifExists uid
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Select statements
 | 
			
		||||
 | 
			
		||||
selectStatement
 | 
			
		||||
    :
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Insert statements
 | 
			
		||||
 | 
			
		||||
insertStatement
 | 
			
		||||
    :
 | 
			
		||||
    : INSERT (INTO | OVERWRITE) uid
 | 
			
		||||
    (
 | 
			
		||||
        insertPartitionDefinition? selectStatement
 | 
			
		||||
        | valuesDefinition
 | 
			
		||||
    )
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
insertPartitionDefinition
 | 
			
		||||
    : PARTITION LR_BRACKET
 | 
			
		||||
        keyValueDefinition (COMMA keyValueDefinition)*
 | 
			
		||||
    RR_BRACKET
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
valuesDefinition
 | 
			
		||||
    : VALUES valuesRowDefinition (COMMA valuesRowDefinition)*
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
// TODO 匹配所有的值 任意value
 | 
			
		||||
valuesRowDefinition
 | 
			
		||||
    : LR_BRACKET
 | 
			
		||||
        .*?
 | 
			
		||||
    RR_BRACKET
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
// base common
 | 
			
		||||
 | 
			
		||||
uidList
 | 
			
		||||
    : uid (',' uid)*
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
uid
 | 
			
		||||
    : ID (DOT_ID)*?
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
withOption
 | 
			
		||||
    : WITH LR_BRACKET
 | 
			
		||||
        keyValueDefinition (COMMA keyValueDefinition)*
 | 
			
		||||
    RR_BRACKET
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
ifNotExists
 | 
			
		||||
    : IF NOT EXISTS;
 | 
			
		||||
 | 
			
		||||
ifExists
 | 
			
		||||
    : IF EXISTS;
 | 
			
		||||
 | 
			
		||||
keyValueDefinition
 | 
			
		||||
    : DOUBLE_QUOTE_ID EQUAL_SYMBOL DOUBLE_QUOTE_ID
 | 
			
		||||
    ;
 | 
			
		||||
		Reference in New Issue
	
	Block a user