add sparksql pegjs file
This commit is contained in:
parent
a4006f8fc5
commit
ff77c1b0ac
139
peg/sparksql.pegjs
Normal file
139
peg/sparksql.pegjs
Normal file
@ -0,0 +1,139 @@
|
||||
{
|
||||
var legacy_setops_precedence_enbled = false;
|
||||
var isValidDecimal=function() {
|
||||
var nextChar = _input.LA(1);
|
||||
if (nextChar >= 'A' && nextChar <= 'Z' || nextChar >= '0' && nextChar <= '9' ||
|
||||
nextChar == '_') {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
start
|
||||
= singleStatement
|
||||
|
||||
singleStatement
|
||||
= statement
|
||||
|
||||
singleExpression
|
||||
= namedExpression
|
||||
|
||||
singleTableIdentifier
|
||||
= tableIdentifier
|
||||
|
||||
singleFunctionIdentifier
|
||||
= functionIdentifier
|
||||
|
||||
singleDataType
|
||||
= dataType
|
||||
|
||||
singleTableSchema
|
||||
= colTypeList
|
||||
|
||||
statement
|
||||
= query //#statementDefault
|
||||
/ (USE db:identifier) //#use
|
||||
/ (CREATE DATABASE (IF NOT EXISTS)? identifier
|
||||
(COMMENT comment:STRING)? locationSpec?
|
||||
(WITH DBPROPERTIES tablePropertyList)?) //createDatabase
|
||||
/ (ALTER DATABASE identifier SET DBPROPERTIES tablePropertyList) //setDatabaseProperties
|
||||
/ (DROP DATABASE (IF EXISTS)? identifier (RESTRICT / CASCADE)?) //dropDatabase
|
||||
/ (createTableHeader ('(' colTypeList ')')? tableProvider
|
||||
((OPTIONS options:tablePropertyList) /
|
||||
(PARTITIONED BY partitionColumnNames:identifierList) /
|
||||
bucketSpec /
|
||||
locationSpec /
|
||||
(COMMENT comment:STRING) /
|
||||
(TBLPROPERTIES tableProps:tablePropertyList))*
|
||||
(AS? query)?) //createTable
|
||||
/ (createTableHeader ('(' columns:colTypeList ')')?
|
||||
((COMMENT comment:STRING) /
|
||||
(PARTITIONED BY '(' partitionColumns:colTypeList ')') /
|
||||
bucketSpec /
|
||||
skewSpec /
|
||||
rowFormat /
|
||||
createFileFormat /
|
||||
locationSpec /
|
||||
(TBLPROPERTIES tableProps:tablePropertyList))*
|
||||
(AS? query)?) //createHiveTable
|
||||
/ (CREATE TABLE (IF NOT EXISTS)? target:tableIdentifier
|
||||
LIKE source:tableIdentifier locationSpec?) //#createTableLike
|
||||
/ (ANALYZE TABLE tableIdentifier partitionSpec? COMPUTE STATISTICS
|
||||
(identifier / FOR COLUMNS identifierSeq / FOR ALL COLUMNS)?) //#analyze
|
||||
/ (ALTER TABLE tableIdentifier
|
||||
ADD COLUMNS '(' columns:colTypeList ')') //#addTableColumns
|
||||
/ (ALTER (TABLE / VIEW) from:tableIdentifier
|
||||
RENAME TO to:tableIdentifier) //#renameTable
|
||||
/ (ALTER (TABLE / VIEW) tableIdentifier
|
||||
SET TBLPROPERTIES tablePropertyList) //#setTableProperties
|
||||
/ (ALTER (TABLE / VIEW) tableIdentifier
|
||||
UNSET TBLPROPERTIES (IF EXISTS)? tablePropertyList //#unsetTableProperties
|
||||
/ (ALTER TABLE tableIdentifier partitionSpec?)
|
||||
CHANGE COLUMN? identifier colType colPosition?) // #changeColumn
|
||||
/ (ALTER TABLE tableIdentifier (partitionSpec)?
|
||||
SET SERDE STRING (WITH SERDEPROPERTIES tablePropertyList)?) //#setTableSerDe
|
||||
/ (ALTER TABLE tableIdentifier (partitionSpec)?
|
||||
SET SERDEPROPERTIES tablePropertyList) //#setTableSerDe
|
||||
/ (ALTER TABLE tableIdentifier ADD (IF NOT EXISTS)?
|
||||
partitionSpecLocation+) // #addTablePartition
|
||||
/ (ALTER VIEW tableIdentifier ADD (IF NOT EXISTS)?
|
||||
partitionSpec+) //#addTablePartition
|
||||
/ (ALTER TABLE tableIdentifier
|
||||
from:partitionSpec RENAME TO to:partitionSpec) //#renameTablePartition
|
||||
/ (ALTER TABLE tableIdentifier
|
||||
DROP (IF EXISTS)? partitionSpec (',' partitionSpec)* PURGE?) //#dropTablePartitions
|
||||
/ (ALTER VIEW tableIdentifier
|
||||
DROP (IF EXISTS)? partitionSpec (',' partitionSpec)*) //#dropTablePartitions
|
||||
/ (ALTER TABLE tableIdentifier partitionSpec? SET locationSpec) //#setTableLocation
|
||||
/ (ALTER TABLE tableIdentifier RECOVER PARTITIONS) //#recoverPartitions
|
||||
/ (DROP TABLE (IF EXISTS)? tableIdentifier PURGE?) //#dropTable
|
||||
/ (DROP VIEW (IF EXISTS)? tableIdentifier) //#dropTable
|
||||
/ (CREATE (OR REPLACE)? (GLOBAL? TEMPORARY)?
|
||||
VIEW (IF NOT EXISTS)? tableIdentifier
|
||||
identifierCommentList? (COMMENT STRING)?
|
||||
(PARTITIONED ON identifierList)?
|
||||
(TBLPROPERTIES tablePropertyList)? AS query) //#createView
|
||||
/ (CREATE (OR REPLACE)? GLOBAL? TEMPORARY VIEW
|
||||
tableIdentifier ('(' colTypeList ')')? tableProvider
|
||||
(OPTIONS tablePropertyList)?) //#createTempViewUsing
|
||||
/ (ALTER VIEW tableIdentifier AS? query) //#alterViewQuery
|
||||
/ (CREATE (OR REPLACE)? TEMPORARY? FUNCTION (IF NOT EXISTS)?
|
||||
qualifiedName AS className:STRING
|
||||
(USING resource (',' resource)*)?) // #createFunction
|
||||
/ (DROP TEMPORARY? FUNCTION (IF EXISTS)? qualifiedName) // #dropFunction
|
||||
/ (EXPLAIN (LOGICAL / FORMATTED / EXTENDED / CODEGEN / COST)?
|
||||
statement) // #explain
|
||||
/ (SHOW TABLES ((FROM / IN) db:identifier)?
|
||||
(LIKE? pattern:STRING)?) // #showTables
|
||||
/ (SHOW TABLE EXTENDED ((FROM / IN) db:identifier)?
|
||||
LIKE pattern:STRING partitionSpec?) // #showTable
|
||||
/ (SHOW DATABASES (LIKE? pattern:STRING)?) // #showDatabases
|
||||
/ (SHOW TBLPROPERTIES table:tableIdentifier
|
||||
('(' key:tablePropertyKey ')')?) // #showTblProperties
|
||||
/ (SHOW COLUMNS (FROM / IN) tableIdentifier
|
||||
((FROM / IN) db:identifier)?) // #showColumns
|
||||
/ (SHOW PARTITIONS tableIdentifier partitionSpec?) // #showPartitions
|
||||
/ (SHOW identifier? FUNCTIONS
|
||||
(LIKE? (qualifiedName / pattern:STRING))?) // #showFunctions
|
||||
/ (SHOW CREATE TABLE tableIdentifier) //#showCreateTable
|
||||
/ (DESC / DESCRIBE) FUNCTION EXTENDED? describeFuncName //#describeFunction
|
||||
/ (DESC / DESCRIBE) DATABASE EXTENDED? identifier //#describeDatabase
|
||||
/ (DESC / DESCRIBE) TABLE? option:(EXTENDED / FORMATTED)?
|
||||
tableIdentifier partitionSpec? describeColName? //#describeTable
|
||||
/ (REFRESH TABLE tableIdentifier) //#refreshTable
|
||||
/ (REFRESH (STRING / .*?)) // #refreshResource
|
||||
/ (CACHE LAZY? TABLE tableIdentifier
|
||||
(OPTIONS options=tablePropertyList)? (AS? query)?) // #cacheTable
|
||||
/ (UNCACHE TABLE (IF EXISTS)? tableIdentifier) // #uncacheTable
|
||||
/ (CLEAR CACHE) // #clearCache
|
||||
/ (LOAD DATA LOCAL? INPATH path=STRING OVERWRITE? INTO TABLE
|
||||
tableIdentifier partitionSpec?) // #loadData
|
||||
/ (TRUNCATE TABLE tableIdentifier partitionSpec?) // #truncateTable
|
||||
/ (MSCK REPAIR TABLE tableIdentifier) // #repairTable
|
||||
/ (op:(ADD / LIST) identifier .*?) // #manageResource
|
||||
/ (SET ROLE .*?) // #failNativeCommand
|
||||
/ (SET .*?) // #setConfiguration
|
||||
/ (RESET) // #resetConfiguration
|
||||
/ (unsupportedHiveNativeCommands .*?) // #failNativeCommand
|
Loading…
Reference in New Issue
Block a user