Skip to content

Commit af1d71c

Browse files
authored
Feat/hive ddl (DTStack#150)
* test: test cases about Alter Either Table or Partition * feat: support alter protection and correct alter compact * feat: improve keyword rules * feat: recompile hive grammar
1 parent f1b9b80 commit af1d71c

File tree

11 files changed

+11084
-10926
lines changed

11 files changed

+11084
-10926
lines changed

src/grammar/hive/HiveSqlLexer.g4

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ KW_AST : 'AST';
4242
KW_AT : 'AT';
4343
KW_AUTHORIZATION : 'AUTHORIZATION';
4444
KW_AUTOCOMMIT : 'AUTOCOMMIT';
45-
KW_BATCH : 'KW_BATCH';
45+
KW_BATCH : 'BATCH';
4646
KW_BEFORE : 'BEFORE';
4747
KW_BETWEEN : 'BETWEEN';
4848
KW_BIGINT : 'BIGINT';
@@ -93,7 +93,7 @@ KW_DATACONNECTORS : 'CONNECTORS';
9393
KW_DATE : 'DATE';
9494
KW_DATETIME : 'DATETIME';
9595
KW_DAY : 'DAY' 'S'?;
96-
KW_DAYOFWEEK : 'KW_DAYOFWEEK';
96+
KW_DAYOFWEEK : 'DAYOFWEEK';
9797
KW_DBPROPERTIES : 'DBPROPERTIES';
9898
KW_DCPROPERTIES : 'DCPROPERTIES';
9999
KW_DDL : 'DDL';
@@ -116,7 +116,6 @@ KW_DISTRIBUTE : 'DISTRIBUTE';
116116
KW_DISTRIBUTED : 'DISTRIBUTED';
117117
KW_DO : 'DO';
118118
KW_DOUBLE : 'DOUBLE';
119-
KW_DOW : 'DAYOFWEEK';
120119
KW_DROP : 'DROP';
121120
KW_DUMP : 'DUMP';
122121
KW_ELEM_TYPE : '$ELEM$';
@@ -161,7 +160,7 @@ KW_GRANT : 'GRANT';
161160
KW_GROUP : 'GROUP';
162161
KW_GROUPING : 'GROUPING';
163162
KW_HAVING : 'HAVING';
164-
KW_HOLD_DDLTIME : 'KW_HOLD_DDLTIME';
163+
KW_HOLD_DDLTIME : 'HOLD_DDLTIME';
165164
KW_HOUR : 'HOUR' 'S'?;
166165
KW_IDXPROPERTIES : 'IDXPROPERTIES';
167166
KW_IF : 'IF';
@@ -227,11 +226,11 @@ KW_NORELY : 'NORELY';
227226
KW_NOSCAN : 'NOSCAN';
228227
KW_NOT : 'NOT' | '!';
229228
KW_NOVALIDATE : 'NOVALIDATE';
230-
KW_NO_DROP : 'KW_NO_DROP';
229+
KW_NO_DROP : 'NO_DROP';
231230
KW_NULL : 'NULL';
232231
KW_NULLS : 'NULLS';
233232
KW_OF : 'OF';
234-
KW_OFFLINE : 'KW_OFFLINE';
233+
KW_OFFLINE : 'OFFLINE';
235234
KW_OFFSET : 'OFFSET';
236235
KW_ON : 'ON';
237236
KW_ONLY : 'ONLY';
@@ -263,15 +262,15 @@ KW_PRESERVE : 'PRESERVE';
263262
KW_PRIMARY : 'PRIMARY';
264263
KW_PRINCIPALS : 'PRINCIPALS';
265264
KW_PROCEDURE : 'PROCEDURE';
266-
KW_PROTECTION : 'KW_PROTECTION';
265+
KW_PROTECTION : 'PROTECTION';
267266
KW_PURGE : 'PURGE';
268267
KW_QUALIFY : 'QUALIFY';
269268
KW_QUARTER : 'QUARTER';
270269
KW_QUERY : 'QUERY';
271270
KW_QUERY_PARALLELISM : 'QUERY_PARALLELISM';
272271
KW_RANGE : 'RANGE';
273272
KW_READ : 'READ';
274-
KW_READONLY : 'KW_READONLY';
273+
KW_READONLY : 'READONLY';
275274
KW_READS : 'READS';
276275
KW_REAL : 'REAL';
277276
KW_REBUILD : 'REBUILD';
@@ -347,7 +346,7 @@ KW_THEN : 'THEN';
347346
KW_TIME : 'TIME';
348347
KW_TIMESTAMP : 'TIMESTAMP';
349348
KW_TIMESTAMPLOCALTZ : 'TIMESTAMPLOCALTZ';
350-
KW_TIMESTAMPTZ : 'KW_TIMESTAMPTZ';
349+
KW_TIMESTAMPTZ : 'TIMESTAMPTZ';
351350
KW_TINYINT : 'TINYINT';
352351
KW_TO : 'TO';
353352
KW_TOUCH : 'TOUCH';
@@ -503,6 +502,7 @@ QuotedIdentifier
503502
fragment
504503
Letter
505504
: 'A'..'Z'
505+
| 'a'..'z'
506506
;
507507

508508
fragment

src/grammar/hive/HiveSqlParser.g4

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1369,6 +1369,7 @@ alterTblPartitionStatementSuffix
13691369
| alterStatementSuffixRenameCol
13701370
| alterStatementSuffixAddCol
13711371
| alterStatementSuffixUpdateColumns
1372+
| alterStatementSuffixProtections
13721373
;
13731374

13741375
alterStatementPartitionKeyType
@@ -1435,6 +1436,11 @@ alterStatementSuffixUpdateColumns
14351436
: KW_UPDATE KW_COLUMNS restrictOrCascade?
14361437
;
14371438

1439+
alterStatementSuffixProtections
1440+
: enableSpecification KW_NO_DROP KW_CASCADE?
1441+
| enableSpecification KW_OFFLINE
1442+
;
1443+
14381444
alterStatementSuffixDropConstraint
14391445
: KW_DROP KW_CONSTRAINT cName=id_
14401446
;
@@ -1569,7 +1575,7 @@ compactPool
15691575
;
15701576

15711577
alterStatementSuffixCompact
1572-
: KW_COMPACT compactType=StringLiteral tableImplBuckets? blocking? compactPool? (KW_WITH KW_OVERWRITE KW_TBLPROPERTIES tableProperties)?
1578+
: KW_COMPACT compactType=StringLiteral blocking? tableImplBuckets? orderByClause? compactPool? (KW_WITH KW_OVERWRITE KW_TBLPROPERTIES tableProperties)?
15731579
;
15741580

15751581
alterStatementSuffixSetOwner
@@ -2184,7 +2190,6 @@ timeQualifiers
21842190
| KW_MONTH
21852191
| KW_WEEK
21862192
| KW_DAY
2187-
| KW_DOW
21882193
| KW_HOUR
21892194
| KW_MINUTE
21902195
| KW_SECOND
@@ -2641,7 +2646,6 @@ nonReserved
26412646
| KW_DISTRIBUTE
26422647
| KW_DISTRIBUTED
26432648
| KW_DO
2644-
| KW_DOW
26452649
| KW_DUMP
26462650
| KW_ELEM_TYPE
26472651
| KW_ENABLE

src/lib/hive/HiveSqlLexer.interp

Lines changed: 9 additions & 12 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)