@@ -92,8 +92,11 @@ statement
9292 )* KW_PURGE ?
9393 | KW_ALTER KW_TABLE tableName (partitionSpec)? KW_SET locationSpec
9494 | KW_ALTER KW_TABLE tableName KW_RECOVER KW_PARTITIONS
95+ | KW_ALTER KW_MATERIALIZED KW_VIEW viewName (KW_ENABLE | KW_DISABLE ) KW_REWRITE
96+ | KW_ALTER KW_MATERIALIZED KW_VIEW viewName KW_SET KW_TBLPROPERTIES propertyList
9597 | KW_DROP KW_TABLE (ifExists)? tableName KW_PURGE ?
9698 | KW_DROP KW_VIEW (ifExists)? viewName
99+ | KW_DROP KW_MATERIALIZED KW_VIEW (ifExists)? viewName
97100 | KW_CREATE (KW_OR KW_REPLACE )? (KW_GLOBAL ? KW_TEMPORARY )? KW_VIEW (ifNotExists)? viewNameCreate identifierCommentList? (
98101 commentSpec
99102 | (KW_PARTITIONED KW_ON identifierList)
@@ -106,6 +109,19 @@ statement
106109 | KW_CREATE (KW_OR KW_REPLACE )? KW_TEMPORARY ? KW_FUNCTION (ifNotExists)? functionNameCreate KW_AS className=stringLit (
107110 KW_USING resource (COMMA resource)*
108111 )?
112+ |
113+ // Self developed materialized view syntax by dtstack, spark not support now.
114+ KW_CREATE KW_MATERIALIZED KW_VIEW (ifNotExists)? viewNameCreate tableProvider? (
115+ (KW_OPTIONS options =propertyList)
116+ | (KW_PARTITIONED KW_BY partitioning=partitionFieldList)
117+ | skewSpec
118+ | bucketSpec
119+ | rowFormat
120+ | createFileFormat
121+ | locationSpec
122+ | commentSpec
123+ | (KW_TBLPROPERTIES tableProps=propertyList)
124+ )* KW_AS query
109125 | KW_DROP KW_TEMPORARY? KW_FUNCTION (ifExists)? functionName
110126 | KW_DECLARE (KW_OR KW_REPLACE)? KW_VARIABLE? functionName dataType? variableDefaultExpression?
111127 | KW_DROP KW_TEMPORARY KW_VARIABLE (ifExists)? (tableName | viewName | functionName)
@@ -122,6 +138,10 @@ statement
122138 | KW_SHOW KW_CREATE KW_TABLE tableName (KW_AS KW_SERDE)?
123139 | KW_SHOW KW_CURRENT dbSchema
124140 | KW_SHOW KW_CATALOGS (KW_LIKE? pattern=stringLit)?
141+ | KW_SHOW KW_MATERIALIZED KW_VIEWS ((KW_FROM | KW_IN) db_name=dbSchemaName)? (
142+ KW_LIKE? pattern=stringLit
143+ )?
144+ | KW_SHOW KW_CREATE KW_MATERIALIZED KW_VIEW viewName (KW_AS KW_SERDE)?
125145 | (KW_DESC | KW_DESCRIBE) KW_FUNCTION KW_EXTENDED? describeFuncName
126146 | (KW_DESC | KW_DESCRIBE) KW_DATABASE KW_EXTENDED? dbSchemaName
127147 | (KW_DESC | KW_DESCRIBE) KW_TABLE? option=(KW_EXTENDED | KW_FORMATTED)? tableName partitionSpec? describeColName?
@@ -131,6 +151,7 @@ statement
131151 | KW_REFRESH KW_TABLE tableName
132152 | KW_REFRESH KW_FUNCTION functionName
133153 | KW_REFRESH (stringLit | .*?)
154+ | KW_REFRESH KW_MATERIALIZED KW_VIEW viewName
134155 | KW_CACHE KW_LAZY? KW_TABLE tableName (KW_OPTIONS options=propertyList)? (KW_AS? query)?
135156 | KW_UNCACHE KW_TABLE (ifExists)? tableName
136157 | KW_CLEAR KW_CACHE
@@ -154,6 +175,7 @@ statement
154175 KW_USING indexType=identifier
155176 )? LEFT_PAREN multipartIdentifierPropertyList RIGHT_PAREN (KW_OPTIONS options=propertyList)?
156177 | KW_DROP KW_INDEX (ifExists)? identifier KW_ON KW_TABLE? tableName
178+ | KW_OPTIMIZE tableName whereClause? zorderClause
157179 | unsupportedHiveNativeCommands .*?
158180 ;
159181
@@ -1233,6 +1255,10 @@ windowClause
12331255 : KW_WINDOW namedWindow (COMMA namedWindow)*
12341256 ;
12351257
1258+ zorderClause
1259+ : KW_ZORDER KW_BY columnNameSeq
1260+ ;
1261+
12361262namedWindow
12371263 : name=errorCapturingIdentifier KW_AS windowSpec
12381264 ;
@@ -1436,10 +1462,12 @@ ansiNonReserved
14361462 | KW_DFS
14371463 | KW_DIRECTORIES
14381464 | KW_DIRECTORY
1465+ | KW_DISABLE
14391466 | KW_DISTRIBUTE
14401467 | KW_DIV
14411468 | KW_DOUBLE
14421469 | KW_DROP
1470+ | KW_ENABLE
14431471 | KW_ESCAPED
14441472 | KW_EXCHANGE
14451473 | KW_EXCLUDE
@@ -1495,6 +1523,7 @@ ansiNonReserved
14951523 | KW_MACRO
14961524 | KW_MAP
14971525 | KW_MATCHED
1526+ | KW_MATERIALIZED
14981527 | KW_MERGE
14991528 | KW_MICROSECOND
15001529 | KW_MICROSECONDS
@@ -1514,6 +1543,7 @@ ansiNonReserved
15141543 | KW_NULLS
15151544 | KW_NUMERIC
15161545 | KW_OF
1546+ | KW_OPTIMIZE
15171547 | KW_OPTION
15181548 | KW_OPTIONS
15191549 | KW_OUT
@@ -1549,6 +1579,7 @@ ansiNonReserved
15491579 | KW_RESPECT
15501580 | KW_RESTRICT
15511581 | KW_REVOKE
1582+ | KW_REWRITE
15521583 | KW_RLIKE
15531584 | KW_REGEXP
15541585 | KW_ROLE
@@ -1632,6 +1663,7 @@ ansiNonReserved
16321663 | KW_YEAR
16331664 | KW_YEARS
16341665 | KW_ZONE
1666+ | KW_ZORDER
16351667 //--ANSI-NON-RESERVED-END
16361668 ;
16371669
@@ -1747,12 +1779,14 @@ nonReserved
17471779 | KW_DFS
17481780 | KW_DIRECTORIES
17491781 | KW_DIRECTORY
1782+ | KW_DISABLE
17501783 | KW_DISTINCT
17511784 | KW_DISTRIBUTE
17521785 | KW_DIV
17531786 | KW_DOUBLE
17541787 | KW_DROP
17551788 | KW_ELSE
1789+ | KW_ENABLE
17561790 | KW_END
17571791 | KW_ESCAPE
17581792 | KW_ESCAPED
@@ -1824,6 +1858,7 @@ nonReserved
18241858 | KW_MACRO
18251859 | KW_MAP
18261860 | KW_MATCHED
1861+ | KW_MATERIALIZED
18271862 | KW_MERGE
18281863 | KW_MICROSECOND
18291864 | KW_MICROSECONDS
@@ -1847,6 +1882,7 @@ nonReserved
18471882 | KW_OF
18481883 | KW_OFFSET
18491884 | KW_ONLY
1885+ | KW_OPTIMIZE
18501886 | KW_OPTION
18511887 | KW_OPTIONS
18521888 | KW_OR
@@ -1890,6 +1926,7 @@ nonReserved
18901926 | KW_RESPECT
18911927 | KW_RESTRICT
18921928 | KW_REVOKE
1929+ | KW_REWRITE
18931930 | KW_RLIKE
18941931 | KW_REGEXP
18951932 | KW_ROLE
@@ -1986,5 +2023,6 @@ nonReserved
19862023 | KW_YEAR
19872024 | KW_YEARS
19882025 | KW_ZONE
2026+ | KW_ZORDER
19892027 //--DEFAULT-NON-RESERVED-END
19902028 ;
0 commit comments