feat: improve flinksql createStatement (#91)

* feat: improve flinksql createStatement

* feat: complete CREATE syntax unit tests

* feat: complete CREATA TABLE syntax tests

* feat: develop flinkSQL grammar

* feat: improve tableConstraint

* fix: convert TIMESTAMP_LTZ

* test: improve tests

* feat: build new flinksql parser and lexer

* test: add CREATE TEMPLATE TABLE test
This commit is contained in:
野迂迂
2023-05-11 17:41:34 +08:00
committed by GitHub
parent c1c72def30
commit 370cccf8d9
17 changed files with 5547 additions and 5409 deletions

View File

@ -138,15 +138,16 @@ columnName
;
columnNameList
: columnName (',' columnName)*
: LR_BRACKET columnName (',' columnName)* RR_BRACKET
;
columnType
: typeName=(DATE | BOOLEAN | NULL)
| typeName=(CHAR | VARCHAR | STRING | BINARY | VARBINARY | BYTES
| TINYINT | SMALLINT | INT | INTEGER | BIGINT
| TIME | TIMESTAMP | TIMESTAMP_LTZ | DATETIME
| TIME | TIMESTAMP_LTZ | DATETIME
) lengthOneDimension?
| typeName=TIMESTAMP lengthOneDimension? ((WITHOUT | WITH) LOCAL? TIME ZONE)?
| typeName=(DECIMAL | DEC | NUMERIC | FLOAT | DOUBLE) lengthTwoOptionalDimension?
| type=(ARRAY | MULTISET) lengthOneTypeDimension?
| type=MAP mapTypeDimension?
@ -179,7 +180,7 @@ rowTypeDimension
;
columnConstraint
:(CONSTRAINT constraintName)? PRIMARY KEY (NOT ENFORCED)?
:(CONSTRAINT constraintName)? PRIMARY KEY NOT ENFORCED
;
commentSpec
@ -208,7 +209,7 @@ watermarkDefinition
;
tableConstraint
: (CONSTRAINT constraintName)? PRIMARY KEY '(' columnNameList ')' (NOT ENFORCED)?
: (CONSTRAINT constraintName)? PRIMARY KEY columnNameList NOT ENFORCED
;
constraintName
@ -247,8 +248,8 @@ sourceTable
;
likeOption
: (INCLUDING | EXCLUDING) (ALL | CONSTRAINTS | PARTITIONS)
| (INCLUDING | EXCLUDING | OVERWRITING) (GENERATED | OPTIONS | WATERMARKS)
: ((INCLUDING | EXCLUDING) (ALL | CONSTRAINTS | PARTITIONS))
| ((INCLUDING | EXCLUDING | OVERWRITING) (GENERATED | OPTIONS | WATERMARKS))
;
createCatalog
@ -334,7 +335,7 @@ insertStatement
insertSimpleStatement
: INSERT (INTO | OVERWRITE) uid
(
insertPartitionDefinition? insertColumnListDefinition? queryStatement
insertPartitionDefinition? columnNameList? queryStatement
| valuesDefinition
)
;
@ -343,10 +344,6 @@ insertPartitionDefinition
: PARTITION tablePropertyList
;
insertColumnListDefinition
: LR_BRACKET columnNameList RR_BRACKET
;
valuesDefinition
: VALUES valuesRowDefinition (COMMA valuesRowDefinition)*
;