support format g4 (#232)
* chore: install antlr-format-cli to format g4 files * style: format all g4 files * chore: apply antlr-format to lint-staged
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,16 @@
|
||||
// $antlr-format alignTrailingComments true, columnLimit 150, minEmptyLines 1, maxEmptyLinesToKeep 1, reflowComments false, useTab false
|
||||
// $antlr-format allowShortRulesOnASingleLine false, allowShortBlocksOnASingleLine true, alignSemicolons hanging, alignColons hanging
|
||||
// $antlr-format spaceBeforeAssignmentOperators false, keepEmptyLinesAtTheStartOfBlocks true
|
||||
|
||||
parser grammar FlinkSqlParser;
|
||||
|
||||
options { tokenVocab=FlinkSqlLexer; }
|
||||
options {
|
||||
tokenVocab=FlinkSqlLexer;
|
||||
}
|
||||
|
||||
program: singleStatement* EOF;
|
||||
program
|
||||
: singleStatement* EOF
|
||||
;
|
||||
|
||||
singleStatement
|
||||
: sqlStatement SEMICOLON?
|
||||
@ -10,10 +18,18 @@ singleStatement
|
||||
;
|
||||
|
||||
sqlStatement
|
||||
: ddlStatement | dmlStatement | describeStatement
|
||||
| explainStatement | useStatement | showStatememt
|
||||
| loadStatement | unloadStatememt | setStatememt
|
||||
| resetStatememt | jarStatememt | dtAddStatement
|
||||
: ddlStatement
|
||||
| dmlStatement
|
||||
| describeStatement
|
||||
| explainStatement
|
||||
| useStatement
|
||||
| showStatememt
|
||||
| loadStatement
|
||||
| unloadStatememt
|
||||
| setStatememt
|
||||
| resetStatememt
|
||||
| jarStatememt
|
||||
| dtAddStatement
|
||||
;
|
||||
|
||||
emptyStatement
|
||||
@ -21,13 +37,25 @@ emptyStatement
|
||||
;
|
||||
|
||||
ddlStatement
|
||||
: createTable | createDatabase | createView | createFunction | createCatalog
|
||||
| alterTable | alertView | alterDatabase | alterFunction
|
||||
| dropCatalog | dropTable | dropDatabase | dropView | dropFunction
|
||||
: createTable
|
||||
| createDatabase
|
||||
| createView
|
||||
| createFunction
|
||||
| createCatalog
|
||||
| alterTable
|
||||
| alertView
|
||||
| alterDatabase
|
||||
| alterFunction
|
||||
| dropCatalog
|
||||
| dropTable
|
||||
| dropDatabase
|
||||
| dropView
|
||||
| dropFunction
|
||||
;
|
||||
|
||||
dmlStatement
|
||||
: queryStatement | insertStatement
|
||||
: queryStatement
|
||||
| insertStatement
|
||||
;
|
||||
|
||||
// some statemen
|
||||
@ -36,7 +64,11 @@ describeStatement
|
||||
;
|
||||
|
||||
explainStatement
|
||||
: KW_EXPLAIN (explainDetails | KW_PLAN KW_FOR)? (dmlStatement | insertSimpleStatement | insertMulStatement)
|
||||
: KW_EXPLAIN (explainDetails | KW_PLAN KW_FOR)? (
|
||||
dmlStatement
|
||||
| insertSimpleStatement
|
||||
| insertMulStatement
|
||||
)
|
||||
;
|
||||
|
||||
explainDetails
|
||||
@ -44,11 +76,13 @@ explainDetails
|
||||
;
|
||||
|
||||
explainDetail
|
||||
: KW_CHANGELOG_MODE | KW_JSON_EXECUTION_PLAN | KW_ESTIMATED_COST
|
||||
: KW_CHANGELOG_MODE
|
||||
| KW_JSON_EXECUTION_PLAN
|
||||
| KW_ESTIMATED_COST
|
||||
;
|
||||
|
||||
useStatement
|
||||
: KW_USE KW_CATALOG catalogPath
|
||||
: KW_USE KW_CATALOG catalogPath
|
||||
| KW_USE databasePath
|
||||
| useModuleStatement
|
||||
;
|
||||
@ -60,8 +94,8 @@ useModuleStatement
|
||||
showStatememt
|
||||
: KW_SHOW (KW_CATALOGS | KW_DATABASES | KW_VIEWS | KW_JARS)
|
||||
| KW_SHOW KW_CURRENT (KW_CATALOG | KW_DATABASE)
|
||||
| KW_SHOW KW_TABLES (( KW_FROM | KW_IN ) databasePath)? likePredicate?
|
||||
| KW_SHOW KW_COLUMNS ( KW_FROM | KW_IN ) (viewPath| tablePath) likePredicate?
|
||||
| KW_SHOW KW_TABLES (( KW_FROM | KW_IN) databasePath)? likePredicate?
|
||||
| KW_SHOW KW_COLUMNS ( KW_FROM | KW_IN) (viewPath | tablePath) likePredicate?
|
||||
| KW_SHOW KW_CREATE (KW_TABLE tablePath | KW_VIEW viewPath)
|
||||
| KW_SHOW KW_USER? KW_FUNCTIONS
|
||||
| KW_SHOW KW_FULL? KW_MODULES
|
||||
@ -70,7 +104,7 @@ showStatememt
|
||||
loadStatement
|
||||
: KW_LOAD KW_MODULE uid (KW_WITH tablePropertyList)?
|
||||
;
|
||||
|
||||
|
||||
unloadStatememt
|
||||
: KW_UNLOAD KW_MODULE uid
|
||||
;
|
||||
@ -82,7 +116,7 @@ setStatememt
|
||||
resetStatememt
|
||||
: KW_RESET tablePropertyKey?
|
||||
;
|
||||
|
||||
|
||||
jarStatememt
|
||||
: (KW_ADD | KW_REMOVE) KW_JAR jarFileName
|
||||
;
|
||||
@ -91,7 +125,13 @@ jarStatememt
|
||||
dtAddStatement
|
||||
: KW_ADD KW_JAR KW_WITH dtFilePath (KW_AS uid)?
|
||||
| KW_ADD KW_FILE KW_WITH dtFilePath (KW_AS uid)? (KW_RENAME uid)?
|
||||
| KW_ADD (KW_PYTHON_FILES | KW_PYTHON_REQUIREMENTS | KW_PYTHON_DEPENDENCIES | KW_PYTHON_JAR | KW_PYTHON_ARCHIVES) KW_WITH dtFilePath KW_RENAME uid
|
||||
| KW_ADD (
|
||||
KW_PYTHON_FILES
|
||||
| KW_PYTHON_REQUIREMENTS
|
||||
| KW_PYTHON_DEPENDENCIES
|
||||
| KW_PYTHON_JAR
|
||||
| KW_PYTHON_ARCHIVES
|
||||
) KW_WITH dtFilePath KW_RENAME uid
|
||||
| KW_ADD KW_PYTHON_PARAMETER dtFilePath
|
||||
| KW_ADD KW_ENGINE KW_FILE KW_WITH dtFilePath KW_RENAME uid KW_KEY uid
|
||||
| KW_ADD KW_CONFIG KW_FILE KW_WITH dtFilePath KW_FOR uid KW_AS uid
|
||||
@ -106,19 +146,12 @@ dtFilePath
|
||||
createTable
|
||||
: (simpleCreateTable | createTableAsSelect)
|
||||
;
|
||||
|
||||
|
||||
simpleCreateTable
|
||||
: KW_CREATE KW_TEMPORARY? KW_TABLE ifNotExists? tablePathCreate
|
||||
LR_BRACKET
|
||||
columnOptionDefinition (COMMA columnOptionDefinition)*
|
||||
(COMMA watermarkDefinition)?
|
||||
(COMMA tableConstraint)?
|
||||
(COMMA selfDefinitionClause)?
|
||||
RR_BRACKET
|
||||
commentSpec?
|
||||
partitionDefinition?
|
||||
withOption
|
||||
likeDefinition?
|
||||
: KW_CREATE KW_TEMPORARY? KW_TABLE ifNotExists? tablePathCreate LR_BRACKET columnOptionDefinition (
|
||||
COMMA columnOptionDefinition
|
||||
)* (COMMA watermarkDefinition)? (COMMA tableConstraint)? (COMMA selfDefinitionClause)? RR_BRACKET commentSpec? partitionDefinition? withOption
|
||||
likeDefinition?
|
||||
;
|
||||
|
||||
/*
|
||||
@ -141,10 +174,12 @@ physicalColumnDefinition
|
||||
|
||||
columnNameCreate
|
||||
: uid
|
||||
| expression;
|
||||
| expression
|
||||
;
|
||||
|
||||
columnName
|
||||
: uid | expression
|
||||
: uid
|
||||
| expression
|
||||
;
|
||||
|
||||
columnNameList
|
||||
@ -153,9 +188,21 @@ columnNameList
|
||||
|
||||
columnType
|
||||
: typeName=(KW_DATE | KW_BOOLEAN | KW_NULL)
|
||||
| typeName=(KW_CHAR | KW_VARCHAR | KW_STRING | KW_BINARY | KW_VARBINARY | KW_BYTES
|
||||
| KW_TINYINT | KW_SMALLINT |KW_INT | KW_INTEGER | KW_BIGINT
|
||||
| KW_TIME | KW_TIMESTAMP_LTZ | KW_DATETIME
|
||||
| typeName=(
|
||||
KW_CHAR
|
||||
| KW_VARCHAR
|
||||
| KW_STRING
|
||||
| KW_BINARY
|
||||
| KW_VARBINARY
|
||||
| KW_BYTES
|
||||
| KW_TINYINT
|
||||
| KW_SMALLINT
|
||||
| KW_INT
|
||||
| KW_INTEGER
|
||||
| KW_BIGINT
|
||||
| KW_TIME
|
||||
| KW_TIMESTAMP_LTZ
|
||||
| KW_DATETIME
|
||||
) lengthOneDimension?
|
||||
| typeName=KW_TIMESTAMP lengthOneDimension? ((KW_WITHOUT | KW_WITH) KW_LOCAL? KW_TIME KW_ZONE)?
|
||||
| typeName=(KW_DECIMAL | KW_DEC | KW_NUMERIC | KW_FLOAT | KW_DOUBLE) lengthTwoOptionalDimension?
|
||||
@ -190,7 +237,8 @@ rowTypeDimension
|
||||
;
|
||||
|
||||
columnConstraint
|
||||
:(KW_CONSTRAINT constraintName)? KW_PRIMARY KW_KEY (KW_NOT KW_ENFORCED)? | KW_NOT? KW_NULL
|
||||
: (KW_CONSTRAINT constraintName)? KW_PRIMARY KW_KEY (KW_NOT KW_ENFORCED)?
|
||||
| KW_NOT? KW_NULL
|
||||
;
|
||||
|
||||
commentSpec
|
||||
@ -239,9 +287,9 @@ transformList
|
||||
;
|
||||
|
||||
transform
|
||||
: columnName #identityTransform
|
||||
| qualifiedName #columnTransform
|
||||
| LR_BRACKET transformArgument (COMMA transformArgument)* RR_BRACKET #applyTransform
|
||||
: columnName # identityTransform
|
||||
| qualifiedName # columnTransform
|
||||
| LR_BRACKET transformArgument (COMMA transformArgument)* RR_BRACKET # applyTransform
|
||||
;
|
||||
|
||||
transformArgument
|
||||
@ -271,11 +319,13 @@ createView
|
||||
;
|
||||
|
||||
createFunction
|
||||
: KW_CREATE (KW_TEMPORARY|KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifNotExists? functionNameCreate KW_AS identifier (KW_LANGUAGE (KW_JAVA|KW_SCALA|KW_PYTHON))? usingClause?
|
||||
: KW_CREATE (KW_TEMPORARY | KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifNotExists? functionNameCreate KW_AS identifier (
|
||||
KW_LANGUAGE (KW_JAVA | KW_SCALA | KW_PYTHON)
|
||||
)? usingClause?
|
||||
;
|
||||
|
||||
usingClause
|
||||
: KW_USING KW_JAR jarFileName (COMMA KW_JAR jarFileName)*
|
||||
: KW_USING KW_JAR jarFileName (COMMA KW_JAR jarFileName)*
|
||||
;
|
||||
|
||||
jarFileName
|
||||
@ -287,7 +337,13 @@ jarFileName
|
||||
// it only includes rename, set key, add constraint, drop constraint, add unique
|
||||
|
||||
alterTable
|
||||
: KW_ALTER KW_TABLE ifExists? tablePath (renameDefinition | setKeyValueDefinition | addConstraint | dropConstraint | addUnique)
|
||||
: KW_ALTER KW_TABLE ifExists? tablePath (
|
||||
renameDefinition
|
||||
| setKeyValueDefinition
|
||||
| addConstraint
|
||||
| dropConstraint
|
||||
| addUnique
|
||||
)
|
||||
;
|
||||
|
||||
renameDefinition
|
||||
@ -323,10 +379,11 @@ alterDatabase
|
||||
;
|
||||
|
||||
alterFunction
|
||||
: KW_ALTER (KW_TEMPORARY|KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifExists? functionName KW_AS identifier (KW_LANGUAGE (KW_JAVA|KW_SCALA|KW_PYTHON))? // TODO
|
||||
: KW_ALTER (KW_TEMPORARY | KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifExists? functionName KW_AS identifier (
|
||||
KW_LANGUAGE (KW_JAVA | KW_SCALA | KW_PYTHON)
|
||||
)? // TODO
|
||||
;
|
||||
|
||||
|
||||
// Drop statements
|
||||
|
||||
dropCatalog
|
||||
@ -346,20 +403,19 @@ dropView
|
||||
;
|
||||
|
||||
dropFunction
|
||||
: KW_DROP (KW_TEMPORARY|KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifExists? functionName
|
||||
: KW_DROP (KW_TEMPORARY | KW_TEMPORARY KW_SYSTEM)? KW_FUNCTION ifExists? functionName
|
||||
;
|
||||
|
||||
|
||||
// Insert statements
|
||||
|
||||
insertStatement
|
||||
: (KW_EXECUTE? insertSimpleStatement)
|
||||
| insertMulStatementCompatibility | (KW_EXECUTE insertMulStatement)
|
||||
: (KW_EXECUTE? insertSimpleStatement)
|
||||
| insertMulStatementCompatibility
|
||||
| (KW_EXECUTE insertMulStatement)
|
||||
;
|
||||
|
||||
insertSimpleStatement
|
||||
: KW_INSERT (KW_INTO | KW_OVERWRITE) tablePath
|
||||
(
|
||||
: KW_INSERT (KW_INTO | KW_OVERWRITE) tablePath (
|
||||
insertPartitionDefinition? columnNameList? queryStatement
|
||||
| valuesDefinition
|
||||
)
|
||||
@ -374,13 +430,11 @@ valuesDefinition
|
||||
;
|
||||
|
||||
valuesRowDefinition
|
||||
: LR_BRACKET
|
||||
constant (COMMA constant)*
|
||||
RR_BRACKET
|
||||
: LR_BRACKET constant (COMMA constant)* RR_BRACKET
|
||||
;
|
||||
|
||||
insertMulStatementCompatibility
|
||||
: KW_BEGIN KW_STATEMENT KW_SET SEMICOLON (insertSimpleStatement SEMICOLON)+ KW_END
|
||||
: KW_BEGIN KW_STATEMENT KW_SET SEMICOLON (insertSimpleStatement SEMICOLON)+ KW_END
|
||||
;
|
||||
|
||||
insertMulStatement
|
||||
@ -399,7 +453,7 @@ queryStatement
|
||||
;
|
||||
|
||||
valuesCaluse
|
||||
: KW_VALUES expression (COMMA expression )*
|
||||
: KW_VALUES expression (COMMA expression)*
|
||||
;
|
||||
|
||||
withClause
|
||||
@ -420,12 +474,15 @@ selectStatement
|
||||
;
|
||||
|
||||
selectClause
|
||||
: KW_SELECT setQuantifier? (ASTERISK_SIGN | projectItemDefinition (COMMA projectItemDefinition)*)
|
||||
: KW_SELECT setQuantifier? (
|
||||
ASTERISK_SIGN
|
||||
| projectItemDefinition (COMMA projectItemDefinition)*
|
||||
)
|
||||
;
|
||||
|
||||
projectItemDefinition
|
||||
: overWindowItem
|
||||
| columnName (KW_AS? expression )?
|
||||
| columnName (KW_AS? expression)?
|
||||
;
|
||||
|
||||
overWindowItem
|
||||
@ -481,7 +538,7 @@ windoTVFName
|
||||
: KW_TUMBLE
|
||||
| KW_HOP
|
||||
| KW_CUMULATE
|
||||
;
|
||||
;
|
||||
|
||||
windowTVFParam
|
||||
: KW_TABLE timeAttrColumn
|
||||
@ -563,25 +620,12 @@ namedWindow
|
||||
;
|
||||
|
||||
windowSpec
|
||||
: name=errorCapturingIdentifier?
|
||||
LR_BRACKET
|
||||
partitionByClause?
|
||||
orderByCaluse?
|
||||
windowFrame?
|
||||
RR_BRACKET
|
||||
: name=errorCapturingIdentifier? LR_BRACKET partitionByClause? orderByCaluse? windowFrame? RR_BRACKET
|
||||
;
|
||||
|
||||
matchRecognizeClause
|
||||
: KW_MATCH_RECOGNIZE
|
||||
LR_BRACKET
|
||||
partitionByClause?
|
||||
orderByCaluse?
|
||||
measuresClause?
|
||||
outputMode?
|
||||
afterMatchStrategy?
|
||||
patternDefination?
|
||||
patternVariablesDefination
|
||||
RR_BRACKET ( KW_AS? identifier )?
|
||||
: KW_MATCH_RECOGNIZE LR_BRACKET partitionByClause? orderByCaluse? measuresClause? outputMode? afterMatchStrategy? patternDefination?
|
||||
patternVariablesDefination RR_BRACKET (KW_AS? identifier)?
|
||||
;
|
||||
|
||||
orderByCaluse
|
||||
@ -605,7 +649,7 @@ quantifiers
|
||||
| (ADD_SIGN)
|
||||
| (QUESTION_MARK_SIGN)
|
||||
| (LB_BRACKET DIG_LITERAL COMMA DIG_LITERAL RB_BRACKET)
|
||||
| (LB_BRACKET DIG_LITERAL COMMA RB_BRACKET)
|
||||
| (LB_BRACKET DIG_LITERAL COMMA RB_BRACKET)
|
||||
| (LB_BRACKET COMMA DIG_LITERAL RB_BRACKET)
|
||||
;
|
||||
|
||||
@ -614,11 +658,7 @@ measuresClause
|
||||
;
|
||||
|
||||
patternDefination
|
||||
: KW_PATTERN
|
||||
LR_BRACKET
|
||||
patternVariable+
|
||||
RR_BRACKET
|
||||
withinClause?
|
||||
: KW_PATTERN LR_BRACKET patternVariable+ RR_BRACKET withinClause?
|
||||
;
|
||||
|
||||
patternVariable
|
||||
@ -631,7 +671,7 @@ outputMode
|
||||
;
|
||||
|
||||
afterMatchStrategy
|
||||
: KW_AFTER KW_MATCH KW_SKIP KW_PAST KW_LAST KW_ROW
|
||||
: KW_AFTER KW_MATCH KW_SKIP KW_PAST KW_LAST KW_ROW
|
||||
| KW_AFTER KW_MATCH KW_SKIP KW_TO KW_NEXT KW_ROW
|
||||
| KW_AFTER KW_MATCH KW_SKIP KW_TO KW_LAST unquotedIdentifier
|
||||
| KW_AFTER KW_MATCH KW_SKIP KW_TO KW_FIRST unquotedIdentifier
|
||||
@ -654,7 +694,6 @@ withinClause
|
||||
: KW_WITHIN timeIntervalExpression
|
||||
;
|
||||
|
||||
|
||||
// expression
|
||||
|
||||
expression
|
||||
@ -662,19 +701,16 @@ expression
|
||||
;
|
||||
|
||||
booleanExpression
|
||||
: KW_NOT booleanExpression #logicalNot
|
||||
| KW_EXISTS LR_BRACKET queryStatement RR_BRACKET #exists
|
||||
| valueExpression predicate? #predicated
|
||||
| left=booleanExpression operator=KW_AND right=booleanExpression #logicalBinary
|
||||
| left=booleanExpression operator=KW_OR right=booleanExpression #logicalBinary
|
||||
| booleanExpression KW_IS KW_NOT? kind=(KW_TRUE | KW_FALSE | KW_UNKNOWN | KW_NULL) #logicalNested
|
||||
: KW_NOT booleanExpression # logicalNot
|
||||
| KW_EXISTS LR_BRACKET queryStatement RR_BRACKET # exists
|
||||
| valueExpression predicate? # predicated
|
||||
| left=booleanExpression operator=KW_AND right=booleanExpression # logicalBinary
|
||||
| left=booleanExpression operator=KW_OR right=booleanExpression # logicalBinary
|
||||
| booleanExpression KW_IS KW_NOT? kind=(KW_TRUE | KW_FALSE | KW_UNKNOWN | KW_NULL) # logicalNested
|
||||
;
|
||||
|
||||
predicate
|
||||
: KW_NOT?
|
||||
kind=KW_BETWEEN (KW_ASYMMETRIC | KW_SYMMETRIC)?
|
||||
lower=valueExpression KW_AND
|
||||
upper=valueExpression
|
||||
: KW_NOT? kind=KW_BETWEEN (KW_ASYMMETRIC | KW_SYMMETRIC)? lower=valueExpression KW_AND upper=valueExpression
|
||||
| KW_NOT? kind=KW_IN LR_BRACKET expression (COMMA expression)* RR_BRACKET
|
||||
| KW_NOT? kind=KW_IN LR_BRACKET queryStatement RR_BRACKET
|
||||
| kind=KW_EXISTS LR_BRACKET queryStatement RR_BRACKET
|
||||
@ -686,42 +722,45 @@ predicate
|
||||
;
|
||||
|
||||
likePredicate
|
||||
: KW_NOT? kind=KW_LIKE quantifier=(KW_ANY | KW_ALL) (LR_BRACKET RR_BRACKET | LR_BRACKET expression (COMMA expression)* RR_BRACKET)
|
||||
: KW_NOT? kind=KW_LIKE quantifier=(KW_ANY | KW_ALL) (
|
||||
LR_BRACKET RR_BRACKET
|
||||
| LR_BRACKET expression (COMMA expression)* RR_BRACKET
|
||||
)
|
||||
| KW_NOT? kind=KW_LIKE pattern=valueExpression (KW_ESCAPE stringLiteral)?
|
||||
;
|
||||
|
||||
valueExpression
|
||||
: primaryExpression #valueExpressionDefault
|
||||
| operator=(HYPNEN_SIGN | ADD_SIGN | BIT_NOT_OP) valueExpression #arithmeticUnary
|
||||
| left=valueExpression operator=(ASTERISK_SIGN | SLASH_SIGN | PENCENT_SIGN | KW_DIV) right=valueExpression #arithmeticBinary
|
||||
| left=valueExpression operator=(ADD_SIGN | HYPNEN_SIGN | DOUBLE_VERTICAL_SIGN) right=valueExpression #arithmeticBinary
|
||||
| left=valueExpression operator=BIT_AND_OP right=valueExpression #arithmeticBinary
|
||||
| left=valueExpression operator=BIT_XOR_OP right=valueExpression #arithmeticBinary
|
||||
| left=valueExpression operator=BIT_OR_OP right=valueExpression #arithmeticBinary
|
||||
| left=valueExpression comparisonOperator right=valueExpression #comparison
|
||||
: primaryExpression # valueExpressionDefault
|
||||
| operator=(HYPNEN_SIGN | ADD_SIGN | BIT_NOT_OP) valueExpression # arithmeticUnary
|
||||
| left=valueExpression operator=(ASTERISK_SIGN | SLASH_SIGN | PENCENT_SIGN | KW_DIV) right=valueExpression # arithmeticBinary
|
||||
| left=valueExpression operator=(ADD_SIGN | HYPNEN_SIGN | DOUBLE_VERTICAL_SIGN) right=valueExpression # arithmeticBinary
|
||||
| left=valueExpression operator=BIT_AND_OP right=valueExpression # arithmeticBinary
|
||||
| left=valueExpression operator=BIT_XOR_OP right=valueExpression # arithmeticBinary
|
||||
| left=valueExpression operator=BIT_OR_OP right=valueExpression # arithmeticBinary
|
||||
| left=valueExpression comparisonOperator right=valueExpression # comparison
|
||||
;
|
||||
|
||||
primaryExpression
|
||||
: KW_CASE whenClause+ (KW_ELSE elseExpression=expression)? KW_END #searchedCase
|
||||
| KW_CASE value=expression whenClause+ (KW_ELSE elseExpression=expression)? KW_END #simpleCase
|
||||
| KW_CAST LR_BRACKET expression KW_AS columnType RR_BRACKET #cast
|
||||
: KW_CASE whenClause+ (KW_ELSE elseExpression=expression)? KW_END # searchedCase
|
||||
| KW_CASE value=expression whenClause+ (KW_ELSE elseExpression=expression)? KW_END # simpleCase
|
||||
| KW_CAST LR_BRACKET expression KW_AS columnType RR_BRACKET # cast
|
||||
// | STRUCT LR_BRACKET (argument+=namedExpression (COMMA argument+=namedExpression)*)? RR_BRACKET #struct
|
||||
| KW_FIRST LR_BRACKET expression (KW_IGNORE KW_NULLS)? RR_BRACKET #first
|
||||
| KW_LAST LR_BRACKET expression (KW_IGNORE KW_NULLS)? RR_BRACKET #last
|
||||
| KW_POSITION LR_BRACKET substr=valueExpression KW_IN str=valueExpression RR_BRACKET #position
|
||||
| constant #constantDefault
|
||||
| ASTERISK_SIGN #star
|
||||
| uid DOT ASTERISK_SIGN #star
|
||||
| KW_FIRST LR_BRACKET expression (KW_IGNORE KW_NULLS)? RR_BRACKET # first
|
||||
| KW_LAST LR_BRACKET expression (KW_IGNORE KW_NULLS)? RR_BRACKET # last
|
||||
| KW_POSITION LR_BRACKET substr=valueExpression KW_IN str=valueExpression RR_BRACKET # position
|
||||
| constant # constantDefault
|
||||
| ASTERISK_SIGN # star
|
||||
| uid DOT ASTERISK_SIGN # star
|
||||
// | LR_BRACKET namedExpression (COMMA namedExpression)+ RR_BRACKET #rowConstructor
|
||||
| LR_BRACKET queryStatement RR_BRACKET #subqueryExpression
|
||||
| functionName LR_BRACKET (setQuantifier? functionParam (COMMA functionParam)*)? RR_BRACKET #functionCall
|
||||
| LR_BRACKET queryStatement RR_BRACKET # subqueryExpression
|
||||
| functionName LR_BRACKET (setQuantifier? functionParam (COMMA functionParam)*)? RR_BRACKET # functionCall
|
||||
// | identifier '->' expression #lambda
|
||||
// | '(' identifier (',' identifier)+ ')' '->' expression #lambda
|
||||
| value=primaryExpression LS_BRACKET index=valueExpression RS_BRACKET #subscript
|
||||
| identifier #columnReference
|
||||
| dereferenceDefinition #dereference
|
||||
| LR_BRACKET expression RR_BRACKET #parenthesizedExpression
|
||||
| KW_CURRENT_TIMESTAMP #dateFunctionExpression
|
||||
| value=primaryExpression LS_BRACKET index=valueExpression RS_BRACKET # subscript
|
||||
| identifier # columnReference
|
||||
| dereferenceDefinition # dereference
|
||||
| LR_BRACKET expression RR_BRACKET # parenthesizedExpression
|
||||
| KW_CURRENT_TIMESTAMP # dateFunctionExpression
|
||||
// | EXTRACT LR_BRACKET field=identifier KW_FROM source=valueExpression RR_BRACKET #extract
|
||||
// | (SUBSTR | SUBSTRING) LR_BRACKET str=valueExpression (KW_FROM | COMMA) pos=valueExpression
|
||||
// ((KW_FOR | COMMA) len=valueExpression)? RR_BRACKET #substring
|
||||
@ -758,7 +797,8 @@ correlationName
|
||||
;
|
||||
|
||||
qualifiedName
|
||||
: identifier | dereferenceDefinition
|
||||
: identifier
|
||||
| dereferenceDefinition
|
||||
;
|
||||
|
||||
timeIntervalExpression
|
||||
@ -795,8 +835,8 @@ errorCapturingIdentifier
|
||||
;
|
||||
|
||||
errorCapturingIdentifierExtra
|
||||
: (KW_MINUS identifier)+ #errorIdent
|
||||
| #realIdent
|
||||
: (KW_MINUS identifier)+ # errorIdent
|
||||
| # realIdent
|
||||
;
|
||||
|
||||
identifierList
|
||||
@ -808,13 +848,14 @@ identifierSeq
|
||||
;
|
||||
|
||||
identifier
|
||||
: unquotedIdentifier #unquotedIdentifierAlternative
|
||||
| quotedIdentifier #quotedIdentifierAlternative
|
||||
| nonReservedKeywords #nonReservedKeywordsAlternative
|
||||
: unquotedIdentifier # unquotedIdentifierAlternative
|
||||
| quotedIdentifier # quotedIdentifierAlternative
|
||||
| nonReservedKeywords # nonReservedKeywordsAlternative
|
||||
;
|
||||
|
||||
unquotedIdentifier
|
||||
: DIG_LITERAL | ID_LITERAL
|
||||
: DIG_LITERAL
|
||||
| ID_LITERAL
|
||||
;
|
||||
|
||||
quotedIdentifier
|
||||
@ -870,10 +911,12 @@ withOption
|
||||
;
|
||||
|
||||
ifNotExists
|
||||
: KW_IF KW_NOT KW_EXISTS;
|
||||
: KW_IF KW_NOT KW_EXISTS
|
||||
;
|
||||
|
||||
ifExists
|
||||
: KW_IF KW_EXISTS;
|
||||
: KW_IF KW_EXISTS
|
||||
;
|
||||
|
||||
tablePropertyList
|
||||
: LR_BRACKET tableProperty (COMMA tableProperty)* RR_BRACKET
|
||||
@ -884,7 +927,8 @@ tableProperty
|
||||
;
|
||||
|
||||
tablePropertyKey
|
||||
: identifier | dereferenceDefinition
|
||||
: identifier
|
||||
| dereferenceDefinition
|
||||
| STRING_LITERAL
|
||||
;
|
||||
|
||||
@ -898,56 +942,56 @@ tablePropertyValue
|
||||
logicalOperator
|
||||
: KW_AND
|
||||
| BIT_AND_OP BIT_AND_OP
|
||||
| KW_OR
|
||||
| KW_OR
|
||||
| BIT_OR_OP BIT_OR_OP
|
||||
;
|
||||
|
||||
comparisonOperator
|
||||
: EQUAL_SYMBOL
|
||||
| GREATER_SYMBOL
|
||||
| LESS_SYMBOL
|
||||
| LESS_SYMBOL EQUAL_SYMBOL
|
||||
: EQUAL_SYMBOL
|
||||
| GREATER_SYMBOL
|
||||
| LESS_SYMBOL
|
||||
| LESS_SYMBOL EQUAL_SYMBOL
|
||||
| GREATER_SYMBOL EQUAL_SYMBOL
|
||||
| LESS_SYMBOL GREATER_SYMBOL
|
||||
| EXCLAMATION_SYMBOL EQUAL_SYMBOL
|
||||
| LESS_SYMBOL GREATER_SYMBOL
|
||||
| EXCLAMATION_SYMBOL EQUAL_SYMBOL
|
||||
| LESS_SYMBOL EQUAL_SYMBOL GREATER_SYMBOL
|
||||
;
|
||||
|
||||
bitOperator
|
||||
: LESS_SYMBOL LESS_SYMBOL
|
||||
| GREATER_SYMBOL GREATER_SYMBOL
|
||||
| BIT_AND_OP
|
||||
| BIT_XOR_OP
|
||||
: LESS_SYMBOL LESS_SYMBOL
|
||||
| GREATER_SYMBOL GREATER_SYMBOL
|
||||
| BIT_AND_OP
|
||||
| BIT_XOR_OP
|
||||
| BIT_OR_OP
|
||||
;
|
||||
|
||||
mathOperator
|
||||
: ASTERISK_SIGN
|
||||
| SLASH_SIGN
|
||||
| PENCENT_SIGN
|
||||
| KW_DIV
|
||||
| ADD_SIGN
|
||||
| HYPNEN_SIGN
|
||||
: ASTERISK_SIGN
|
||||
| SLASH_SIGN
|
||||
| PENCENT_SIGN
|
||||
| KW_DIV
|
||||
| ADD_SIGN
|
||||
| HYPNEN_SIGN
|
||||
| DOUBLE_HYPNEN_SIGN
|
||||
;
|
||||
|
||||
unaryOperator
|
||||
: EXCLAMATION_SYMBOL
|
||||
| BIT_NOT_OP
|
||||
| ADD_SIGN
|
||||
| HYPNEN_SIGN
|
||||
: EXCLAMATION_SYMBOL
|
||||
| BIT_NOT_OP
|
||||
| ADD_SIGN
|
||||
| HYPNEN_SIGN
|
||||
| KW_NOT
|
||||
;
|
||||
|
||||
constant
|
||||
: timeIntervalExpression
|
||||
| timePointLiteral
|
||||
| stringLiteral // 引号包含的字符串
|
||||
| HYPNEN_SIGN? decimalLiteral // 正/负整数
|
||||
| booleanLiteral // 布尔值
|
||||
| REAL_LITERAL // 小数
|
||||
| stringLiteral // 引号包含的字符串
|
||||
| HYPNEN_SIGN? decimalLiteral // 正/负整数
|
||||
| booleanLiteral // 布尔值
|
||||
| REAL_LITERAL // 小数
|
||||
| BIT_STRING
|
||||
| KW_NOT? KW_NULL // 空 | 非空
|
||||
| KW_NOT? KW_NULL // 空 | 非空
|
||||
;
|
||||
|
||||
timePointLiteral
|
||||
@ -963,7 +1007,9 @@ decimalLiteral
|
||||
;
|
||||
|
||||
booleanLiteral
|
||||
: KW_TRUE | KW_FALSE;
|
||||
: KW_TRUE
|
||||
| KW_FALSE
|
||||
;
|
||||
|
||||
setQuantifier
|
||||
: KW_DISTINCT
|
||||
@ -1159,5 +1205,5 @@ nonReservedKeywords
|
||||
| KW_VIEW
|
||||
| KW_WEEK
|
||||
| KW_YEARS
|
||||
| KW_ZONE
|
||||
| KW_ZONE
|
||||
;
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -19,351 +19,317 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
// $antlr-format alignTrailingComments true, columnLimit 150, maxEmptyLinesToKeep 1, reflowComments false, useTab false
|
||||
// $antlr-format allowShortRulesOnASingleLine true, allowShortBlocksOnASingleLine true, minEmptyLines 0, alignSemicolons none, alignColons trailing
|
||||
// $antlr-format singleLineOverrulesHangingColon true, alignLexerCommands true, alignLabels true, alignTrailers true
|
||||
// $antlr-format spaceBeforeAssignmentOperators false, groupedAlignments true
|
||||
|
||||
lexer grammar ImpalaSqlLexer;
|
||||
|
||||
options { caseInsensitive = true; }
|
||||
options {
|
||||
caseInsensitive=true;
|
||||
}
|
||||
|
||||
KW_ADD : 'ADD';
|
||||
KW_ALL : 'ALL';
|
||||
KW_ANALYTIC : 'ANALYTIC';
|
||||
KW_ALTER : 'ALTER';
|
||||
KW_AND : 'AND';
|
||||
KW_ANY : 'ANY';
|
||||
KW_ANTI : 'ANTI';
|
||||
KW_ARRAY : 'ARRAY';
|
||||
KW_AS : 'AS';
|
||||
KW_ASC : 'ASC';
|
||||
KW_AT : 'AT';
|
||||
KW_AGGREGATE : 'AGGREGATE';
|
||||
KW_AUTHORIZATION : 'AUTHORIZATION';
|
||||
KW_BERNOULLI : 'BERNOULLI';
|
||||
KW_BETWEEN : 'BETWEEN';
|
||||
KW_BLOCK_SIZE : 'BLOCK_SIZE';
|
||||
KW_PARTITIONED : 'PARTITIONED';
|
||||
KW_PREPARE_FN : 'PREPARE_FN';
|
||||
KW_EXTERNAL : 'EXTERNAL';
|
||||
KW_CLOSEFN : 'CLOSEFN';
|
||||
KW_SORT : 'SORT';
|
||||
KW_PURGE : 'PURGE';
|
||||
KW_STORED : 'STORED';
|
||||
KW_LOCATION : 'LOCATION';
|
||||
KW_TBLPROPERTIES : 'TBLPROPERTIES';
|
||||
KW_BY : 'BY';
|
||||
KW_CASCADE : 'CASCADE';
|
||||
KW_CASE : 'CASE';
|
||||
KW_CAST : 'CAST';
|
||||
KW_CACHED : 'CACHED';
|
||||
KW_CHANGE : 'CHANGE';
|
||||
KW_COLUMN : 'COLUMN';
|
||||
KW_COLUMNS : 'COLUMNS';
|
||||
KW_COMMENT : 'COMMENT';
|
||||
KW_COMPRESSION : 'COMPRESSION';
|
||||
KW_COMPUTE : 'COMPUTE';
|
||||
KW_CREATE : 'CREATE';
|
||||
KW_CROSS : 'CROSS';
|
||||
KW_CURRENT : 'CURRENT';
|
||||
KW_CURRENT_DATE : 'CURRENT_DATE';
|
||||
KW_CURRENT_PATH : 'CURRENT_PATH';
|
||||
KW_CURRENT_TIME : 'CURRENT_TIME';
|
||||
KW_CURRENT_TIMESTAMP : 'CURRENT_TIMESTAMP';
|
||||
KW_CURRENT_USER : 'CURRENT_USER';
|
||||
KW_DATA : 'DATA';
|
||||
KW_DATABASE : 'DATABASE';
|
||||
KW_DATABASES : 'DATABASES';
|
||||
KW_DAY : 'DAY';
|
||||
KW_DAYS : 'DAYS';
|
||||
KW_DELETE : 'DELETE';
|
||||
KW_DEFAULT : 'DEFAULT';
|
||||
KW_DELIMITED : 'DELIMITED';
|
||||
KW_DISABLE : 'DISABLE';
|
||||
KW_UPDATE : 'UPDATE';
|
||||
KW_DESC : 'DESC';
|
||||
KW_DESCRIBE : 'DESCRIBE';
|
||||
KW_DISTINCT : 'DISTINCT';
|
||||
KW_DROP : 'DROP';
|
||||
KW_ELSE : 'ELSE';
|
||||
KW_ENCODING : 'ENCODING';
|
||||
KW_END : 'END';
|
||||
KW_ESCAPE : 'ESCAPE';
|
||||
KW_ESCAPED : 'ESCAPED';
|
||||
KW_EXCEPT : 'EXCEPT';
|
||||
KW_EXCLUDING : 'EXCLUDING';
|
||||
KW_EXISTS : 'EXISTS';
|
||||
KW_EXPLAIN : 'EXPLAIN';
|
||||
KW_EXTRACT : 'EXTRACT';
|
||||
KW_EXTENDED : 'EXTENDED';
|
||||
KW_FALSE : 'FALSE';
|
||||
KW_FIELDS : 'FIELDS';
|
||||
KW_FILEFORMAT : 'FILEFORMAT';
|
||||
KW_FILES : 'FILES';
|
||||
KW_FILTER : 'FILTER';
|
||||
KW_FIRST : 'FIRST';
|
||||
KW_FINALIZE_FN : 'FINALIZE_FN';
|
||||
KW_FOLLOWING : 'FOLLOWING';
|
||||
KW_FOR : 'FOR';
|
||||
KW_FORMAT : 'FORMAT';
|
||||
KW_FORMATTED : 'FORMATTED';
|
||||
KW_FOREIGN : 'FOREIGN';
|
||||
KW_FROM : 'FROM';
|
||||
KW_FULL : 'FULL';
|
||||
KW_FUNCTION : 'FUNCTION';
|
||||
KW_FUNCTIONS : 'FUNCTIONS';
|
||||
KW_GRANT : 'GRANT';
|
||||
KW_GROUP : 'GROUP';
|
||||
KW_GROUPING : 'GROUPING';
|
||||
KW_HASH : 'HASH';
|
||||
KW_HAVING : 'HAVING';
|
||||
KW_HOUR : 'HOUR';
|
||||
KW_HOURS : 'HOURS';
|
||||
KW_IF : 'IF';
|
||||
KW_IN : 'IN';
|
||||
KW_INCLUDING : 'INCLUDING';
|
||||
KW_INCREMENTAL : 'INCREMENTAL';
|
||||
KW_INNER : 'INNER';
|
||||
KW_INPATH : 'INPATH';
|
||||
KW_INSERT : 'INSERT';
|
||||
KW_INTERSECT : 'INTERSECT';
|
||||
KW_INTERVAL : 'INTERVAL';
|
||||
KW_INTERMEDIATE : 'INTERMEDIATE';
|
||||
KW_INTO : 'INTO';
|
||||
KW_INIT_FN : 'INIT_FN';
|
||||
KW_IREGEXP : 'IREGEXP';
|
||||
KW_ILIKE : 'ILIKE';
|
||||
KW_INVALIDATE : 'INVALIDATE';
|
||||
KW_IS : 'IS';
|
||||
KW_JOIN : 'JOIN';
|
||||
KW_KEY : 'KEY';
|
||||
KW_KUDU : 'KUDU';
|
||||
KW_LAST : 'LAST';
|
||||
KW_LATERAL : 'LATERAL';
|
||||
KW_LEFT : 'LEFT';
|
||||
KW_LIKE : 'LIKE';
|
||||
KW_LIMIT : 'LIMIT';
|
||||
KW_LINES : 'LINES';
|
||||
KW_LOAD : 'LOAD';
|
||||
KW_LOCALTIME : 'LOCALTIME';
|
||||
KW_LOCALTIMESTAMP : 'LOCALTIMESTAMP';
|
||||
KW_METADATA : 'METADATA';
|
||||
KW_MAP : 'MAP';
|
||||
KW_MINUTE : 'MINUTE';
|
||||
KW_MINUTES : 'MINUTES';
|
||||
KW_MONTH : 'MONTH';
|
||||
KW_MONTHS : 'MONTHS';
|
||||
KW_MERGE_FN : 'MERGE_FN';
|
||||
KW_NFC : 'NFC';
|
||||
KW_NFD : 'NFD';
|
||||
KW_NFKC : 'NFKC';
|
||||
KW_NFKD : 'NFKD';
|
||||
KW_NORMALIZE : 'NORMALIZE';
|
||||
KW_NOT : 'NOT';
|
||||
KW_NULL : 'NULL';
|
||||
KW_NULLS : 'NULLS';
|
||||
KW_OFFSET : 'OFFSET';
|
||||
KW_ON : 'ON';
|
||||
KW_OPTION : 'OPTION';
|
||||
KW_OR : 'OR';
|
||||
KW_ORDER : 'ORDER';
|
||||
KW_ORDINALITY : 'ORDINALITY';
|
||||
KW_OUTER : 'OUTER';
|
||||
KW_OWNER : 'OWNER';
|
||||
KW_OVER : 'OVER';
|
||||
KW_OVERWRITE : 'OVERWRITE';
|
||||
KW_PARTITION : 'PARTITION';
|
||||
KW_PARTITIONS : 'PARTITIONS';
|
||||
KW_PARQUET : 'PARQUET';
|
||||
KW_POSITION : 'POSITION';
|
||||
KW_PRECEDING : 'PRECEDING';
|
||||
KW_PRIMARY : 'PRIMARY';
|
||||
KW_REPLICATION : 'REPLICATION';
|
||||
KW_PRIVILEGES : 'PRIVILEGES';
|
||||
KW_PROPERTIES : 'PROPERTIES';
|
||||
KW_RANGE : 'RANGE';
|
||||
KW_RECOVER : 'RECOVER';
|
||||
KW_RENAME : 'RENAME';
|
||||
KW_REPEATABLE : 'REPEATABLE';
|
||||
KW_REPLACE : 'REPLACE';
|
||||
KW_RESTRICT : 'RESTRICT';
|
||||
KW_RETURNS : 'RETURNS';
|
||||
KW_REVOKE : 'REVOKE';
|
||||
KW_REFRESH : 'REFRESH';
|
||||
KW_REGEXP : 'REGEXP';
|
||||
KW_RLIKE : 'RLIKE';
|
||||
KW_RIGHT : 'RIGHT';
|
||||
KW_ROLE : 'ROLE';
|
||||
KW_ROLES : 'ROLES';
|
||||
KW_ROW : 'ROW';
|
||||
KW_ROWS : 'ROWS';
|
||||
KW_SCHEMA : 'SCHEMA';
|
||||
KW_SCHEMAS : 'SCHEMAS';
|
||||
KW_SECOND : 'SECOND';
|
||||
KW_SECONDS : 'SECONDS';
|
||||
KW_SELECT : 'SELECT';
|
||||
KW_SERDEPROPERTIES : 'SERDEPROPERTIES';
|
||||
KW_SET : 'SET';
|
||||
KW_SEMI : 'SEMI';
|
||||
KW_SERVER : 'SERVER';
|
||||
KW_SHOW : 'SHOW';
|
||||
KW_SHUTDOWN : 'SHUTDOWN';
|
||||
KW_SOME : 'SOME';
|
||||
KW_STATS : 'STATS';
|
||||
KW_STRUCT : 'STRUCT';
|
||||
KW_STRAIGHT_JOIN : 'STRAIGHT_JOIN';
|
||||
KW_SUBSTRING : 'SUBSTRING';
|
||||
KW_SYSTEM : 'SYSTEM';
|
||||
KW_SYMBOL : 'SYMBOL';
|
||||
KW_SERIALIZE_FN : 'SERIALIZE_FN';
|
||||
KW_TABLE : 'TABLE';
|
||||
KW_TABLES : 'TABLES';
|
||||
KW_TABLESAMPLE : 'TABLESAMPLE';
|
||||
KW_TERMINATED : 'TERMINATED ';
|
||||
KW_THEN : 'THEN';
|
||||
KW_TO : 'TO';
|
||||
KW_TRUE : 'TRUE';
|
||||
KW_TRY_CAST : 'TRY_CAST';
|
||||
KW_TRUNCATE : 'TRUNCATE';
|
||||
KW_UNCACHED : 'UNCACHED';
|
||||
KW_UESCAPE : 'UESCAPE';
|
||||
KW_UNBOUNDED : 'UNBOUNDED';
|
||||
KW_UNION : 'UNION';
|
||||
KW_UNNEST : 'UNNEST';
|
||||
KW_UNSET : 'UNSET';
|
||||
KW_USE : 'USE';
|
||||
KW_USER : 'USER';
|
||||
KW_USING : 'USING';
|
||||
KW_UPDATE_FN : 'UPDATE_FN';
|
||||
KW_UPSERT : 'UPSERT';
|
||||
KW_UNKNOWN : 'UNKNOWN';
|
||||
KW_URI : 'URI';
|
||||
KW_VALUE : 'VALUE';
|
||||
KW_VALUES : 'VALUES';
|
||||
KW_VIEW : 'VIEW';
|
||||
KW_VIEWS : 'VIEWS';
|
||||
KW_WHEN : 'WHEN';
|
||||
KW_WHERE : 'WHERE';
|
||||
KW_WITH : 'WITH';
|
||||
KW_YEAR : 'YEAR';
|
||||
KW_YEARS : 'YEARS';
|
||||
KW_TEXTFILE : 'TEXTFILE';
|
||||
KW_ORC : 'ORC';
|
||||
KW_AVRO : 'AVRO';
|
||||
KW_SEQUENCEFILE : 'SEQUENCEFILE';
|
||||
KW_RCFILE : 'RCFILE';
|
||||
KW_REFERENCES : 'REFERENCES';
|
||||
KW_NOVALIDATE : 'NOVALIDATE';
|
||||
KW_RELY : 'RELY';
|
||||
KW_ADD : 'ADD';
|
||||
KW_ALL : 'ALL';
|
||||
KW_ANALYTIC : 'ANALYTIC';
|
||||
KW_ALTER : 'ALTER';
|
||||
KW_AND : 'AND';
|
||||
KW_ANY : 'ANY';
|
||||
KW_ANTI : 'ANTI';
|
||||
KW_ARRAY : 'ARRAY';
|
||||
KW_AS : 'AS';
|
||||
KW_ASC : 'ASC';
|
||||
KW_AT : 'AT';
|
||||
KW_AGGREGATE : 'AGGREGATE';
|
||||
KW_AUTHORIZATION : 'AUTHORIZATION';
|
||||
KW_BERNOULLI : 'BERNOULLI';
|
||||
KW_BETWEEN : 'BETWEEN';
|
||||
KW_BLOCK_SIZE : 'BLOCK_SIZE';
|
||||
KW_PARTITIONED : 'PARTITIONED';
|
||||
KW_PREPARE_FN : 'PREPARE_FN';
|
||||
KW_EXTERNAL : 'EXTERNAL';
|
||||
KW_CLOSEFN : 'CLOSEFN';
|
||||
KW_SORT : 'SORT';
|
||||
KW_PURGE : 'PURGE';
|
||||
KW_STORED : 'STORED';
|
||||
KW_LOCATION : 'LOCATION';
|
||||
KW_TBLPROPERTIES : 'TBLPROPERTIES';
|
||||
KW_BY : 'BY';
|
||||
KW_CASCADE : 'CASCADE';
|
||||
KW_CASE : 'CASE';
|
||||
KW_CAST : 'CAST';
|
||||
KW_CACHED : 'CACHED';
|
||||
KW_CHANGE : 'CHANGE';
|
||||
KW_COLUMN : 'COLUMN';
|
||||
KW_COLUMNS : 'COLUMNS';
|
||||
KW_COMMENT : 'COMMENT';
|
||||
KW_COMPRESSION : 'COMPRESSION';
|
||||
KW_COMPUTE : 'COMPUTE';
|
||||
KW_CREATE : 'CREATE';
|
||||
KW_CROSS : 'CROSS';
|
||||
KW_CURRENT : 'CURRENT';
|
||||
KW_CURRENT_DATE : 'CURRENT_DATE';
|
||||
KW_CURRENT_PATH : 'CURRENT_PATH';
|
||||
KW_CURRENT_TIME : 'CURRENT_TIME';
|
||||
KW_CURRENT_TIMESTAMP : 'CURRENT_TIMESTAMP';
|
||||
KW_CURRENT_USER : 'CURRENT_USER';
|
||||
KW_DATA : 'DATA';
|
||||
KW_DATABASE : 'DATABASE';
|
||||
KW_DATABASES : 'DATABASES';
|
||||
KW_DAY : 'DAY';
|
||||
KW_DAYS : 'DAYS';
|
||||
KW_DELETE : 'DELETE';
|
||||
KW_DEFAULT : 'DEFAULT';
|
||||
KW_DELIMITED : 'DELIMITED';
|
||||
KW_DISABLE : 'DISABLE';
|
||||
KW_UPDATE : 'UPDATE';
|
||||
KW_DESC : 'DESC';
|
||||
KW_DESCRIBE : 'DESCRIBE';
|
||||
KW_DISTINCT : 'DISTINCT';
|
||||
KW_DROP : 'DROP';
|
||||
KW_ELSE : 'ELSE';
|
||||
KW_ENCODING : 'ENCODING';
|
||||
KW_END : 'END';
|
||||
KW_ESCAPE : 'ESCAPE';
|
||||
KW_ESCAPED : 'ESCAPED';
|
||||
KW_EXCEPT : 'EXCEPT';
|
||||
KW_EXCLUDING : 'EXCLUDING';
|
||||
KW_EXISTS : 'EXISTS';
|
||||
KW_EXPLAIN : 'EXPLAIN';
|
||||
KW_EXTRACT : 'EXTRACT';
|
||||
KW_EXTENDED : 'EXTENDED';
|
||||
KW_FALSE : 'FALSE';
|
||||
KW_FIELDS : 'FIELDS';
|
||||
KW_FILEFORMAT : 'FILEFORMAT';
|
||||
KW_FILES : 'FILES';
|
||||
KW_FILTER : 'FILTER';
|
||||
KW_FIRST : 'FIRST';
|
||||
KW_FINALIZE_FN : 'FINALIZE_FN';
|
||||
KW_FOLLOWING : 'FOLLOWING';
|
||||
KW_FOR : 'FOR';
|
||||
KW_FORMAT : 'FORMAT';
|
||||
KW_FORMATTED : 'FORMATTED';
|
||||
KW_FOREIGN : 'FOREIGN';
|
||||
KW_FROM : 'FROM';
|
||||
KW_FULL : 'FULL';
|
||||
KW_FUNCTION : 'FUNCTION';
|
||||
KW_FUNCTIONS : 'FUNCTIONS';
|
||||
KW_GRANT : 'GRANT';
|
||||
KW_GROUP : 'GROUP';
|
||||
KW_GROUPING : 'GROUPING';
|
||||
KW_HASH : 'HASH';
|
||||
KW_HAVING : 'HAVING';
|
||||
KW_HOUR : 'HOUR';
|
||||
KW_HOURS : 'HOURS';
|
||||
KW_IF : 'IF';
|
||||
KW_IN : 'IN';
|
||||
KW_INCLUDING : 'INCLUDING';
|
||||
KW_INCREMENTAL : 'INCREMENTAL';
|
||||
KW_INNER : 'INNER';
|
||||
KW_INPATH : 'INPATH';
|
||||
KW_INSERT : 'INSERT';
|
||||
KW_INTERSECT : 'INTERSECT';
|
||||
KW_INTERVAL : 'INTERVAL';
|
||||
KW_INTERMEDIATE : 'INTERMEDIATE';
|
||||
KW_INTO : 'INTO';
|
||||
KW_INIT_FN : 'INIT_FN';
|
||||
KW_IREGEXP : 'IREGEXP';
|
||||
KW_ILIKE : 'ILIKE';
|
||||
KW_INVALIDATE : 'INVALIDATE';
|
||||
KW_IS : 'IS';
|
||||
KW_JOIN : 'JOIN';
|
||||
KW_KEY : 'KEY';
|
||||
KW_KUDU : 'KUDU';
|
||||
KW_LAST : 'LAST';
|
||||
KW_LATERAL : 'LATERAL';
|
||||
KW_LEFT : 'LEFT';
|
||||
KW_LIKE : 'LIKE';
|
||||
KW_LIMIT : 'LIMIT';
|
||||
KW_LINES : 'LINES';
|
||||
KW_LOAD : 'LOAD';
|
||||
KW_LOCALTIME : 'LOCALTIME';
|
||||
KW_LOCALTIMESTAMP : 'LOCALTIMESTAMP';
|
||||
KW_METADATA : 'METADATA';
|
||||
KW_MAP : 'MAP';
|
||||
KW_MINUTE : 'MINUTE';
|
||||
KW_MINUTES : 'MINUTES';
|
||||
KW_MONTH : 'MONTH';
|
||||
KW_MONTHS : 'MONTHS';
|
||||
KW_MERGE_FN : 'MERGE_FN';
|
||||
KW_NFC : 'NFC';
|
||||
KW_NFD : 'NFD';
|
||||
KW_NFKC : 'NFKC';
|
||||
KW_NFKD : 'NFKD';
|
||||
KW_NORMALIZE : 'NORMALIZE';
|
||||
KW_NOT : 'NOT';
|
||||
KW_NULL : 'NULL';
|
||||
KW_NULLS : 'NULLS';
|
||||
KW_OFFSET : 'OFFSET';
|
||||
KW_ON : 'ON';
|
||||
KW_OPTION : 'OPTION';
|
||||
KW_OR : 'OR';
|
||||
KW_ORDER : 'ORDER';
|
||||
KW_ORDINALITY : 'ORDINALITY';
|
||||
KW_OUTER : 'OUTER';
|
||||
KW_OWNER : 'OWNER';
|
||||
KW_OVER : 'OVER';
|
||||
KW_OVERWRITE : 'OVERWRITE';
|
||||
KW_PARTITION : 'PARTITION';
|
||||
KW_PARTITIONS : 'PARTITIONS';
|
||||
KW_PARQUET : 'PARQUET';
|
||||
KW_POSITION : 'POSITION';
|
||||
KW_PRECEDING : 'PRECEDING';
|
||||
KW_PRIMARY : 'PRIMARY';
|
||||
KW_REPLICATION : 'REPLICATION';
|
||||
KW_PRIVILEGES : 'PRIVILEGES';
|
||||
KW_PROPERTIES : 'PROPERTIES';
|
||||
KW_RANGE : 'RANGE';
|
||||
KW_RECOVER : 'RECOVER';
|
||||
KW_RENAME : 'RENAME';
|
||||
KW_REPEATABLE : 'REPEATABLE';
|
||||
KW_REPLACE : 'REPLACE';
|
||||
KW_RESTRICT : 'RESTRICT';
|
||||
KW_RETURNS : 'RETURNS';
|
||||
KW_REVOKE : 'REVOKE';
|
||||
KW_REFRESH : 'REFRESH';
|
||||
KW_REGEXP : 'REGEXP';
|
||||
KW_RLIKE : 'RLIKE';
|
||||
KW_RIGHT : 'RIGHT';
|
||||
KW_ROLE : 'ROLE';
|
||||
KW_ROLES : 'ROLES';
|
||||
KW_ROW : 'ROW';
|
||||
KW_ROWS : 'ROWS';
|
||||
KW_SCHEMA : 'SCHEMA';
|
||||
KW_SCHEMAS : 'SCHEMAS';
|
||||
KW_SECOND : 'SECOND';
|
||||
KW_SECONDS : 'SECONDS';
|
||||
KW_SELECT : 'SELECT';
|
||||
KW_SERDEPROPERTIES : 'SERDEPROPERTIES';
|
||||
KW_SET : 'SET';
|
||||
KW_SEMI : 'SEMI';
|
||||
KW_SERVER : 'SERVER';
|
||||
KW_SHOW : 'SHOW';
|
||||
KW_SHUTDOWN : 'SHUTDOWN';
|
||||
KW_SOME : 'SOME';
|
||||
KW_STATS : 'STATS';
|
||||
KW_STRUCT : 'STRUCT';
|
||||
KW_STRAIGHT_JOIN : 'STRAIGHT_JOIN';
|
||||
KW_SUBSTRING : 'SUBSTRING';
|
||||
KW_SYSTEM : 'SYSTEM';
|
||||
KW_SYMBOL : 'SYMBOL';
|
||||
KW_SERIALIZE_FN : 'SERIALIZE_FN';
|
||||
KW_TABLE : 'TABLE';
|
||||
KW_TABLES : 'TABLES';
|
||||
KW_TABLESAMPLE : 'TABLESAMPLE';
|
||||
KW_TERMINATED : 'TERMINATED ';
|
||||
KW_THEN : 'THEN';
|
||||
KW_TO : 'TO';
|
||||
KW_TRUE : 'TRUE';
|
||||
KW_TRY_CAST : 'TRY_CAST';
|
||||
KW_TRUNCATE : 'TRUNCATE';
|
||||
KW_UNCACHED : 'UNCACHED';
|
||||
KW_UESCAPE : 'UESCAPE';
|
||||
KW_UNBOUNDED : 'UNBOUNDED';
|
||||
KW_UNION : 'UNION';
|
||||
KW_UNNEST : 'UNNEST';
|
||||
KW_UNSET : 'UNSET';
|
||||
KW_USE : 'USE';
|
||||
KW_USER : 'USER';
|
||||
KW_USING : 'USING';
|
||||
KW_UPDATE_FN : 'UPDATE_FN';
|
||||
KW_UPSERT : 'UPSERT';
|
||||
KW_UNKNOWN : 'UNKNOWN';
|
||||
KW_URI : 'URI';
|
||||
KW_VALUE : 'VALUE';
|
||||
KW_VALUES : 'VALUES';
|
||||
KW_VIEW : 'VIEW';
|
||||
KW_VIEWS : 'VIEWS';
|
||||
KW_WHEN : 'WHEN';
|
||||
KW_WHERE : 'WHERE';
|
||||
KW_WITH : 'WITH';
|
||||
KW_YEAR : 'YEAR';
|
||||
KW_YEARS : 'YEARS';
|
||||
KW_TEXTFILE : 'TEXTFILE';
|
||||
KW_ORC : 'ORC';
|
||||
KW_AVRO : 'AVRO';
|
||||
KW_SEQUENCEFILE : 'SEQUENCEFILE';
|
||||
KW_RCFILE : 'RCFILE';
|
||||
KW_REFERENCES : 'REFERENCES';
|
||||
KW_NOVALIDATE : 'NOVALIDATE';
|
||||
KW_RELY : 'RELY';
|
||||
|
||||
STATS_NUMDVS : '\'NUMDVS\'';
|
||||
STATS_NUMNULLS : '\'NUMNULLS\'';
|
||||
STATS_AVGSIZE : '\'AVGSIZE\'';
|
||||
STATS_MAXSIZE : '\'MAXSIZE\'';
|
||||
|
||||
EQ : '=';
|
||||
NEQ : '<>' | '!=';
|
||||
LT : '<';
|
||||
LTE : '<=';
|
||||
GT : '>';
|
||||
GTE : '>=';
|
||||
PLUS: '+';
|
||||
MINUS: '-';
|
||||
ASTERISK: '*';
|
||||
SLASH: '/';
|
||||
PERCENT: '%';
|
||||
CONCAT: '||';
|
||||
EQ : '=';
|
||||
NEQ : '<>' | '!=';
|
||||
LT : '<';
|
||||
LTE : '<=';
|
||||
GT : '>';
|
||||
GTE : '>=';
|
||||
PLUS : '+';
|
||||
MINUS : '-';
|
||||
ASTERISK : '*';
|
||||
SLASH : '/';
|
||||
PERCENT : '%';
|
||||
CONCAT : '||';
|
||||
|
||||
DOT : '.';
|
||||
SEMICOLON: ';';
|
||||
COMMA: ',';
|
||||
COLON : ':' ;
|
||||
LPAREN : '(' ;
|
||||
RPAREN : ')' ;
|
||||
LSQUARE : '[' ;
|
||||
RSQUARE : ']' ;
|
||||
LCURLY : '{';
|
||||
RCURLY : '}';
|
||||
DOT : '.';
|
||||
SEMICOLON : ';';
|
||||
COMMA : ',';
|
||||
COLON : ':';
|
||||
LPAREN : '(';
|
||||
RPAREN : ')';
|
||||
LSQUARE : '[';
|
||||
RSQUARE : ']';
|
||||
LCURLY : '{';
|
||||
RCURLY : '}';
|
||||
|
||||
BITWISEOR : '|';
|
||||
QUESTION : '?';
|
||||
QUESTION : '?';
|
||||
|
||||
RIGHT_ARROW : '->';
|
||||
RIGHT_ARROW: '->';
|
||||
|
||||
STRING
|
||||
: '\'' ( ~'\'' | '\'\'' )* '\''
|
||||
| '"' ( ~'"' | '""' )* '"'
|
||||
;
|
||||
STRING: '\'' ( ~'\'' | '\'\'')* '\'' | '"' ( ~'"' | '""')* '"';
|
||||
|
||||
UNICODE_STRING
|
||||
: 'U&\'' ( ~'\'' | '\'\'' )* '\''
|
||||
;
|
||||
UNICODE_STRING: 'U&\'' ( ~'\'' | '\'\'')* '\'';
|
||||
|
||||
// Note: we allow any character inside the binary literal and validate
|
||||
// its a correct literal when the AST is being constructed. This
|
||||
// allows us to provide more meaningful error messages to the user
|
||||
BINARY_LITERAL
|
||||
: 'X\'' (~'\'')* '\''
|
||||
;
|
||||
BINARY_LITERAL: 'X\'' (~'\'')* '\'';
|
||||
|
||||
INTEGER_VALUE
|
||||
: DIGIT+
|
||||
;
|
||||
INTEGER_VALUE: DIGIT+;
|
||||
|
||||
DECIMAL_VALUE
|
||||
: DIGIT+ '.' DIGIT*
|
||||
| '.' DIGIT+
|
||||
;
|
||||
DECIMAL_VALUE: DIGIT+ '.' DIGIT* | '.' DIGIT+;
|
||||
|
||||
DOUBLE_VALUE
|
||||
: DIGIT+ ('.' DIGIT*)? EXPONENT
|
||||
| '.' DIGIT+ EXPONENT
|
||||
;
|
||||
DOUBLE_VALUE: DIGIT+ ('.' DIGIT*)? EXPONENT | '.' DIGIT+ EXPONENT;
|
||||
|
||||
IDENTIFIER
|
||||
: (LETTER | '_') (LETTER | DIGIT | '_' | '@' | ':')*
|
||||
;
|
||||
IDENTIFIER: (LETTER | '_') (LETTER | DIGIT | '_' | '@' | ':')*;
|
||||
|
||||
DIGIT_IDENTIFIER
|
||||
: DIGIT (LETTER | DIGIT | '_' | '@' | ':')+
|
||||
;
|
||||
DIGIT_IDENTIFIER: DIGIT (LETTER | DIGIT | '_' | '@' | ':')+;
|
||||
|
||||
QUOTED_IDENTIFIER
|
||||
: '"' ( ~'"' | '""' )* '"'
|
||||
;
|
||||
QUOTED_IDENTIFIER: '"' ( ~'"' | '""')* '"';
|
||||
|
||||
BACKQUOTED_IDENTIFIER
|
||||
: '`' ( ~'`' | '``' )* '`'
|
||||
;
|
||||
BACKQUOTED_IDENTIFIER: '`' ( ~'`' | '``')* '`';
|
||||
|
||||
TIME_WITH_TIME_ZONE
|
||||
: 'TIME' WS 'WITH' WS 'TIME' WS 'ZONE'
|
||||
;
|
||||
TIME_WITH_TIME_ZONE: 'TIME' WS 'WITH' WS 'TIME' WS 'ZONE';
|
||||
|
||||
TIMESTAMP_WITH_TIME_ZONE
|
||||
: 'TIMESTAMP' WS 'WITH' WS 'TIME' WS 'ZONE'
|
||||
;
|
||||
TIMESTAMP_WITH_TIME_ZONE: 'TIMESTAMP' WS 'WITH' WS 'TIME' WS 'ZONE';
|
||||
|
||||
DOUBLE_PRECISION
|
||||
: 'DOUBLE' WS 'PRECISION'
|
||||
;
|
||||
DOUBLE_PRECISION: 'DOUBLE' WS 'PRECISION';
|
||||
|
||||
fragment EXPONENT
|
||||
: 'E' [+-]? DIGIT+
|
||||
;
|
||||
fragment EXPONENT: 'E' [+-]? DIGIT+;
|
||||
|
||||
fragment DIGIT
|
||||
: [0-9]
|
||||
;
|
||||
fragment DIGIT: [0-9];
|
||||
|
||||
fragment LETTER
|
||||
: [A-Z]
|
||||
;
|
||||
fragment LETTER: [A-Z];
|
||||
|
||||
SIMPLE_COMMENT
|
||||
: '--' ~[\r\n]* '\r'? '\n'? -> channel(HIDDEN)
|
||||
;
|
||||
SIMPLE_COMMENT: '--' ~[\r\n]* '\r'? '\n'? -> channel(HIDDEN);
|
||||
|
||||
BRACKETED_COMMENT
|
||||
: '/*' .*? '*/' -> channel(HIDDEN)
|
||||
;
|
||||
BRACKETED_COMMENT: '/*' .*? '*/' -> channel(HIDDEN);
|
||||
|
||||
WS
|
||||
: [ \r\n\t]+ -> channel(HIDDEN)
|
||||
;
|
||||
WS: [ \r\n\t]+ -> channel(HIDDEN);
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -18,6 +18,11 @@
|
||||
* Reference: https://github.com/apache/spark/blob/master/sql/api/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBaseLexer.g4
|
||||
*/
|
||||
|
||||
// $antlr-format alignTrailingComments true, columnLimit 150, maxEmptyLinesToKeep 1, reflowComments false, useTab false
|
||||
// $antlr-format allowShortRulesOnASingleLine true, allowShortBlocksOnASingleLine true, minEmptyLines 0, alignSemicolons none, alignColons trailing
|
||||
// $antlr-format singleLineOverrulesHangingColon true, alignLexerCommands true, alignLabels true, alignTrailers true
|
||||
// $antlr-format spaceBeforeAssignmentOperators false, groupedAlignments true
|
||||
|
||||
lexer grammar SparkSqlLexer;
|
||||
|
||||
@members {
|
||||
@ -39,12 +44,12 @@ lexer grammar SparkSqlLexer;
|
||||
|
||||
SEMICOLON: ';';
|
||||
|
||||
LEFT_PAREN: '(';
|
||||
RIGHT_PAREN: ')';
|
||||
COMMA: ',';
|
||||
DOT: '.';
|
||||
LEFT_BRACKET: '[';
|
||||
RIGHT_BRACKET: ']';
|
||||
LEFT_PAREN : '(';
|
||||
RIGHT_PAREN : ')';
|
||||
COMMA : ',';
|
||||
DOT : '.';
|
||||
LEFT_BRACKET : '[';
|
||||
RIGHT_BRACKET : ']';
|
||||
|
||||
// NOTE: If you add a new token in the list below, you should update the list of keywords
|
||||
// and reserved tag in `docs/sql-ref-ansi-compliance.md#sql-keywords`, and
|
||||
@ -54,468 +59,420 @@ RIGHT_BRACKET: ']';
|
||||
// Start of the keywords list
|
||||
//============================
|
||||
//--SPARK-KEYWORD-LIST-START
|
||||
KW_ADD: 'ADD';
|
||||
KW_AFTER: 'AFTER';
|
||||
KW_ALL: 'ALL';
|
||||
KW_ALTER: 'ALTER';
|
||||
KW_ALWAYS: 'ALWAYS';
|
||||
KW_ANALYZE: 'ANALYZE';
|
||||
KW_AND: 'AND';
|
||||
KW_ANTI: 'ANTI';
|
||||
KW_ANY: 'ANY';
|
||||
KW_ANY_VALUE: 'ANY_VALUE';
|
||||
KW_ARCHIVE: 'ARCHIVE';
|
||||
KW_ARRAY: 'ARRAY';
|
||||
KW_AS: 'AS';
|
||||
KW_ASC: 'ASC';
|
||||
KW_AT: 'AT';
|
||||
KW_AUTHORIZATION: 'AUTHORIZATION';
|
||||
KW_BETWEEN: 'BETWEEN';
|
||||
KW_BIGINT: 'BIGINT';
|
||||
KW_BINARY: 'BINARY';
|
||||
KW_BOOLEAN: 'BOOLEAN';
|
||||
KW_BOTH: 'BOTH';
|
||||
KW_BUCKET: 'BUCKET';
|
||||
KW_BUCKETS: 'BUCKETS';
|
||||
KW_BY: 'BY';
|
||||
KW_BYTE: 'BYTE';
|
||||
KW_CACHE: 'CACHE';
|
||||
KW_CASCADE: 'CASCADE';
|
||||
KW_CASE: 'CASE';
|
||||
KW_CAST: 'CAST';
|
||||
KW_CATALOG: 'CATALOG';
|
||||
KW_CATALOGS: 'CATALOGS';
|
||||
KW_CHANGE: 'CHANGE';
|
||||
KW_CHAR: 'CHAR';
|
||||
KW_CHARACTER: 'CHARACTER';
|
||||
KW_CHECK: 'CHECK';
|
||||
KW_CLEAR: 'CLEAR';
|
||||
KW_CLUSTER: 'CLUSTER';
|
||||
KW_CLUSTERED: 'CLUSTERED';
|
||||
KW_CODEGEN: 'CODEGEN';
|
||||
KW_COLLATE: 'COLLATE';
|
||||
KW_COLLECTION: 'COLLECTION';
|
||||
KW_COLUMN: 'COLUMN';
|
||||
KW_COLUMNS: 'COLUMNS';
|
||||
KW_COMMENT: 'COMMENT';
|
||||
KW_COMMIT: 'COMMIT';
|
||||
KW_COMPACT: 'COMPACT';
|
||||
KW_COMPACTIONS: 'COMPACTIONS';
|
||||
KW_COMPUTE: 'COMPUTE';
|
||||
KW_CONCATENATE: 'CONCATENATE';
|
||||
KW_CONSTRAINT: 'CONSTRAINT';
|
||||
KW_COST: 'COST';
|
||||
KW_CREATE: 'CREATE';
|
||||
KW_CROSS: 'CROSS';
|
||||
KW_CUBE: 'CUBE';
|
||||
KW_CURRENT: 'CURRENT';
|
||||
KW_CURRENT_DATE: 'CURRENT_DATE';
|
||||
KW_CURRENT_TIME: 'CURRENT_TIME';
|
||||
KW_CURRENT_TIMESTAMP: 'CURRENT_TIMESTAMP';
|
||||
KW_CURRENT_USER: 'CURRENT_USER';
|
||||
KW_DAY: 'DAY';
|
||||
KW_DAYS: 'DAYS';
|
||||
KW_DAYOFYEAR: 'DAYOFYEAR';
|
||||
KW_DATA: 'DATA';
|
||||
KW_DATE: 'DATE';
|
||||
KW_DATABASE: 'DATABASE';
|
||||
KW_DATABASES: 'DATABASES';
|
||||
KW_DATEADD: 'DATEADD';
|
||||
KW_DATE_ADD: 'DATE_ADD';
|
||||
KW_DATEDIFF: 'DATEDIFF';
|
||||
KW_DATE_DIFF: 'DATE_DIFF';
|
||||
KW_DBPROPERTIES: 'DBPROPERTIES';
|
||||
KW_DEC: 'DEC';
|
||||
KW_DECIMAL: 'DECIMAL';
|
||||
KW_DECLARE: 'DECLARE';
|
||||
KW_DEFAULT: 'DEFAULT';
|
||||
KW_DEFINED: 'DEFINED';
|
||||
KW_DELETE: 'DELETE';
|
||||
KW_DELIMITED: 'DELIMITED';
|
||||
KW_DESC: 'DESC';
|
||||
KW_DESCRIBE: 'DESCRIBE';
|
||||
KW_DFS: 'DFS';
|
||||
KW_DIRECTORIES: 'DIRECTORIES';
|
||||
KW_DIRECTORY: 'DIRECTORY';
|
||||
KW_DISTINCT: 'DISTINCT';
|
||||
KW_DISTRIBUTE: 'DISTRIBUTE';
|
||||
KW_DIV: 'DIV';
|
||||
KW_DOUBLE: 'DOUBLE';
|
||||
KW_DROP: 'DROP';
|
||||
KW_ELSE: 'ELSE';
|
||||
KW_END: 'END';
|
||||
KW_ESCAPE: 'ESCAPE';
|
||||
KW_ESCAPED: 'ESCAPED';
|
||||
KW_EXCEPT: 'EXCEPT';
|
||||
KW_EXCHANGE: 'EXCHANGE';
|
||||
KW_EXCLUDE: 'EXCLUDE';
|
||||
KW_EXISTS: 'EXISTS';
|
||||
KW_EXPLAIN: 'EXPLAIN';
|
||||
KW_EXPORT: 'EXPORT';
|
||||
KW_EXTENDED: 'EXTENDED';
|
||||
KW_EXTERNAL: 'EXTERNAL';
|
||||
KW_EXTRACT: 'EXTRACT';
|
||||
KW_FALSE: 'FALSE';
|
||||
KW_FETCH: 'FETCH';
|
||||
KW_FIELDS: 'FIELDS';
|
||||
KW_FILTER: 'FILTER';
|
||||
KW_FILEFORMAT: 'FILEFORMAT';
|
||||
KW_FIRST: 'FIRST';
|
||||
KW_FLOAT: 'FLOAT';
|
||||
KW_FOLLOWING: 'FOLLOWING';
|
||||
KW_FOR: 'FOR';
|
||||
KW_FOREIGN: 'FOREIGN';
|
||||
KW_FORMAT: 'FORMAT';
|
||||
KW_FORMATTED: 'FORMATTED';
|
||||
KW_FROM: 'FROM';
|
||||
KW_FULL: 'FULL';
|
||||
KW_FUNCTION: 'FUNCTION';
|
||||
KW_FUNCTIONS: 'FUNCTIONS';
|
||||
KW_GENERATED: 'GENERATED';
|
||||
KW_GLOBAL: 'GLOBAL';
|
||||
KW_GRANT: 'GRANT';
|
||||
KW_GROUP: 'GROUP';
|
||||
KW_GROUPING: 'GROUPING';
|
||||
KW_HAVING: 'HAVING';
|
||||
KW_BINARY_HEX: 'X';
|
||||
KW_HOUR: 'HOUR';
|
||||
KW_HOURS: 'HOURS';
|
||||
KW_IDENTIFIER: 'IDENTIFIER';
|
||||
KW_IF: 'IF';
|
||||
KW_IGNORE: 'IGNORE';
|
||||
KW_IMPORT: 'IMPORT';
|
||||
KW_IN: 'IN';
|
||||
KW_INCLUDE: 'INCLUDE';
|
||||
KW_INDEX: 'INDEX';
|
||||
KW_INDEXES: 'INDEXES';
|
||||
KW_INNER: 'INNER';
|
||||
KW_INPATH: 'INPATH';
|
||||
KW_INPUTFORMAT: 'INPUTFORMAT';
|
||||
KW_INSERT: 'INSERT';
|
||||
KW_INTERSECT: 'INTERSECT';
|
||||
KW_INTERVAL: 'INTERVAL';
|
||||
KW_INT: 'INT';
|
||||
KW_INTEGER: 'INTEGER';
|
||||
KW_INTO: 'INTO';
|
||||
KW_IS: 'IS';
|
||||
KW_ITEMS: 'ITEMS';
|
||||
KW_JOIN: 'JOIN';
|
||||
KW_KEYS: 'KEYS';
|
||||
KW_LAST: 'LAST';
|
||||
KW_LATERAL: 'LATERAL';
|
||||
KW_LAZY: 'LAZY';
|
||||
KW_LEADING: 'LEADING';
|
||||
KW_LEFT: 'LEFT';
|
||||
KW_LIKE: 'LIKE';
|
||||
KW_ILIKE: 'ILIKE';
|
||||
KW_LIMIT: 'LIMIT';
|
||||
KW_LINES: 'LINES';
|
||||
KW_LIST: 'LIST';
|
||||
KW_LOAD: 'LOAD';
|
||||
KW_LOCAL: 'LOCAL';
|
||||
KW_LOCATION: 'LOCATION';
|
||||
KW_LOCK: 'LOCK';
|
||||
KW_LOCKS: 'LOCKS';
|
||||
KW_LOGICAL: 'LOGICAL';
|
||||
KW_LONG: 'LONG';
|
||||
KW_MACRO: 'MACRO';
|
||||
KW_MAP: 'MAP';
|
||||
KW_MATCHED: 'MATCHED';
|
||||
KW_MERGE: 'MERGE';
|
||||
KW_MICROSECOND: 'MICROSECOND';
|
||||
KW_MICROSECONDS: 'MICROSECONDS';
|
||||
KW_MILLISECOND: 'MILLISECOND';
|
||||
KW_MILLISECONDS: 'MILLISECONDS';
|
||||
KW_MINUTE: 'MINUTE';
|
||||
KW_MINUTES: 'MINUTES';
|
||||
KW_MONTH: 'MONTH';
|
||||
KW_MONTHS: 'MONTHS';
|
||||
KW_MSCK: 'MSCK';
|
||||
KW_NAME: 'NAME';
|
||||
KW_NAMESPACE: 'NAMESPACE';
|
||||
KW_NAMESPACES: 'NAMESPACES';
|
||||
KW_NANOSECOND: 'NANOSECOND';
|
||||
KW_NANOSECONDS: 'NANOSECONDS';
|
||||
KW_NATURAL: 'NATURAL';
|
||||
KW_NO: 'NO';
|
||||
KW_NOSCAN: 'NOSCAN';
|
||||
KW_NOT: 'NOT';
|
||||
KW_NULL: 'NULL';
|
||||
KW_NULLS: 'NULLS';
|
||||
KW_NUMERIC: 'NUMERIC';
|
||||
KW_OF: 'OF';
|
||||
KW_OFFSET: 'OFFSET';
|
||||
KW_ON: 'ON';
|
||||
KW_ONLY: 'ONLY';
|
||||
KW_OPTION: 'OPTION';
|
||||
KW_OPTIONS: 'OPTIONS';
|
||||
KW_OR: 'OR';
|
||||
KW_ORDER: 'ORDER';
|
||||
KW_OUT: 'OUT';
|
||||
KW_OUTER: 'OUTER';
|
||||
KW_OUTPUTFORMAT: 'OUTPUTFORMAT';
|
||||
KW_OVER: 'OVER';
|
||||
KW_OVERLAPS: 'OVERLAPS';
|
||||
KW_OVERLAY: 'OVERLAY';
|
||||
KW_OVERWRITE: 'OVERWRITE';
|
||||
KW_PARTITION: 'PARTITION';
|
||||
KW_PARTITIONED: 'PARTITIONED';
|
||||
KW_PARTITIONS: 'PARTITIONS';
|
||||
KW_PERCENTILE_CONT: 'PERCENTILE_CONT';
|
||||
KW_PERCENTILE_DISC: 'PERCENTILE_DISC';
|
||||
KW_PERCENTLIT: 'PERCENT';
|
||||
KW_PIVOT: 'PIVOT';
|
||||
KW_PLACING: 'PLACING';
|
||||
KW_POSITION: 'POSITION';
|
||||
KW_PRECEDING: 'PRECEDING';
|
||||
KW_PRIMARY: 'PRIMARY';
|
||||
KW_PRINCIPALS: 'PRINCIPALS';
|
||||
KW_PROPERTIES: 'PROPERTIES';
|
||||
KW_PURGE: 'PURGE';
|
||||
KW_QUARTER: 'QUARTER';
|
||||
KW_QUERY: 'QUERY';
|
||||
KW_RANGE: 'RANGE';
|
||||
KW_REAL: 'REAL';
|
||||
KW_RECORDREADER: 'RECORDREADER';
|
||||
KW_RECORDWRITER: 'RECORDWRITER';
|
||||
KW_RECOVER: 'RECOVER';
|
||||
KW_REDUCE: 'REDUCE';
|
||||
KW_REFERENCES: 'REFERENCES';
|
||||
KW_REFRESH: 'REFRESH';
|
||||
KW_RENAME: 'RENAME';
|
||||
KW_REPAIR: 'REPAIR';
|
||||
KW_REPEATABLE: 'REPEATABLE';
|
||||
KW_REPLACE: 'REPLACE';
|
||||
KW_RESET: 'RESET';
|
||||
KW_RESPECT: 'RESPECT';
|
||||
KW_RESTRICT: 'RESTRICT';
|
||||
KW_REVOKE: 'REVOKE';
|
||||
KW_RIGHT: 'RIGHT';
|
||||
KW_RLIKE: 'RLIKE';
|
||||
KW_REGEXP: 'REGEXP';
|
||||
KW_ROLE: 'ROLE';
|
||||
KW_ROLES: 'ROLES';
|
||||
KW_ROLLBACK: 'ROLLBACK';
|
||||
KW_ROLLUP: 'ROLLUP';
|
||||
KW_ROW: 'ROW';
|
||||
KW_ROWS: 'ROWS';
|
||||
KW_SECOND: 'SECOND';
|
||||
KW_SECONDS: 'SECONDS';
|
||||
KW_SCHEMA: 'SCHEMA';
|
||||
KW_SCHEMAS: 'SCHEMAS';
|
||||
KW_SELECT: 'SELECT';
|
||||
KW_SEMI: 'SEMI';
|
||||
KW_SEPARATED: 'SEPARATED';
|
||||
KW_SERDE: 'SERDE';
|
||||
KW_SERDEPROPERTIES: 'SERDEPROPERTIES';
|
||||
KW_SESSION_USER: 'SESSION_USER';
|
||||
KW_SET: 'SET';
|
||||
KW_MINUS: 'MINUS';
|
||||
KW_SETS: 'SETS';
|
||||
KW_SHORT: 'SHORT';
|
||||
KW_SHOW: 'SHOW';
|
||||
KW_SINGLE: 'SINGLE';
|
||||
KW_SKEWED: 'SKEWED';
|
||||
KW_SMALLINT: 'SMALLINT';
|
||||
KW_SOME: 'SOME';
|
||||
KW_SORT: 'SORT';
|
||||
KW_SORTED: 'SORTED';
|
||||
KW_SOURCE: 'SOURCE';
|
||||
KW_START: 'START';
|
||||
KW_STATISTICS: 'STATISTICS';
|
||||
KW_STORED: 'STORED';
|
||||
KW_STRATIFY: 'STRATIFY';
|
||||
KW_STRING: 'STRING';
|
||||
KW_STRUCT: 'STRUCT';
|
||||
KW_SUBSTR: 'SUBSTR';
|
||||
KW_SUBSTRING: 'SUBSTRING';
|
||||
KW_SYNC: 'SYNC';
|
||||
KW_SYSTEM: 'SYSTEM';
|
||||
KW_SYSTEM_TIME: 'SYSTEM_TIME';
|
||||
KW_SYSTEM_VERSION: 'SYSTEM_VERSION';
|
||||
KW_TABLE: 'TABLE';
|
||||
KW_TABLES: 'TABLES';
|
||||
KW_TABLESAMPLE: 'TABLESAMPLE';
|
||||
KW_TARGET: 'TARGET';
|
||||
KW_TBLPROPERTIES: 'TBLPROPERTIES';
|
||||
KW_TEMPORARY: 'TEMPORARY';
|
||||
KW_TERMINATED: 'TERMINATED';
|
||||
KW_THEN: 'THEN';
|
||||
KW_TIME: 'TIME';
|
||||
KW_TIMEDIFF: 'TIMEDIFF';
|
||||
KW_TIMESTAMP: 'TIMESTAMP';
|
||||
KW_TIMESTAMP_LTZ: 'TIMESTAMP_LTZ';
|
||||
KW_TIMESTAMP_NTZ: 'TIMESTAMP_NTZ';
|
||||
KW_TIMESTAMPADD: 'TIMESTAMPADD';
|
||||
KW_TIMESTAMPDIFF: 'TIMESTAMPDIFF';
|
||||
KW_TINYINT: 'TINYINT';
|
||||
KW_TO: 'TO';
|
||||
KW_TOUCH: 'TOUCH';
|
||||
KW_TRAILING: 'TRAILING';
|
||||
KW_TRANSACTION: 'TRANSACTION';
|
||||
KW_TRANSACTIONS: 'TRANSACTIONS';
|
||||
KW_TRANSFORM: 'TRANSFORM';
|
||||
KW_TRIM: 'TRIM';
|
||||
KW_TRUE: 'TRUE';
|
||||
KW_TRUNCATE: 'TRUNCATE';
|
||||
KW_TRY_CAST: 'TRY_CAST';
|
||||
KW_TYPE: 'TYPE';
|
||||
KW_UNARCHIVE: 'UNARCHIVE';
|
||||
KW_UNBOUNDED: 'UNBOUNDED';
|
||||
KW_UNCACHE: 'UNCACHE';
|
||||
KW_UNION: 'UNION';
|
||||
KW_UNIQUE: 'UNIQUE';
|
||||
KW_UNKNOWN: 'UNKNOWN';
|
||||
KW_UNLOCK: 'UNLOCK';
|
||||
KW_UNPIVOT: 'UNPIVOT';
|
||||
KW_UNSET: 'UNSET';
|
||||
KW_UPDATE: 'UPDATE';
|
||||
KW_USE: 'USE';
|
||||
KW_USER: 'USER';
|
||||
KW_USING: 'USING';
|
||||
KW_VALUES: 'VALUES';
|
||||
KW_VARCHAR: 'VARCHAR';
|
||||
KW_VAR: 'VAR';
|
||||
KW_VARIABLE: 'VARIABLE';
|
||||
KW_VERSION: 'VERSION';
|
||||
KW_VIEW: 'VIEW';
|
||||
KW_VIEWS: 'VIEWS';
|
||||
KW_VOID: 'VOID';
|
||||
KW_WEEK: 'WEEK';
|
||||
KW_WEEKS: 'WEEKS';
|
||||
KW_WHEN: 'WHEN';
|
||||
KW_WHERE: 'WHERE';
|
||||
KW_WINDOW: 'WINDOW';
|
||||
KW_WITH: 'WITH';
|
||||
KW_WITHIN: 'WITHIN';
|
||||
KW_YEAR: 'YEAR';
|
||||
KW_YEARS: 'YEARS';
|
||||
KW_ZONE: 'ZONE';
|
||||
KW_ADD : 'ADD';
|
||||
KW_AFTER : 'AFTER';
|
||||
KW_ALL : 'ALL';
|
||||
KW_ALTER : 'ALTER';
|
||||
KW_ALWAYS : 'ALWAYS';
|
||||
KW_ANALYZE : 'ANALYZE';
|
||||
KW_AND : 'AND';
|
||||
KW_ANTI : 'ANTI';
|
||||
KW_ANY : 'ANY';
|
||||
KW_ANY_VALUE : 'ANY_VALUE';
|
||||
KW_ARCHIVE : 'ARCHIVE';
|
||||
KW_ARRAY : 'ARRAY';
|
||||
KW_AS : 'AS';
|
||||
KW_ASC : 'ASC';
|
||||
KW_AT : 'AT';
|
||||
KW_AUTHORIZATION : 'AUTHORIZATION';
|
||||
KW_BETWEEN : 'BETWEEN';
|
||||
KW_BIGINT : 'BIGINT';
|
||||
KW_BINARY : 'BINARY';
|
||||
KW_BOOLEAN : 'BOOLEAN';
|
||||
KW_BOTH : 'BOTH';
|
||||
KW_BUCKET : 'BUCKET';
|
||||
KW_BUCKETS : 'BUCKETS';
|
||||
KW_BY : 'BY';
|
||||
KW_BYTE : 'BYTE';
|
||||
KW_CACHE : 'CACHE';
|
||||
KW_CASCADE : 'CASCADE';
|
||||
KW_CASE : 'CASE';
|
||||
KW_CAST : 'CAST';
|
||||
KW_CATALOG : 'CATALOG';
|
||||
KW_CATALOGS : 'CATALOGS';
|
||||
KW_CHANGE : 'CHANGE';
|
||||
KW_CHAR : 'CHAR';
|
||||
KW_CHARACTER : 'CHARACTER';
|
||||
KW_CHECK : 'CHECK';
|
||||
KW_CLEAR : 'CLEAR';
|
||||
KW_CLUSTER : 'CLUSTER';
|
||||
KW_CLUSTERED : 'CLUSTERED';
|
||||
KW_CODEGEN : 'CODEGEN';
|
||||
KW_COLLATE : 'COLLATE';
|
||||
KW_COLLECTION : 'COLLECTION';
|
||||
KW_COLUMN : 'COLUMN';
|
||||
KW_COLUMNS : 'COLUMNS';
|
||||
KW_COMMENT : 'COMMENT';
|
||||
KW_COMMIT : 'COMMIT';
|
||||
KW_COMPACT : 'COMPACT';
|
||||
KW_COMPACTIONS : 'COMPACTIONS';
|
||||
KW_COMPUTE : 'COMPUTE';
|
||||
KW_CONCATENATE : 'CONCATENATE';
|
||||
KW_CONSTRAINT : 'CONSTRAINT';
|
||||
KW_COST : 'COST';
|
||||
KW_CREATE : 'CREATE';
|
||||
KW_CROSS : 'CROSS';
|
||||
KW_CUBE : 'CUBE';
|
||||
KW_CURRENT : 'CURRENT';
|
||||
KW_CURRENT_DATE : 'CURRENT_DATE';
|
||||
KW_CURRENT_TIME : 'CURRENT_TIME';
|
||||
KW_CURRENT_TIMESTAMP : 'CURRENT_TIMESTAMP';
|
||||
KW_CURRENT_USER : 'CURRENT_USER';
|
||||
KW_DAY : 'DAY';
|
||||
KW_DAYS : 'DAYS';
|
||||
KW_DAYOFYEAR : 'DAYOFYEAR';
|
||||
KW_DATA : 'DATA';
|
||||
KW_DATE : 'DATE';
|
||||
KW_DATABASE : 'DATABASE';
|
||||
KW_DATABASES : 'DATABASES';
|
||||
KW_DATEADD : 'DATEADD';
|
||||
KW_DATE_ADD : 'DATE_ADD';
|
||||
KW_DATEDIFF : 'DATEDIFF';
|
||||
KW_DATE_DIFF : 'DATE_DIFF';
|
||||
KW_DBPROPERTIES : 'DBPROPERTIES';
|
||||
KW_DEC : 'DEC';
|
||||
KW_DECIMAL : 'DECIMAL';
|
||||
KW_DECLARE : 'DECLARE';
|
||||
KW_DEFAULT : 'DEFAULT';
|
||||
KW_DEFINED : 'DEFINED';
|
||||
KW_DELETE : 'DELETE';
|
||||
KW_DELIMITED : 'DELIMITED';
|
||||
KW_DESC : 'DESC';
|
||||
KW_DESCRIBE : 'DESCRIBE';
|
||||
KW_DFS : 'DFS';
|
||||
KW_DIRECTORIES : 'DIRECTORIES';
|
||||
KW_DIRECTORY : 'DIRECTORY';
|
||||
KW_DISTINCT : 'DISTINCT';
|
||||
KW_DISTRIBUTE : 'DISTRIBUTE';
|
||||
KW_DIV : 'DIV';
|
||||
KW_DOUBLE : 'DOUBLE';
|
||||
KW_DROP : 'DROP';
|
||||
KW_ELSE : 'ELSE';
|
||||
KW_END : 'END';
|
||||
KW_ESCAPE : 'ESCAPE';
|
||||
KW_ESCAPED : 'ESCAPED';
|
||||
KW_EXCEPT : 'EXCEPT';
|
||||
KW_EXCHANGE : 'EXCHANGE';
|
||||
KW_EXCLUDE : 'EXCLUDE';
|
||||
KW_EXISTS : 'EXISTS';
|
||||
KW_EXPLAIN : 'EXPLAIN';
|
||||
KW_EXPORT : 'EXPORT';
|
||||
KW_EXTENDED : 'EXTENDED';
|
||||
KW_EXTERNAL : 'EXTERNAL';
|
||||
KW_EXTRACT : 'EXTRACT';
|
||||
KW_FALSE : 'FALSE';
|
||||
KW_FETCH : 'FETCH';
|
||||
KW_FIELDS : 'FIELDS';
|
||||
KW_FILTER : 'FILTER';
|
||||
KW_FILEFORMAT : 'FILEFORMAT';
|
||||
KW_FIRST : 'FIRST';
|
||||
KW_FLOAT : 'FLOAT';
|
||||
KW_FOLLOWING : 'FOLLOWING';
|
||||
KW_FOR : 'FOR';
|
||||
KW_FOREIGN : 'FOREIGN';
|
||||
KW_FORMAT : 'FORMAT';
|
||||
KW_FORMATTED : 'FORMATTED';
|
||||
KW_FROM : 'FROM';
|
||||
KW_FULL : 'FULL';
|
||||
KW_FUNCTION : 'FUNCTION';
|
||||
KW_FUNCTIONS : 'FUNCTIONS';
|
||||
KW_GENERATED : 'GENERATED';
|
||||
KW_GLOBAL : 'GLOBAL';
|
||||
KW_GRANT : 'GRANT';
|
||||
KW_GROUP : 'GROUP';
|
||||
KW_GROUPING : 'GROUPING';
|
||||
KW_HAVING : 'HAVING';
|
||||
KW_BINARY_HEX : 'X';
|
||||
KW_HOUR : 'HOUR';
|
||||
KW_HOURS : 'HOURS';
|
||||
KW_IDENTIFIER : 'IDENTIFIER';
|
||||
KW_IF : 'IF';
|
||||
KW_IGNORE : 'IGNORE';
|
||||
KW_IMPORT : 'IMPORT';
|
||||
KW_IN : 'IN';
|
||||
KW_INCLUDE : 'INCLUDE';
|
||||
KW_INDEX : 'INDEX';
|
||||
KW_INDEXES : 'INDEXES';
|
||||
KW_INNER : 'INNER';
|
||||
KW_INPATH : 'INPATH';
|
||||
KW_INPUTFORMAT : 'INPUTFORMAT';
|
||||
KW_INSERT : 'INSERT';
|
||||
KW_INTERSECT : 'INTERSECT';
|
||||
KW_INTERVAL : 'INTERVAL';
|
||||
KW_INT : 'INT';
|
||||
KW_INTEGER : 'INTEGER';
|
||||
KW_INTO : 'INTO';
|
||||
KW_IS : 'IS';
|
||||
KW_ITEMS : 'ITEMS';
|
||||
KW_JOIN : 'JOIN';
|
||||
KW_KEYS : 'KEYS';
|
||||
KW_LAST : 'LAST';
|
||||
KW_LATERAL : 'LATERAL';
|
||||
KW_LAZY : 'LAZY';
|
||||
KW_LEADING : 'LEADING';
|
||||
KW_LEFT : 'LEFT';
|
||||
KW_LIKE : 'LIKE';
|
||||
KW_ILIKE : 'ILIKE';
|
||||
KW_LIMIT : 'LIMIT';
|
||||
KW_LINES : 'LINES';
|
||||
KW_LIST : 'LIST';
|
||||
KW_LOAD : 'LOAD';
|
||||
KW_LOCAL : 'LOCAL';
|
||||
KW_LOCATION : 'LOCATION';
|
||||
KW_LOCK : 'LOCK';
|
||||
KW_LOCKS : 'LOCKS';
|
||||
KW_LOGICAL : 'LOGICAL';
|
||||
KW_LONG : 'LONG';
|
||||
KW_MACRO : 'MACRO';
|
||||
KW_MAP : 'MAP';
|
||||
KW_MATCHED : 'MATCHED';
|
||||
KW_MERGE : 'MERGE';
|
||||
KW_MICROSECOND : 'MICROSECOND';
|
||||
KW_MICROSECONDS : 'MICROSECONDS';
|
||||
KW_MILLISECOND : 'MILLISECOND';
|
||||
KW_MILLISECONDS : 'MILLISECONDS';
|
||||
KW_MINUTE : 'MINUTE';
|
||||
KW_MINUTES : 'MINUTES';
|
||||
KW_MONTH : 'MONTH';
|
||||
KW_MONTHS : 'MONTHS';
|
||||
KW_MSCK : 'MSCK';
|
||||
KW_NAME : 'NAME';
|
||||
KW_NAMESPACE : 'NAMESPACE';
|
||||
KW_NAMESPACES : 'NAMESPACES';
|
||||
KW_NANOSECOND : 'NANOSECOND';
|
||||
KW_NANOSECONDS : 'NANOSECONDS';
|
||||
KW_NATURAL : 'NATURAL';
|
||||
KW_NO : 'NO';
|
||||
KW_NOSCAN : 'NOSCAN';
|
||||
KW_NOT : 'NOT';
|
||||
KW_NULL : 'NULL';
|
||||
KW_NULLS : 'NULLS';
|
||||
KW_NUMERIC : 'NUMERIC';
|
||||
KW_OF : 'OF';
|
||||
KW_OFFSET : 'OFFSET';
|
||||
KW_ON : 'ON';
|
||||
KW_ONLY : 'ONLY';
|
||||
KW_OPTION : 'OPTION';
|
||||
KW_OPTIONS : 'OPTIONS';
|
||||
KW_OR : 'OR';
|
||||
KW_ORDER : 'ORDER';
|
||||
KW_OUT : 'OUT';
|
||||
KW_OUTER : 'OUTER';
|
||||
KW_OUTPUTFORMAT : 'OUTPUTFORMAT';
|
||||
KW_OVER : 'OVER';
|
||||
KW_OVERLAPS : 'OVERLAPS';
|
||||
KW_OVERLAY : 'OVERLAY';
|
||||
KW_OVERWRITE : 'OVERWRITE';
|
||||
KW_PARTITION : 'PARTITION';
|
||||
KW_PARTITIONED : 'PARTITIONED';
|
||||
KW_PARTITIONS : 'PARTITIONS';
|
||||
KW_PERCENTILE_CONT : 'PERCENTILE_CONT';
|
||||
KW_PERCENTILE_DISC : 'PERCENTILE_DISC';
|
||||
KW_PERCENTLIT : 'PERCENT';
|
||||
KW_PIVOT : 'PIVOT';
|
||||
KW_PLACING : 'PLACING';
|
||||
KW_POSITION : 'POSITION';
|
||||
KW_PRECEDING : 'PRECEDING';
|
||||
KW_PRIMARY : 'PRIMARY';
|
||||
KW_PRINCIPALS : 'PRINCIPALS';
|
||||
KW_PROPERTIES : 'PROPERTIES';
|
||||
KW_PURGE : 'PURGE';
|
||||
KW_QUARTER : 'QUARTER';
|
||||
KW_QUERY : 'QUERY';
|
||||
KW_RANGE : 'RANGE';
|
||||
KW_REAL : 'REAL';
|
||||
KW_RECORDREADER : 'RECORDREADER';
|
||||
KW_RECORDWRITER : 'RECORDWRITER';
|
||||
KW_RECOVER : 'RECOVER';
|
||||
KW_REDUCE : 'REDUCE';
|
||||
KW_REFERENCES : 'REFERENCES';
|
||||
KW_REFRESH : 'REFRESH';
|
||||
KW_RENAME : 'RENAME';
|
||||
KW_REPAIR : 'REPAIR';
|
||||
KW_REPEATABLE : 'REPEATABLE';
|
||||
KW_REPLACE : 'REPLACE';
|
||||
KW_RESET : 'RESET';
|
||||
KW_RESPECT : 'RESPECT';
|
||||
KW_RESTRICT : 'RESTRICT';
|
||||
KW_REVOKE : 'REVOKE';
|
||||
KW_RIGHT : 'RIGHT';
|
||||
KW_RLIKE : 'RLIKE';
|
||||
KW_REGEXP : 'REGEXP';
|
||||
KW_ROLE : 'ROLE';
|
||||
KW_ROLES : 'ROLES';
|
||||
KW_ROLLBACK : 'ROLLBACK';
|
||||
KW_ROLLUP : 'ROLLUP';
|
||||
KW_ROW : 'ROW';
|
||||
KW_ROWS : 'ROWS';
|
||||
KW_SECOND : 'SECOND';
|
||||
KW_SECONDS : 'SECONDS';
|
||||
KW_SCHEMA : 'SCHEMA';
|
||||
KW_SCHEMAS : 'SCHEMAS';
|
||||
KW_SELECT : 'SELECT';
|
||||
KW_SEMI : 'SEMI';
|
||||
KW_SEPARATED : 'SEPARATED';
|
||||
KW_SERDE : 'SERDE';
|
||||
KW_SERDEPROPERTIES : 'SERDEPROPERTIES';
|
||||
KW_SESSION_USER : 'SESSION_USER';
|
||||
KW_SET : 'SET';
|
||||
KW_MINUS : 'MINUS';
|
||||
KW_SETS : 'SETS';
|
||||
KW_SHORT : 'SHORT';
|
||||
KW_SHOW : 'SHOW';
|
||||
KW_SINGLE : 'SINGLE';
|
||||
KW_SKEWED : 'SKEWED';
|
||||
KW_SMALLINT : 'SMALLINT';
|
||||
KW_SOME : 'SOME';
|
||||
KW_SORT : 'SORT';
|
||||
KW_SORTED : 'SORTED';
|
||||
KW_SOURCE : 'SOURCE';
|
||||
KW_START : 'START';
|
||||
KW_STATISTICS : 'STATISTICS';
|
||||
KW_STORED : 'STORED';
|
||||
KW_STRATIFY : 'STRATIFY';
|
||||
KW_STRING : 'STRING';
|
||||
KW_STRUCT : 'STRUCT';
|
||||
KW_SUBSTR : 'SUBSTR';
|
||||
KW_SUBSTRING : 'SUBSTRING';
|
||||
KW_SYNC : 'SYNC';
|
||||
KW_SYSTEM : 'SYSTEM';
|
||||
KW_SYSTEM_TIME : 'SYSTEM_TIME';
|
||||
KW_SYSTEM_VERSION : 'SYSTEM_VERSION';
|
||||
KW_TABLE : 'TABLE';
|
||||
KW_TABLES : 'TABLES';
|
||||
KW_TABLESAMPLE : 'TABLESAMPLE';
|
||||
KW_TARGET : 'TARGET';
|
||||
KW_TBLPROPERTIES : 'TBLPROPERTIES';
|
||||
KW_TEMPORARY : 'TEMPORARY';
|
||||
KW_TERMINATED : 'TERMINATED';
|
||||
KW_THEN : 'THEN';
|
||||
KW_TIME : 'TIME';
|
||||
KW_TIMEDIFF : 'TIMEDIFF';
|
||||
KW_TIMESTAMP : 'TIMESTAMP';
|
||||
KW_TIMESTAMP_LTZ : 'TIMESTAMP_LTZ';
|
||||
KW_TIMESTAMP_NTZ : 'TIMESTAMP_NTZ';
|
||||
KW_TIMESTAMPADD : 'TIMESTAMPADD';
|
||||
KW_TIMESTAMPDIFF : 'TIMESTAMPDIFF';
|
||||
KW_TINYINT : 'TINYINT';
|
||||
KW_TO : 'TO';
|
||||
KW_TOUCH : 'TOUCH';
|
||||
KW_TRAILING : 'TRAILING';
|
||||
KW_TRANSACTION : 'TRANSACTION';
|
||||
KW_TRANSACTIONS : 'TRANSACTIONS';
|
||||
KW_TRANSFORM : 'TRANSFORM';
|
||||
KW_TRIM : 'TRIM';
|
||||
KW_TRUE : 'TRUE';
|
||||
KW_TRUNCATE : 'TRUNCATE';
|
||||
KW_TRY_CAST : 'TRY_CAST';
|
||||
KW_TYPE : 'TYPE';
|
||||
KW_UNARCHIVE : 'UNARCHIVE';
|
||||
KW_UNBOUNDED : 'UNBOUNDED';
|
||||
KW_UNCACHE : 'UNCACHE';
|
||||
KW_UNION : 'UNION';
|
||||
KW_UNIQUE : 'UNIQUE';
|
||||
KW_UNKNOWN : 'UNKNOWN';
|
||||
KW_UNLOCK : 'UNLOCK';
|
||||
KW_UNPIVOT : 'UNPIVOT';
|
||||
KW_UNSET : 'UNSET';
|
||||
KW_UPDATE : 'UPDATE';
|
||||
KW_USE : 'USE';
|
||||
KW_USER : 'USER';
|
||||
KW_USING : 'USING';
|
||||
KW_VALUES : 'VALUES';
|
||||
KW_VARCHAR : 'VARCHAR';
|
||||
KW_VAR : 'VAR';
|
||||
KW_VARIABLE : 'VARIABLE';
|
||||
KW_VERSION : 'VERSION';
|
||||
KW_VIEW : 'VIEW';
|
||||
KW_VIEWS : 'VIEWS';
|
||||
KW_VOID : 'VOID';
|
||||
KW_WEEK : 'WEEK';
|
||||
KW_WEEKS : 'WEEKS';
|
||||
KW_WHEN : 'WHEN';
|
||||
KW_WHERE : 'WHERE';
|
||||
KW_WINDOW : 'WINDOW';
|
||||
KW_WITH : 'WITH';
|
||||
KW_WITHIN : 'WITHIN';
|
||||
KW_YEAR : 'YEAR';
|
||||
KW_YEARS : 'YEARS';
|
||||
KW_ZONE : 'ZONE';
|
||||
//--SPARK-KEYWORD-LIST-END
|
||||
//============================
|
||||
// End of the keywords list
|
||||
//============================
|
||||
|
||||
EQ : '=' | '==';
|
||||
NSEQ: '<=>';
|
||||
NEQ : '<>';
|
||||
NEQJ: '!=';
|
||||
LT : '<';
|
||||
LTE : '<=' | '!>';
|
||||
GT : '>';
|
||||
GTE : '>=' | '!<';
|
||||
EQ : '=' | '==';
|
||||
NSEQ : '<=>';
|
||||
NEQ : '<>';
|
||||
NEQJ : '!=';
|
||||
LT : '<';
|
||||
LTE : '<=' | '!>';
|
||||
GT : '>';
|
||||
GTE : '>=' | '!<';
|
||||
|
||||
NOT: '!';
|
||||
PLUS: '+';
|
||||
MINUS: '-';
|
||||
ASTERISK: '*';
|
||||
SLASH: '/';
|
||||
PERCENT: '%';
|
||||
TILDE: '~';
|
||||
AMPERSAND: '&';
|
||||
PIPE: '|';
|
||||
CONCAT_PIPE: '||';
|
||||
HAT: '^';
|
||||
COLON: ':';
|
||||
ARROW: '->';
|
||||
FAT_ARROW : '=>';
|
||||
HENT_START: '/*+';
|
||||
HENT_END: '*/';
|
||||
QUESTION: '?';
|
||||
NOT : '!';
|
||||
PLUS : '+';
|
||||
MINUS : '-';
|
||||
ASTERISK : '*';
|
||||
SLASH : '/';
|
||||
PERCENT : '%';
|
||||
TILDE : '~';
|
||||
AMPERSAND : '&';
|
||||
PIPE : '|';
|
||||
CONCAT_PIPE : '||';
|
||||
HAT : '^';
|
||||
COLON : ':';
|
||||
ARROW : '->';
|
||||
FAT_ARROW : '=>';
|
||||
HENT_START : '/*+';
|
||||
HENT_END : '*/';
|
||||
QUESTION : '?';
|
||||
|
||||
STRING_LITERAL
|
||||
: '\'' ( ~('\''|'\\') | ('\\' .) )* '\''
|
||||
| 'R\'' (~'\'')* '\''
|
||||
| 'R"'(~'"')* '"'
|
||||
;
|
||||
STRING_LITERAL: '\'' ( ~('\'' | '\\') | ('\\' .))* '\'' | 'R\'' (~'\'')* '\'' | 'R"' (~'"')* '"';
|
||||
|
||||
DOUBLEQUOTED_STRING
|
||||
:'"' ( ~('"'|'\\') | ('\\' .) )* '"'
|
||||
;
|
||||
DOUBLEQUOTED_STRING: '"' ( ~('"' | '\\') | ('\\' .))* '"';
|
||||
|
||||
// NOTE: If you move a numeric literal, you should modify `ParserUtils.toExprAlias()`
|
||||
// which assumes all numeric literals are between `BIGINT_LITERAL` and `BIGDECIMAL_LITERAL`.
|
||||
|
||||
BIGINT_LITERAL
|
||||
: DIGIT+ 'L'
|
||||
;
|
||||
BIGINT_LITERAL: DIGIT+ 'L';
|
||||
|
||||
SMALLINT_LITERAL
|
||||
: DIGIT+ 'S'
|
||||
;
|
||||
SMALLINT_LITERAL: DIGIT+ 'S';
|
||||
|
||||
TINYINT_LITERAL
|
||||
: DIGIT+ 'Y'
|
||||
;
|
||||
TINYINT_LITERAL: DIGIT+ 'Y';
|
||||
|
||||
INTEGER_VALUE
|
||||
: DIGIT+
|
||||
;
|
||||
INTEGER_VALUE: DIGIT+;
|
||||
|
||||
EXPONENT_VALUE
|
||||
: DIGIT+ EXPONENT
|
||||
| DECIMAL_DIGITS EXPONENT
|
||||
;
|
||||
EXPONENT_VALUE: DIGIT+ EXPONENT | DECIMAL_DIGITS EXPONENT;
|
||||
|
||||
DECIMAL_VALUE
|
||||
: DECIMAL_DIGITS
|
||||
;
|
||||
DECIMAL_VALUE: DECIMAL_DIGITS;
|
||||
|
||||
FLOAT_LITERAL
|
||||
: DIGIT+ EXPONENT? 'F'
|
||||
| DECIMAL_DIGITS EXPONENT? 'F'
|
||||
;
|
||||
FLOAT_LITERAL: DIGIT+ EXPONENT? 'F' | DECIMAL_DIGITS EXPONENT? 'F';
|
||||
|
||||
DOUBLE_LITERAL
|
||||
: DIGIT+ EXPONENT? 'D'
|
||||
| DECIMAL_DIGITS EXPONENT? 'D'
|
||||
;
|
||||
DOUBLE_LITERAL: DIGIT+ EXPONENT? 'D' | DECIMAL_DIGITS EXPONENT? 'D';
|
||||
|
||||
BIGDECIMAL_LITERAL
|
||||
: DIGIT+ EXPONENT? 'BD'
|
||||
| DECIMAL_DIGITS EXPONENT? 'BD'
|
||||
;
|
||||
BIGDECIMAL_LITERAL: DIGIT+ EXPONENT? 'BD' | DECIMAL_DIGITS EXPONENT? 'BD';
|
||||
|
||||
IDENTIFIER
|
||||
: (LETTER | DIGIT | '_')+
|
||||
;
|
||||
IDENTIFIER: (LETTER | DIGIT | '_')+;
|
||||
|
||||
BACKQUOTED_IDENTIFIER
|
||||
: '`' ( ~'`' | '``' )* '`'
|
||||
;
|
||||
BACKQUOTED_IDENTIFIER: '`' ( ~'`' | '``')* '`';
|
||||
|
||||
fragment DECIMAL_DIGITS
|
||||
: DIGIT+ '.' DIGIT*
|
||||
| '.' DIGIT+
|
||||
;
|
||||
fragment DECIMAL_DIGITS: DIGIT+ '.' DIGIT* | '.' DIGIT+;
|
||||
|
||||
fragment EXPONENT
|
||||
: 'E' [+-]? DIGIT+
|
||||
;
|
||||
fragment EXPONENT: 'E' [+-]? DIGIT+;
|
||||
|
||||
fragment DIGIT
|
||||
: [0-9]
|
||||
;
|
||||
fragment DIGIT: [0-9];
|
||||
|
||||
fragment LETTER
|
||||
: [A-Za-z]
|
||||
;
|
||||
fragment LETTER: [A-Za-z];
|
||||
|
||||
SIMPLE_COMMENT
|
||||
: '--' ('\\\n' | ~[\r\n])* '\r'? '\n'? -> channel(HIDDEN)
|
||||
;
|
||||
SIMPLE_COMMENT: '--' ('\\\n' | ~[\r\n])* '\r'? '\n'? -> channel(HIDDEN);
|
||||
|
||||
BRACKETED_COMMENT
|
||||
: '/*' ( BRACKETED_COMMENT | . )*? ('*/' | {this.markUnclosedComment();} EOF) -> channel(HIDDEN)
|
||||
;
|
||||
BRACKETED_COMMENT:
|
||||
'/*' (BRACKETED_COMMENT | .)*? ('*/' | {this.markUnclosedComment();} EOF) -> channel(HIDDEN);
|
||||
|
||||
WS
|
||||
: [ \r\n\t]+ -> channel(HIDDEN)
|
||||
;
|
||||
WS: [ \r\n\t]+ -> channel(HIDDEN);
|
||||
|
||||
// Catch-all for anything we can't recognize.
|
||||
// We use this to be able to ignore and recover all the text
|
||||
// when splitting statements with DelimiterLexer
|
||||
UNRECOGNIZED
|
||||
: .
|
||||
;
|
||||
UNRECOGNIZED: .;
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user