tristaZero commented on a change in pull request #9572:
URL: https://github.com/apache/shardingsphere/pull/9572#discussion_r589024778



##########
File path: 
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
##########
@@ -922,3 +922,430 @@ ERRORS
 REJECT
     : R E J E C T
     ;
+
+RETENTION
+    : R E T E N T I O N
+    ;
+
+CHUNK
+    : C H U N K
+    ;
+
+PCTVERSION
+    : P C T V E R S I O N
+    ;
+
+FREEPOOLS
+    : F R E E P O O L S
+    ;
+
+AUTO
+    : A U T O
+    ;
+
+DEDUPLICATE
+    : D E D U P L I C A T E
+    ;
+
+KEEP_DUPLICATES
+    : K E E P UL_ D U P L I C A T E S
+    ;
+
+COMPRESS
+    : C O M P R E S S
+    ;
+
+HIGH
+    : H I G H
+    ;
+
+MEDIUM
+    : M E D I U M
+    ;
+
+LOW
+    : L O W
+    ;
+
+NOCOMPRESS
+    : N O C O M P R E S S
+    ;
+
+READS
+    : R E A D S
+    ;
+
+CREATION
+    : C R E A T I O N
+    ;
+
+PCTFREE
+    : P C T F R E E
+    ;
+
+PCTUSED
+    : P C T U S E D
+    ;
+
+INITRANS
+    : I N I T R A N S
+    ;
+
+LOGGING
+    : L O G G I N G
+    ;
+
+NOLOGGING
+    : N O L O G G I N G
+    ;
+
+FILESYSTEM_LIKE_LOGGING
+    : F I L E S Y S T E M UL_ L I K E UL_ L O G G I N G
+    ;
+
+INITIAL
+    : I N I T I A L
+    ;
+
+MINEXTENTS
+    : M I N E X T E N T S
+    ;
+
+MAXEXTENTS
+    : M A X E X T E N T S
+    ;
+
+BASIC
+    : B A S I C
+    ;
+
+ADVANCED
+    : A D V A N C E D
+    ;
+
+PCTINCREASE
+    : P C T I N C R E A S E
+    ;
+
+FREELISTS
+    : F R E E L I S T S
+    ;
+
+DML
+    : D M L
+    ;
+
+CAPACITY
+    : C A P A C I T Y
+    ;
+
+FREELIST
+    : F R E E L I S T
+    ;
+
+GROUPS
+    : G R O U P S
+    ;
+
+OPTIMAL
+    : O P T I M A L
+    ;
+
+BUFFER_POOL
+    : B U F F E R UL_ P O O L
+    ;
+
+RECYCLE
+    : R E C Y C L E
+    ;
+
+FLASH_CACHE
+    : F L A S H UL_ C A C H E
+    ;
+
+CELL_FLASH_CACHE
+    : C E L L UL_ F L A S H UL_ C A C H E
+    ;
+
+MAXSIZE
+    : M A X S I Z E
+    ;
+
+STORE
+    : S T O R E
+    ;
+
+LEVEL
+    : L E V E L
+    ;
+
+LOCKING
+    : L O C K I N G
+    ;
+
+INMEMORY
+    : I N M E M O R Y
+    ;
+
+MEMCOMPRESS
+    : M E M C O M P R E S S
+    ;
+
+PRIORITY
+    : P R I O R I T Y
+    ;
+
+CRITICAL
+    : C R I T I C A L
+    ;
+
+DISTRIBUTE
+    : D I S T R I B U T E
+    ;
+
+RANGE
+    : R A N G E
+    ;
+
+PARTITION
+    : P A R T I T I O N
+    ;
+
+SUBPARTITION
+    : S U B P A R T I T I O N
+    ;
+
+SERVICE
+    : S E R V I C E
+    ;
+
+DUPLICATE
+    : D U P L I C A T E
+    ;
+
+ILM
+    : I L M
+    ;
+
+DELETE_ALL
+    : D E L E T E UL_ A L L
+    ;
+
+ENABLE_ALL
+    : E N A B L E UL_ A L L
+    ;
+
+DISABLE_ALL
+    : D I S A B L E UL_ A L L
+    ;
+
+AFTER
+    : A F T E R
+    ;
+
+MODIFICATION
+    : M O D I F I C A T I O N
+    ;
+
+DAYS
+    : D A Y S
+    ;
+
+MONTHS
+    : M O N T H S
+    ;
+
+YEARS
+    : Y E A R S
+    ;
+
+TIER
+    : T I E R
+    ;
+
+ORGANIZATION
+    : O R G A N I Z A T I O N
+    ;
+
+HEAP
+    : H E A P
+    ;
+
+PCTTHRESHOLD
+    : P C T T H R E S H O L D
+    ;
+
+PARAMETERS
+    : P A R A M E  T E R S
+    ;
+
+LOCATION
+    : L O C A T I O N
+    ;
+
+MAPPING
+    : M A P P I N G
+    ;
+
+NOMAPPING
+    : N O M A P P I N G
+    ;
+
+INCLUDING
+    : I N C L U D I N G
+    ;
+
+OVERFLOW
+    : O V E R F L O W
+    ;
+
+ATTRIBUTES
+    : A T T R I B U T E S
+    ;
+
+RESULT_CACHE
+    : R E S U L T UL_ C A C H E
+    ;
+
+ROWDEPENDENCIES
+    : R O W D E P E N D E N C I E S
+    ;
+
+NOROWDEPENDENCIES
+    : N O R O W D E P E N D E N C I E S
+    ; 
+
+ARCHIVAL
+    : A R C H I V A L
+    ;
+
+EXCHANGE
+    : E X C H A N G E
+    ;
+
+INDEXING
+    : I N D E X I N G
+    ;
+
+OFF
+    : O F F
+    ;
+
+LESS
+    : L E S S
+    ;
+
+INTERNAL
+    : I N T E R N A L
+    ;
+
+VARRAY
+    : V A R R A Y
+    ;
+
+NESTED
+    : N E S T E D
+    ;
+
+COLUMN_VALUE
+    : C O L U M N UL_ V A L U E
+    ;
+
+RETURN
+    : R E T U R N
+    ;
+
+LOCATOR
+    : L O C A  T O R
+    ;
+
+MODE
+    : M O D E
+    ;
+
+LOB
+    : L O B
+    ;
+
+SECUREFILE
+    : S E C U R E F I L E
+    ;
+
+BASICFILE
+    : B A S I C F I L E
+    ;
+
+THAN
+    : T H A N
+    ;
+
+LIST
+    : L I S T
+    ;
+
+AUTOMATIC
+    : A U T O M A T I C
+    ;
+
+HASH
+    : H A S H
+    ;
+
+PARTITIONS
+    : P A R T I T I O N S
+    ;
+
+SUBPARTITIONS
+    : S U B P A R T I T I O N S
+    ;
+
+TEMPLATE
+    : T E M P L A T E
+    ;
+
+PARTITIONSET
+    : P A R T I T I O N S E T
+    ;
+
+REFERENCE
+    : R E F E R E N C E
+    ;
+
+CONSISTENT
+    : C O N S I S T E N T
+    ;
+
+CLUSTERING
+    : C L U S T E R I N G
+    ;
+
+LINEAR
+    : L I N E A R
+    ;
+
+INTERLEAVED
+    : I N T E R L E A V E D
+    ;
+
+YES
+    : Y E S
+    ;
+
+LOAD
+    : L O A D
+    ;
+
+MOVEMENT
+    : M O V E M E N T
+    ;
+
+ZONEMAP
+    : Z O N E M A P
+    ;
+
+WITHOUT
+    : W I T H O U T
+    ;
+
+

Review comment:
       These blank lines are necessary?

##########
File path: 
shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/sql/supported/dml/select-sub-query.xml
##########
@@ -18,7 +18,7 @@
 
 <sql-cases>
     <sql-case id="select_sub_query_with_project" value="SELECT order_id, 
(select 1) as num FROM t_order" />
-    <sql-case id="select_sub_query_with_table" value="SELECT t.* FROM (SELECT 
* FROM t_order WHERE order_id IN (?, ?)) t" />
+    <sql-case id="select_sub_query_with_table" value="SELECT a.* FROM (SELECT 
* FROM t_order WHERE order_id IN (?, ?)) a" />

Review comment:
       Is it necessary to use `a` instead of `t`?

##########
File path: 
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -435,6 +435,483 @@ materializedViewLogClause
     : (PRESERVE | PURGE) MATERIALIZED VIEW LOG
     ;
 
-storageClause
+dropReuseClause
     : (DROP (ALL)? | REUSE) STORAGE
     ;
+
+collationClause
+    : DEFAULT COLLATION collationName
+    ;
+
+commitClause
+    : (ON COMMIT (DROP | PRESERVE) ROWS)? (ON COMMIT (DELETE | PRESERVE) ROWS)?
+    ;
+
+physicalProperties
+    : deferredSegmentCreation? segmentAttributesClause tableCompression? 
inmemoryTableClause? ilmClause?
+    | deferredSegmentCreation? (organizationClause?|externalPartitionClause?)
+    | clusterClause
+    ;
+
+deferredSegmentCreation
+    : SEGMENT CREATION (IMMEDIATE|DEFERRED)
+    ;
+
+segmentAttributesClause
+    : physicalAttributesClause
+    | (TABLESPACE tablespaceName | TABLESPACE SET tablespaceSetName)
+    | loggingClause
+    ;
+
+physicalAttributesClause
+    : (PCTFREE NUMBER_ | PCTUSED NUMBER_ | INITRANS NUMBER_ | storageClause)*
+    ;
+
+loggingClause
+    : LOGGING | NOLOGGING |  FILESYSTEM_LIKE_LOGGING
+    ;
+
+storageClause
+    : STORAGE LP_
+    (INITIAL sizeClause
+    | NEXT sizeClause
+    | MINEXTENTS NUMBER_
+    | MAXEXTENTS (NUMBER_ | UNLIMITED)
+    | maxsizeClause
+    | PCTINCREASE NUMBER_
+    | FREELISTS NUMBER_
+    | FREELIST GROUPS NUMBER_
+    | OPTIMAL (sizeClause | NULL)?
+    | BUFFER_POOL (KEEP | RECYCLE | DEFAULT)
+    | FLASH_CACHE (KEEP | NONE | DEFAULT)
+    | CELL_FLASH_CACHE (KEEP | NONE | DEFAULT)
+    | ENCRYPT
+    )+ RP_
+    ;
+
+sizeClause
+    : NUMBER_ ('K' | 'M' | 'G' | 'T' | 'P' | 'E')?
+    ;
+
+maxsizeClause
+    : MAXSIZE (UNLIMITED | sizeClause)
+    ;
+
+tableCompression
+    : COMPRESS
+    | ROW STORE COMPRESS (BASIC | ADVANCED)?
+    | COLUMN STORE COMPRESS (FOR (QUERY | ARCHIVE) (LOW | HIGH)?)? (NO? ROW 
LEVEL LOCKING)?
+    | NOCOMPRESS
+    ;
+
+inmemoryTableClause
+    : ((INMEMORY inmemoryAttributes?) | NO INMEMORY)? (inmemoryColumnClause)?
+    ;
+
+inmemoryAttributes
+    : inmemoryMemcompress? inmemoryPriority? inmemoryDistribute? 
inmemoryDuplicate?
+    ;
+
+inmemoryColumnClause
+    : (INMEMORY inmemoryMemcompress? | NO INMEMORY) columnNames
+    ;
+
+inmemoryMemcompress
+    : MEMCOMPRESS FOR ( DML | (QUERY | CAPACITY) (LOW | HIGH)? ) | NO 
MEMCOMPRESS
+    ;
+
+inmemoryPriority
+    : PRIORITY (NONE | LOW | MEDIUM | HIGH | CRITICAL)
+    ;
+
+inmemoryDistribute
+    : DISTRIBUTE (AUTO | BY (ROWID RANGE | PARTITION | SUBPARTITION))? (FOR 
SERVICE (DEFAULT | ALL | serviceName | NONE))?
+    ;
+
+inmemoryDuplicate
+    : DUPLICATE | DUPLICATE ALL | NO DUPLICATE
+    ;
+
+ilmClause
+    : ILM (ADD POLICY ilmPolicyClause
+    | (DELETE | ENABLE | DISABLE) POLICY ilmPolicyName
+    | (DELETE_ALL | ENABLE_ALL | DISABLE_ALL))
+    ;
+
+ilmPolicyClause
+    : ilmCompressionPolicy | ilmTieringPolicy | ilmInmemoryPolicy
+    ;
+
+ilmCompressionPolicy
+    : tableCompression (SEGMENT | GROUP) ( AFTER ilmTimePeriod OF ( NO ACCESS 
| NO MODIFICATION | CREATION ) | ON functionName)
+    | (ROW STORE COMPRESS ADVANCED | COLUMN STORE COMPRESS FOR QUERY) ROW 
AFTER ilmTimePeriod OF NO MODIFICATION
+    ;
+
+ilmTimePeriod
+    : NUMBER_ ((DAY | DAYS) | (MONTH | MONTHS) | (YEAR | YEARS))
+    ;
+
+ilmTieringPolicy
+    : TIER TO tablespaceName (SEGMENT | GROUP)? (ON functionName)?
+    | TIER TO tablespaceName READ ONLY (SEGMENT | GROUP)? (AFTER ilmTimePeriod 
OF (NO ACCESS | NO MODIFICATION | CREATION) | ON functionName)
+    ;
+
+ilmInmemoryPolicy
+    : (SET INMEMORY inmemoryAttributes | MODIFY INMEMORY inmemoryMemcompress | 
NO INMEMORY) SEGMENT (AFTER ilmTimePeriod OF (NO ACCESS | NO MODIFICATION | 
CREATION) | ON functionName)
+    ;
+
+organizationClause
+    : ORGANIZATION 
+    ( HEAP segmentAttributesClause? heapOrgTableClause 
+    | INDEX segmentAttributesClause? indexOrgTableClause 
+    | EXTERNAL externalTableClause)
+    ;
+
+heapOrgTableClause
+    : tableCompression? inmemoryTableClause? ilmClause?
+    ;
+
+indexOrgTableClause
+    : (mappingTableClause | PCTTHRESHOLD NUMBER_ | prefixCompression)* 
indexOrgOverflowClause?
+    ;
+
+externalTableClause
+    : LP_ (TYPE accessDriverType)? (externalTableDataProps)? RP_ (REJECT LIMIT 
(NUMBER_ | UNLIMITED))? inmemoryTableClause?
+    ;
+
+externalTableDataProps
+    : (DEFAULT DIRECTORY directoryName)? (ACCESS PARAMETERS 
((opaqueFormatSpec) | USING CLOB subquery))? (LOCATION LP_ (directoryName 
COLON_)? locationSpecifier (COMMA_ (directoryName COLON_)? locationSpecifier)+ 
RP_)?
+    ;
+
+mappingTableClause
+    : MAPPING TABLE | NOMAPPING
+    ;
+
+prefixCompression
+    : COMPRESS NUMBER_? | NOCOMPRESS
+    ;
+
+indexOrgOverflowClause
+    :  (INCLUDING columnName)? OVERFLOW segmentAttributesClause?
+    ;
+
+externalPartitionClause
+    : EXTERNAL PARTITION ATTRIBUTES externalTableClause (REJECT LIMIT)?
+    ;
+
+clusterRelatedClause
+    : CLUSTER clusterName columnNames
+    ;
+
+tableProperties
+    :columnProperties?
+     readOnlyClause?
+     indexingClause?
+     tablePartitioningClauses?
+     attributeClusteringClause?
+     (CACHE | NOCACHE)?
+     ( RESULT_CACHE ( MODE (DEFAULT | FORCE) ) )?
+     parallelClause?
+     (ROWDEPENDENCIES | NOROWDEPENDENCIES)?
+     enableDisableClause*
+     rowMovementClause?
+     flashbackArchiveClause?
+     (ROW ARCHIVAL)?
+     (AS subquery | FOR EXCHANGE WITH TABLE tableName)?
+    ;
+
+readOnlyClause
+    : READ ONLY | READ WRITE 
+    ;
+
+indexingClause
+    : INDEXING (ON | OFF)
+    ;
+
+tablePartitioningClauses
+    : rangePartitions
+    | listPartitions
+    | hashPartitions
+    | compositeRangePartitions
+    | compositeListPartitions
+    | compositeHashPartitions
+    | referencePartitioning
+    | systemPartitioning
+    | consistentHashPartitions
+    | consistentHashWithSubpartitions
+    | partitionsetClauses
+    ;
+
+rangePartitions
+    : PARTITION BY RANGE columnNames
+      (INTERVAL LP_ expr RP_ (STORE IN LP_ tablespaceName (COMMA_ 
tablespaceName)* RP_)?)?
+      LP_ PARTITION partition? rangeValuesClause tablePartitionDescription 
(COMMA_ PARTITION partition? rangeValuesClause tablePartitionDescription 
externalPartSubpartDataProps?)* RP_
+    ;
+
+rangeValuesClause
+    : VALUES LESS THAN LP_? (numberLiterals | MAXVALUE) (COMMA_ 
(numberLiterals | MAXVALUE))* RP_?
+    ;
+
+tablePartitionDescription
+    : (INTERNAL | EXTERNAL)?
+      deferredSegmentCreation?
+      readOnlyClause?
+      indexingClause?
+      segmentAttributesClause?
+      (tableCompression | prefixCompression)?
+      inmemoryClause?
+      ilmClause?
+      (OVERFLOW segmentAttributesClause?)?
+      (lobStorageClause | varrayColProperties | nestedTableColProperties)*
+    ;
+
+inmemoryClause
+    : INMEMORY inmemoryAttributes? | NO INMEMORY
+    ;
+
+varrayColProperties
+    : VARRAY varrayItem (substitutableColumnClause? varrayStorageClause | 
substitutableColumnClause)
+    ;
+
+nestedTableColProperties
+    : NESTED TABLE 
+    (nestedItem | COLUMN_VALUE) substitutableColumnClause? (LOCAL | GLOBAL)? 
STORE AS storageTable 
+    LP_ (LP_ objectProperties RP_ | physicalProperties | columnProperties) RP_ 
+    (RETURN AS? (LOCATOR | VALUE))?
+    ;
+
+lobStorageClause
+    : LOB
+    ( LP_ lobItem (COMMA_ lobItem)* RP_ STORE AS ((SECUREFILE | BASICFILE) | 
LP_ lobStorageParameters RP_)+
+    | LP_ lobItem RP_ STORE AS ((SECUREFILE | BASICFILE) | lobSegname | LP_ 
lobStorageParameters RP_)+
+    )
+    ;
+
+varrayStorageClause
+    : STORE AS (SECUREFILE | BASICFILE)? LOB (lobSegname? LP_ 
lobStorageParameters RP_ | lobSegname)
+    ;
+
+lobStorageParameters
+    : ((TABLESPACE tablespaceName | TABLESPACE SET tablespaceSetName) | 
lobParameters storageClause?)+ | storageClause
+    ;
+
+lobParameters
+    : ( (ENABLE | DISABLE) STORAGE IN ROW
+        | CHUNK NUMBER_
+        | PCTVERSION NUMBER_
+        | FREEPOOLS NUMBER_
+        | lobRetentionClause
+        | lobDeduplicateClause
+        | lobCompressionClause
+        | (ENCRYPT encryptionSpecification | DECRYPT)
+        | (CACHE | NOCACHE | CACHE READS) loggingClause? 
+      )+
+    ;
+
+lobRetentionClause
+    : RETENTION (MAX | MIN NUMBER_ | AUTO | NONE)?
+    ;
+
+lobDeduplicateClause
+    : DEDUPLICATE | KEEP_DUPLICATES
+    ;
+
+lobCompressionClause
+    : (COMPRESS (HIGH | MEDIUM | LOW)? | NOCOMPRESS)
+    ;
+
+externalPartSubpartDataProps
+    : (DEFAULT DIRECTORY directoryName) (LOCATION LP_ (directoryName COLON_)? 
locationSpecifier (COMMA_ (directoryName COLON_)? locationSpecifier)* RP_)?
+    ;
+
+listPartitions
+    : PARTITION BY LIST columnNames
+      (AUTOMATIC (STORE IN LP_? tablespaceName (COMMA_ tablespaceName)* RP_?))?
+      LP_ PARTITION partition? listValuesClause tablePartitionDescription 
(COMMA_ PARTITION partition? listValuesClause tablePartitionDescription 
externalPartSubpartDataProps?)* RP_
+    ;
+
+listValuesClause
+    : VALUES ( listValues | DEFAULT )
+    ;
+
+listValues
+    : (literals | NULL) (COMMA_ (literals | NULL))*
+    | (LP_? ( (literals | NULL) (COMMA_ (literals | NULL))* ) RP_?) (COMMA_ 
LP_? ( (literals | NULL) (COMMA_ (literals | NULL))* ) RP_?)*
+    ;
+
+hashPartitions
+    : PARTITION BY HASH columnNames (individualHashPartitions | 
hashPartitionsByQuantity)
+    ;
+
+hashPartitionsByQuantity
+    : PARTITIONS NUMBER_ (STORE IN (tablespaceName (COMMA_ tablespaceName)*))? 
(tableCompression | indexCompression)? (OVERFLOW STORE IN (tablespaceName 
(COMMA_ tablespaceName)*))?
+    ;
+
+indexCompression
+    : prefixCompression | advancedIndexCompression
+    ;
+
+advancedIndexCompression
+    : COMPRESS ADVANCED (LOW | HIGH)? | NOCOMPRESS
+    ;
+
+individualHashPartitions
+    : LP_? (PARTITION partition? readOnlyClause? indexingClause? 
partitioningStorageClause?) (COMMA_ PARTITION partition? readOnlyClause? 
indexingClause? partitioningStorageClause?)* RP_?
+    ;
+
+partitioningStorageClause
+    : ((TABLESPACE tablespaceName | TABLESPACE SET tablespaceSetName)
+    | OVERFLOW (TABLESPACE tablespaceName | TABLESPACE SET tablespaceSetName)?
+    | tableCompression
+    | indexCompression
+    | inmemoryClause
+    | ilmClause
+    | lobPartitioningStorage
+    | VARRAY varrayItem STORE AS (SECUREFILE | BASICFILE)? LOB lobSegname
+    )*
+    ;
+
+lobPartitioningStorage
+    :LOB LP_ lobItem RP_ STORE AS (BASICFILE | SECUREFILE)?
+    (lobSegname (LP_ TABLESPACE tablespaceName | TABLESPACE SET 
tablespaceSetName RP_)?
+    | LP_ TABLESPACE tablespaceName | TABLESPACE SET tablespaceSetName RP_
+    )?
+    ;
+
+compositeRangePartitions
+    : PARTITION BY RANGE columnNames 
+      (INTERVAL LP_ expr RP_ (STORE IN LP_? tablespaceName (COMMA_ 
tablespaceName)* RP_?)?)?
+      (subpartitionByRange | subpartitionByList | subpartitionByHash) 
+      LP_? rangePartitionDesc (COMMA_ rangePartitionDesc)* RP_?
+    ;
+
+subpartitionByRange
+    : SUBPARTITION BY RANGE columnNames subpartitionTemplate?
+    ;
+
+subpartitionByList
+    : SUBPARTITION BY LIST columnNames subpartitionTemplate?
+    ;
+
+subpartitionByHash
+    : SUBPARTITION BY HASH columnNames (SUBPARTITIONS NUMBER_ (STORE IN LP_ 
tablespaceName (COMMA_ tablespaceName)? RP_)? | subpartitionTemplate)?
+    ;
+
+subpartitionTemplate
+    : SUBPARTITION TEMPLATE
+    (LP_? rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)* | 
listSubpartitionDesc (COMMA_ listSubpartitionDesc)* | individualHashSubparts 
(COMMA_ individualHashSubparts)* RP_?)
+    | hashSubpartitionQuantity
+    ;
+
+rangeSubpartitionDesc
+    : SUBPARTITION subpartitionName? rangeValuesClause readOnlyClause? 
indexingClause? partitioningStorageClause? externalPartSubpartDataProps?
+    ;
+
+listSubpartitionDesc
+    : SUBPARTITION subpartitionName? listValuesClause readOnlyClause? 
indexingClause? partitioningStorageClause? externalPartSubpartDataProps?
+    ;
+
+individualHashSubparts
+    : SUBPARTITION subpartitionName? readOnlyClause? indexingClause? 
partitioningStorageClause?
+    ;
+
+rangePartitionDesc
+    : PARTITION partitionName? rangeValuesClause tablePartitionDescription
+    ((LP_? rangeSubpartitionDesc (COMMA_ rangeSubpartitionDesc)* | 
listSubpartitionDesc (COMMA_ listSubpartitionDesc)* | individualHashSubparts 
(COMMA_ individualHashSubparts)* RP_?)
+    | hashSubpartitionQuantity)?
+    ;
+
+compositeListPartitions
+    : PARTITION BY LIST columnNames 
+      (AUTOMATIC (STORE IN LP_? tablespaceName (COMMA_ tablespaceName)* 
RP_?)?)?
+      (subpartitionByRange | subpartitionByList | subpartitionByHash) 
+      LP_? listPartitionDesc (COMMA_ listPartitionDesc)* RP_?
+    ;
+
+listPartitionDesc
+    : PARTITIONSET partitionSetName listValuesClause (TABLESPACE SET 
tablespaceSetName)? lobStorageClause? (SUBPARTITIONS STORE IN LP_? 
tablespaceSetName (COMMA_ tablespaceSetName)* RP_?)?
+    ;
+
+compositeHashPartitions
+    : PARTITION BY HASH columnNames (subpartitionByRange | subpartitionByList 
| subpartitionByHash) (individualHashPartitions | hashPartitionsByQuantity)
+    ;
+
+referencePartitioning
+    :PARTITION BY REFERENCE LP_ constraint RP_ (LP_? referencePartitionDesc 
(COMMA_ referencePartitionDesc)* RP_?)?
+    ;
+
+referencePartitionDesc
+    : PARTITION partition? tablePartitionDescription?
+    ;
+
+constraint
+    : inlineConstraint | outOfLineConstraint | inlineRefConstraint | 
outOfLineRefConstraint
+    ;
+
+systemPartitioning
+    : PARTITION BY SYSTEM (PARTITIONS NUMBER_ | referencePartitionDesc (COMMA_ 
referencePartitionDesc)*)?
+    ;
+
+consistentHashPartitions
+    : PARTITION BY CONSISTENT HASH columnNames (PARTITIONS AUTO)? TABLESPACE 
SET tablespaceSetName
+    ;
+
+consistentHashWithSubpartitions
+    : PARTITION BY CONSISTENT HASH columnNames (subpartitionByRange | 
subpartitionByList | subpartitionByHash)  (PARTITIONS AUTO)?
+    ;
+
+partitionsetClauses
+    : rangePartitionsetClause | listPartitionsetClause
+    ;
+
+rangePartitionsetClause
+    : PARTITIONSET BY RANGE columnNames PARTITION BY CONSISTENT HASH 
columnNames
+      (SUBPARTITION BY ((RANGE | HASH) columnNames | LIST LP_ columnName LP_) 
subpartitionTemplate?)?
+      PARTITIONS AUTO LP_ rangePartitionsetDesc (COMMA_ 
rangePartitionsetDesc)* RP_
+    ;
+
+rangePartitionsetDesc
+    : PARTITIONSET partitionSetName rangeValuesClause (TABLESPACE SET 
tablespaceSetName)? (lobStorageClause)? (SUBPARTITIONS STORE IN 
tablespaceSetName?)?
+    ;
+
+listPartitionsetClause
+    : PARTITIONSET BY RANGE LP_ columnName RP_ PARTITION BY CONSISTENT HASH 
columnNames
+      (SUBPARTITION BY ((RANGE | HASH) columnNames | LIST LP_ columnName LP_) 
subpartitionTemplate?)?
+      PARTITIONS AUTO LP_ rangePartitionsetDesc (COMMA_ 
rangePartitionsetDesc)* RP_
+    ;
+
+attributeClusteringClause
+    : CLUSTERING clusteringJoin? clusterClause clusteringWhen? zonemapClause?
+    ;
+
+clusteringJoin
+    : tableName (JOIN tableName ON LP_ expr RP_)+
+    ;
+
+clusterClause
+    : BY (LINEAR | INTERLEAVED)? ORDER clusteringColumns
+    ;
+
+clusteringColumns
+    : LP_? clusteringColumnGroup (COMMA_ clusteringColumnGroup)* RP_?
+    ;
+
+clusteringColumnGroup
+    : columnNames
+    ;
+
+clusteringWhen
+    : ((YES | NO) ON LOAD)? ((YES | NO) ON DATA MOVEMENT)?
+    ;
+
+zonemapClause
+    : (WITH MATERIALIZED ZONEMAP (LP_ zonemapName RP_)?) | (WITHOUT 
MATERIALIZED ZONEMAP)
+    ;
+
+rowMovementClause
+    : (ENABLE | DISABLE) ROW MOVEMENT
+    ;
+
+flashbackArchiveClause
+    : FLASHBACK ARCHIVE flashbackArchiveName? | NO FLASHBACK ARCHIVE
+    ;

Review comment:
       A new line is required here.




----------------------------------------------------------------
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]


Reply via email to