Liangda-w commented on a change in pull request #10410:
URL: https://github.com/apache/shardingsphere/pull/10410#discussion_r637452339
##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
Review comment:
A comma is missing, should be:
`(COMMA_ tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_`
##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
+ ;
+
+addHashSubpartition
+ : ADD individualHashSubparts dependentTablesClause? updateIndexClauses?
parallelClause?
+ ;
+
+addListSubpartition
+ : ADD listSubpartitionDesc (COMMA_ listSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+coalesceTableSubpartition
+ : COALESCE SUBPARTITION subpartitionName updateIndexClauses?
parallelClause? allowDisallowClustering?
+ ;
+
+allowDisallowClustering
+ : (ALLOW | DISALLOW) CLUSTERING
+ ;
+
+alterMappingTableClauses
+ : MAPPING TABLE (allocateExtentClause | deallocateUnusedClause)
+ ;
+
+deallocateUnusedClause
+ : DEALLOCATE UNUSED (KEEP sizeClause)?
+ ;
+
+allocateExtentClause
+ : ALLOCATE EXTENT (LP_ (SIZE sizeClause | DATAFILE SQ_ fileName SQ_ |
INSTANCE NUMBER_) RP_)?
+ ;
+
+partitionSpec
+ : PARTITION partitionName? tablePartitionDescription?
+ ;
+
+partitionAttributes
+ : (physicalAttributesClause | loggingClause | allocateExtentClause |
deallocateUnusedClause | shrinkClause)?
+ (OVERFLOW (physicalAttributesClause | loggingClause |
allocateExtentClause | deallocateUnusedClause)?)?
+ tableCompression? inmemoryClause?
Review comment:
This part is missing, or will it come in next PR?

##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
+ ;
+
+addHashSubpartition
+ : ADD individualHashSubparts dependentTablesClause? updateIndexClauses?
parallelClause?
+ ;
+
+addListSubpartition
+ : ADD listSubpartitionDesc (COMMA_ listSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+coalesceTableSubpartition
+ : COALESCE SUBPARTITION subpartitionName updateIndexClauses?
parallelClause? allowDisallowClustering?
+ ;
+
+allowDisallowClustering
+ : (ALLOW | DISALLOW) CLUSTERING
+ ;
+
+alterMappingTableClauses
+ : MAPPING TABLE (allocateExtentClause | deallocateUnusedClause)
+ ;
+
+deallocateUnusedClause
+ : DEALLOCATE UNUSED (KEEP sizeClause)?
+ ;
+
+allocateExtentClause
+ : ALLOCATE EXTENT (LP_ (SIZE sizeClause | DATAFILE SQ_ fileName SQ_ |
INSTANCE NUMBER_) RP_)?
Review comment:
Shouldn't it be `(SIZE sizeClause | DATAFILE SQ_ fileName SQ_ | INSTANCE
NUMBER_)*` ?
##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
+ ;
+
+addHashSubpartition
+ : ADD individualHashSubparts dependentTablesClause? updateIndexClauses?
parallelClause?
+ ;
+
+addListSubpartition
+ : ADD listSubpartitionDesc (COMMA_ listSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+coalesceTableSubpartition
+ : COALESCE SUBPARTITION subpartitionName updateIndexClauses?
parallelClause? allowDisallowClustering?
+ ;
+
+allowDisallowClustering
+ : (ALLOW | DISALLOW) CLUSTERING
+ ;
+
+alterMappingTableClauses
+ : MAPPING TABLE (allocateExtentClause | deallocateUnusedClause)
+ ;
+
+deallocateUnusedClause
+ : DEALLOCATE UNUSED (KEEP sizeClause)?
+ ;
+
+allocateExtentClause
+ : ALLOCATE EXTENT (LP_ (SIZE sizeClause | DATAFILE SQ_ fileName SQ_ |
INSTANCE NUMBER_) RP_)?
+ ;
+
+partitionSpec
+ : PARTITION partitionName? tablePartitionDescription?
+ ;
+
+partitionAttributes
+ : (physicalAttributesClause | loggingClause | allocateExtentClause |
deallocateUnusedClause | shrinkClause)?
+ (OVERFLOW (physicalAttributesClause | loggingClause |
allocateExtentClause | deallocateUnusedClause)?)?
Review comment:
`(OVERFLOW (physicalAttributesClause | loggingClause |
allocateExtentClause | deallocateUnusedClause)*)?`
##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
+ ;
+
+addHashSubpartition
+ : ADD individualHashSubparts dependentTablesClause? updateIndexClauses?
parallelClause?
+ ;
+
+addListSubpartition
+ : ADD listSubpartitionDesc (COMMA_ listSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+coalesceTableSubpartition
+ : COALESCE SUBPARTITION subpartitionName updateIndexClauses?
parallelClause? allowDisallowClustering?
+ ;
+
+allowDisallowClustering
+ : (ALLOW | DISALLOW) CLUSTERING
+ ;
+
+alterMappingTableClauses
+ : MAPPING TABLE (allocateExtentClause | deallocateUnusedClause)
+ ;
+
+deallocateUnusedClause
+ : DEALLOCATE UNUSED (KEEP sizeClause)?
+ ;
+
+allocateExtentClause
+ : ALLOCATE EXTENT (LP_ (SIZE sizeClause | DATAFILE SQ_ fileName SQ_ |
INSTANCE NUMBER_) RP_)?
+ ;
+
+partitionSpec
+ : PARTITION partitionName? tablePartitionDescription?
+ ;
+
+partitionAttributes
+ : (physicalAttributesClause | loggingClause | allocateExtentClause |
deallocateUnusedClause | shrinkClause)?
+ (OVERFLOW (physicalAttributesClause | loggingClause |
allocateExtentClause | deallocateUnusedClause)?)?
+ tableCompression? inmemoryClause?
+ ;
+
+shrinkClause
+ : SHRINK SPACE COMPACT? CASCADE?
+ ;
+
+moveTablePartition
+ : MOVE partitionExtendedName (MAPPING TABLE)? tablePartitionDescription?
filterCondition? updateAllIndexesClause? parallelClause?
allowDisallowClustering? ONLINE?
+ ;
+
+filterCondition
+ : INCLUDING ROWS whereClause
+ ;
+
+whereClause
+ : WHERE expr
+ ;
+
+coalesceTablePartition
+ : COALESCE PARTITION updateIndexClauses? parallelClause?
allowDisallowClustering?
;
addTablePartition
- : ADD (addRangePartitionClause | addListPartitionClause)
+ : ADD ((PARTITION partitionName? addRangePartitionClause (COMMA_ PARTITION
partitionName? addRangePartitionClause)*)
+ | (PARTITION partitionName? addListPartitionClause (COMMA_ PARTITION
partitionName? addListPartitionClause)*)
+ | (PARTITION partitionName? addSystemPartitionClause (COMMA_
PARTITION partitionName? addSystemPartitionClause)*)
+ | (PARTITION partitionName? addHashPartitionClause (COMMA_ PARTITION
partitionName? addHashPartitionClause)*)
+ ) dependentTablesClause?
;
addRangePartitionClause
- : PARTITION partitionName? rangeValuesClause tablePartitionDescription
+ : rangeValuesClause tablePartitionDescription?
externalPartSubpartDataProps?
((LP_? rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)* |
listSubpartitionDesc (COMMA_ listSubpartitionDesc)* | individualHashSubparts
(COMMA_ individualHashSubparts)* RP_?)
- | hashSubpartitionQuantity)?
+ | hashSubpartitionQuantity)? updateIndexClauses?
Review comment:
I think it should be:
```
((LP_? (rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)* |
listSubpartitionDesc (COMMA_ listSubpartitionDesc)* | individualHashSubparts
(COMMA_ individualHashSubparts)*) RP_?)
| hashSubpartitionQuantity)? updateIndexClauses?
```
##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
+ ;
+
+addHashSubpartition
+ : ADD individualHashSubparts dependentTablesClause? updateIndexClauses?
parallelClause?
+ ;
+
+addListSubpartition
+ : ADD listSubpartitionDesc (COMMA_ listSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+coalesceTableSubpartition
+ : COALESCE SUBPARTITION subpartitionName updateIndexClauses?
parallelClause? allowDisallowClustering?
+ ;
+
+allowDisallowClustering
+ : (ALLOW | DISALLOW) CLUSTERING
+ ;
+
+alterMappingTableClauses
+ : MAPPING TABLE (allocateExtentClause | deallocateUnusedClause)
+ ;
+
+deallocateUnusedClause
+ : DEALLOCATE UNUSED (KEEP sizeClause)?
+ ;
+
+allocateExtentClause
+ : ALLOCATE EXTENT (LP_ (SIZE sizeClause | DATAFILE SQ_ fileName SQ_ |
INSTANCE NUMBER_) RP_)?
+ ;
+
+partitionSpec
+ : PARTITION partitionName? tablePartitionDescription?
+ ;
+
+partitionAttributes
+ : (physicalAttributesClause | loggingClause | allocateExtentClause |
deallocateUnusedClause | shrinkClause)?
+ (OVERFLOW (physicalAttributesClause | loggingClause |
allocateExtentClause | deallocateUnusedClause)?)?
+ tableCompression? inmemoryClause?
+ ;
+
+shrinkClause
+ : SHRINK SPACE COMPACT? CASCADE?
+ ;
+
+moveTablePartition
+ : MOVE partitionExtendedName (MAPPING TABLE)? tablePartitionDescription?
filterCondition? updateAllIndexesClause? parallelClause?
allowDisallowClustering? ONLINE?
+ ;
+
+filterCondition
+ : INCLUDING ROWS whereClause
+ ;
+
+whereClause
+ : WHERE expr
+ ;
+
+coalesceTablePartition
+ : COALESCE PARTITION updateIndexClauses? parallelClause?
allowDisallowClustering?
;
addTablePartition
- : ADD (addRangePartitionClause | addListPartitionClause)
+ : ADD ((PARTITION partitionName? addRangePartitionClause (COMMA_ PARTITION
partitionName? addRangePartitionClause)*)
+ | (PARTITION partitionName? addListPartitionClause (COMMA_ PARTITION
partitionName? addListPartitionClause)*)
+ | (PARTITION partitionName? addSystemPartitionClause (COMMA_
PARTITION partitionName? addSystemPartitionClause)*)
+ | (PARTITION partitionName? addHashPartitionClause (COMMA_ PARTITION
partitionName? addHashPartitionClause)*)
Review comment:
`PARTITION partitionName? addHashPartitionClause`
##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
+ ;
+
+addHashSubpartition
+ : ADD individualHashSubparts dependentTablesClause? updateIndexClauses?
parallelClause?
+ ;
+
+addListSubpartition
+ : ADD listSubpartitionDesc (COMMA_ listSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+coalesceTableSubpartition
+ : COALESCE SUBPARTITION subpartitionName updateIndexClauses?
parallelClause? allowDisallowClustering?
+ ;
+
+allowDisallowClustering
+ : (ALLOW | DISALLOW) CLUSTERING
+ ;
+
+alterMappingTableClauses
+ : MAPPING TABLE (allocateExtentClause | deallocateUnusedClause)
+ ;
+
+deallocateUnusedClause
+ : DEALLOCATE UNUSED (KEEP sizeClause)?
+ ;
+
+allocateExtentClause
+ : ALLOCATE EXTENT (LP_ (SIZE sizeClause | DATAFILE SQ_ fileName SQ_ |
INSTANCE NUMBER_) RP_)?
+ ;
+
+partitionSpec
+ : PARTITION partitionName? tablePartitionDescription?
+ ;
+
+partitionAttributes
+ : (physicalAttributesClause | loggingClause | allocateExtentClause |
deallocateUnusedClause | shrinkClause)?
+ (OVERFLOW (physicalAttributesClause | loggingClause |
allocateExtentClause | deallocateUnusedClause)?)?
+ tableCompression? inmemoryClause?
+ ;
+
+shrinkClause
+ : SHRINK SPACE COMPACT? CASCADE?
+ ;
+
+moveTablePartition
+ : MOVE partitionExtendedName (MAPPING TABLE)? tablePartitionDescription?
filterCondition? updateAllIndexesClause? parallelClause?
allowDisallowClustering? ONLINE?
+ ;
+
+filterCondition
+ : INCLUDING ROWS whereClause
+ ;
+
+whereClause
+ : WHERE expr
+ ;
+
+coalesceTablePartition
+ : COALESCE PARTITION updateIndexClauses? parallelClause?
allowDisallowClustering?
;
addTablePartition
- : ADD (addRangePartitionClause | addListPartitionClause)
+ : ADD ((PARTITION partitionName? addRangePartitionClause (COMMA_ PARTITION
partitionName? addRangePartitionClause)*)
+ | (PARTITION partitionName? addListPartitionClause (COMMA_ PARTITION
partitionName? addListPartitionClause)*)
+ | (PARTITION partitionName? addSystemPartitionClause (COMMA_
PARTITION partitionName? addSystemPartitionClause)*)
Review comment:
This part is missing

##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
+ ;
+
+addHashSubpartition
+ : ADD individualHashSubparts dependentTablesClause? updateIndexClauses?
parallelClause?
+ ;
+
+addListSubpartition
+ : ADD listSubpartitionDesc (COMMA_ listSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+coalesceTableSubpartition
+ : COALESCE SUBPARTITION subpartitionName updateIndexClauses?
parallelClause? allowDisallowClustering?
+ ;
+
+allowDisallowClustering
+ : (ALLOW | DISALLOW) CLUSTERING
+ ;
+
+alterMappingTableClauses
+ : MAPPING TABLE (allocateExtentClause | deallocateUnusedClause)
+ ;
+
+deallocateUnusedClause
+ : DEALLOCATE UNUSED (KEEP sizeClause)?
+ ;
+
+allocateExtentClause
+ : ALLOCATE EXTENT (LP_ (SIZE sizeClause | DATAFILE SQ_ fileName SQ_ |
INSTANCE NUMBER_) RP_)?
+ ;
+
+partitionSpec
+ : PARTITION partitionName? tablePartitionDescription?
+ ;
+
+partitionAttributes
+ : (physicalAttributesClause | loggingClause | allocateExtentClause |
deallocateUnusedClause | shrinkClause)?
+ (OVERFLOW (physicalAttributesClause | loggingClause |
allocateExtentClause | deallocateUnusedClause)?)?
+ tableCompression? inmemoryClause?
+ ;
+
+shrinkClause
+ : SHRINK SPACE COMPACT? CASCADE?
+ ;
+
+moveTablePartition
+ : MOVE partitionExtendedName (MAPPING TABLE)? tablePartitionDescription?
filterCondition? updateAllIndexesClause? parallelClause?
allowDisallowClustering? ONLINE?
+ ;
+
+filterCondition
+ : INCLUDING ROWS whereClause
+ ;
+
+whereClause
+ : WHERE expr
+ ;
+
+coalesceTablePartition
+ : COALESCE PARTITION updateIndexClauses? parallelClause?
allowDisallowClustering?
;
addTablePartition
- : ADD (addRangePartitionClause | addListPartitionClause)
+ : ADD ((PARTITION partitionName? addRangePartitionClause (COMMA_ PARTITION
partitionName? addRangePartitionClause)*)
+ | (PARTITION partitionName? addListPartitionClause (COMMA_ PARTITION
partitionName? addListPartitionClause)*)
+ | (PARTITION partitionName? addSystemPartitionClause (COMMA_
PARTITION partitionName? addSystemPartitionClause)*)
+ | (PARTITION partitionName? addHashPartitionClause (COMMA_ PARTITION
partitionName? addHashPartitionClause)*)
+ ) dependentTablesClause?
;
addRangePartitionClause
- : PARTITION partitionName? rangeValuesClause tablePartitionDescription
+ : rangeValuesClause tablePartitionDescription?
externalPartSubpartDataProps?
((LP_? rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)* |
listSubpartitionDesc (COMMA_ listSubpartitionDesc)* | individualHashSubparts
(COMMA_ individualHashSubparts)* RP_?)
- | hashSubpartitionQuantity)?
+ | hashSubpartitionQuantity)? updateIndexClauses?
;
addListPartitionClause
- : PARTITION partitionName? listValuesClause tablePartitionDescription
+ : listValuesClause tablePartitionDescription? externalPartSubpartDataProps?
((LP_? rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)* |
listSubpartitionDesc (COMMA_ listSubpartitionDesc)* | individualHashSubparts
(COMMA_ individualHashSubparts)* RP_?)
- | hashSubpartitionQuantity)?
+ | hashSubpartitionQuantity)? updateIndexClauses?
Review comment:
I think it should be:
```
((LP_? (rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)* |
listSubpartitionDesc (COMMA_ listSubpartitionDesc)* | individualHashSubparts
(COMMA_ individualHashSubparts)*) RP_?)
| hashSubpartitionQuantity)? updateIndexClauses?
```
##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
+ ;
+
+addHashSubpartition
+ : ADD individualHashSubparts dependentTablesClause? updateIndexClauses?
parallelClause?
+ ;
+
+addListSubpartition
+ : ADD listSubpartitionDesc (COMMA_ listSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+coalesceTableSubpartition
+ : COALESCE SUBPARTITION subpartitionName updateIndexClauses?
parallelClause? allowDisallowClustering?
+ ;
+
+allowDisallowClustering
+ : (ALLOW | DISALLOW) CLUSTERING
+ ;
+
+alterMappingTableClauses
+ : MAPPING TABLE (allocateExtentClause | deallocateUnusedClause)
+ ;
+
+deallocateUnusedClause
+ : DEALLOCATE UNUSED (KEEP sizeClause)?
+ ;
+
+allocateExtentClause
+ : ALLOCATE EXTENT (LP_ (SIZE sizeClause | DATAFILE SQ_ fileName SQ_ |
INSTANCE NUMBER_) RP_)?
+ ;
+
+partitionSpec
+ : PARTITION partitionName? tablePartitionDescription?
+ ;
+
+partitionAttributes
+ : (physicalAttributesClause | loggingClause | allocateExtentClause |
deallocateUnusedClause | shrinkClause)?
+ (OVERFLOW (physicalAttributesClause | loggingClause |
allocateExtentClause | deallocateUnusedClause)?)?
+ tableCompression? inmemoryClause?
+ ;
+
+shrinkClause
+ : SHRINK SPACE COMPACT? CASCADE?
+ ;
+
+moveTablePartition
+ : MOVE partitionExtendedName (MAPPING TABLE)? tablePartitionDescription?
filterCondition? updateAllIndexesClause? parallelClause?
allowDisallowClustering? ONLINE?
+ ;
+
+filterCondition
+ : INCLUDING ROWS whereClause
+ ;
+
+whereClause
+ : WHERE expr
+ ;
+
+coalesceTablePartition
+ : COALESCE PARTITION updateIndexClauses? parallelClause?
allowDisallowClustering?
;
addTablePartition
- : ADD (addRangePartitionClause | addListPartitionClause)
+ : ADD ((PARTITION partitionName? addRangePartitionClause (COMMA_ PARTITION
partitionName? addRangePartitionClause)*)
+ | (PARTITION partitionName? addListPartitionClause (COMMA_ PARTITION
partitionName? addListPartitionClause)*)
+ | (PARTITION partitionName? addSystemPartitionClause (COMMA_
PARTITION partitionName? addSystemPartitionClause)*)
+ | (PARTITION partitionName? addHashPartitionClause (COMMA_ PARTITION
partitionName? addHashPartitionClause)*)
+ ) dependentTablesClause?
;
addRangePartitionClause
- : PARTITION partitionName? rangeValuesClause tablePartitionDescription
+ : rangeValuesClause tablePartitionDescription?
externalPartSubpartDataProps?
((LP_? rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)* |
listSubpartitionDesc (COMMA_ listSubpartitionDesc)* | individualHashSubparts
(COMMA_ individualHashSubparts)* RP_?)
- | hashSubpartitionQuantity)?
+ | hashSubpartitionQuantity)? updateIndexClauses?
Review comment:
`hashSubpartitionQuantity` is not the same as
`hash_subparts_by_quantity`, please have a check:)
##########
File path:
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -964,23 +964,136 @@ alterSynonym
;
alterTablePartitioning
- : addTablePartition | dropTablePartition
+ : modifyTablePartition
+ | moveTablePartition
+ | addTablePartition
+ | coalesceTablePartition
+ | dropTablePartition
+ ;
+
+modifyTablePartition
+ : modifyRangePartition
+ | modifyHashPartition
+ | modifyListPartition
+ ;
+
+modifyRangePartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | alterMappingTableClauses | REBUILD? UNUSABLE
LOCAL INDEXES
+ | readOnlyClause | indexingClause)
+ ;
+
+modifyHashPartition
+ : MODIFY partitionExtendedName (partitionAttributes |
coalesceTableSubpartition
+ | alterMappingTableClauses | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+modifyListPartition
+ : MODIFY partitionExtendedName (partitionAttributes
+ | (ADD | DROP) VALUES LP_ listValues RP_
+ | (addRangeSubpartition | addHashSubpartition | addListSubpartition)
+ | coalesceTableSubpartition | REBUILD? UNUSABLE LOCAL INDEXES |
readOnlyClause | indexingClause)
+ ;
+
+partitionExtendedName
+ : PARTITION partitionName
+ | PARTITION FOR LR_ partitionKeyValue (COMMA_ partitionKeyValue)* RP_
+ ;
+
+addRangeSubpartition
+ : ADD rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+dependentTablesClause
+ : DEPENDENT TABLES LP_ tableName LP_ partitionSpec (COMMA_ partitionSpec)*
RP_
+ (tableName LP_ partitionSpec (COMMA_ partitionSpec)* RP_)* RP_
+ ;
+
+addHashSubpartition
+ : ADD individualHashSubparts dependentTablesClause? updateIndexClauses?
parallelClause?
+ ;
+
+addListSubpartition
+ : ADD listSubpartitionDesc (COMMA_ listSubpartitionDesc)*
dependentTablesClause? updateIndexClauses?
+ ;
+
+coalesceTableSubpartition
+ : COALESCE SUBPARTITION subpartitionName updateIndexClauses?
parallelClause? allowDisallowClustering?
+ ;
+
+allowDisallowClustering
+ : (ALLOW | DISALLOW) CLUSTERING
+ ;
+
+alterMappingTableClauses
+ : MAPPING TABLE (allocateExtentClause | deallocateUnusedClause)
+ ;
+
+deallocateUnusedClause
+ : DEALLOCATE UNUSED (KEEP sizeClause)?
+ ;
+
+allocateExtentClause
+ : ALLOCATE EXTENT (LP_ (SIZE sizeClause | DATAFILE SQ_ fileName SQ_ |
INSTANCE NUMBER_) RP_)?
+ ;
+
+partitionSpec
+ : PARTITION partitionName? tablePartitionDescription?
+ ;
+
+partitionAttributes
+ : (physicalAttributesClause | loggingClause | allocateExtentClause |
deallocateUnusedClause | shrinkClause)?
Review comment:
Does `(physicalAttributesClause | loggingClause | allocateExtentClause |
deallocateUnusedClause | shrinkClause)*` work?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]