This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 7d98131efac Enhance Oracle alter index syntax (#27590)
7d98131efac is described below

commit 7d98131efac1d92248469839b597b2ecad7825b7
Author: niu niu <[email protected]>
AuthorDate: Mon Jul 31 19:19:16 2023 +0800

    Enhance Oracle alter index syntax (#27590)
---
 .../src/main/antlr4/imports/oracle/DDLStatement.g4 | 11 ++++++++-
 .../src/main/resources/case/ddl/alter-index.xml    | 28 ++++++++++++++++++++--
 .../resources/sql/supported/ddl/alter-index.xml    | 10 ++++++--
 3 files changed, 44 insertions(+), 5 deletions(-)

diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
index d9b5dc232cf..5f92026918c 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
@@ -479,6 +479,7 @@ alterIndexInformationClause
     | allocateExtentClause
     | shrinkClause
     | parallelClause
+    | physicalAttributesClause
     | loggingClause
     | partialIndexClause)+
     | rebuildClause ((DEFERRED | IMMEDIATE) | INVALIDATION)?
@@ -581,7 +582,15 @@ enableDisableOthers
     ;
 
 rebuildClause
-    : REBUILD parallelClause?
+    : REBUILD (PARTITION partitionName | SUBPARTITION subpartitionName | 
REVERSE | NOREVERSE)?
+    ( parallelClause
+    | TABLESPACE tablespaceName
+    | PARAMETERS LP_ odciParameters RP_
+    | ONLINE
+    | physicalAttributesClause
+    | indexCompression
+    | loggingClause
+    | partialIndexClause)*
     ;
 
 parallelClause
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-index.xml 
b/test/it/parser/src/main/resources/case/ddl/alter-index.xml
index 68aa7548b08..f8c91003c3d 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-index.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-index.xml
@@ -86,10 +86,18 @@
         <index name="cost_ix" start-index="12" stop-index="18" />
     </alter-index>
     
-    <alter-index sql-case-id="alter_index_drop_partition">
+    <alter-index sql-case-id="alter_index_drop_partition1">
         <index name="cost_ix" start-index="12" stop-index="18" />
     </alter-index>
     
+    <alter-index sql-case-id="alter_index_drop_partition2">
+        <index name="npr" start-index="12" stop-index="14" />
+    </alter-index>
+    
+    <alter-index sql-case-id="alter_index_rebuild_partition">
+        <index name="npr" start-index="12" stop-index="14" />
+    </alter-index>
+    
     <alter-index sql-case-id="alter_index_rename_partition">
         <index name="cost_ix" start-index="12" stop-index="18" />
     </alter-index>
@@ -106,10 +114,26 @@
         <index name="hgidx" start-index="12" stop-index="16" />
     </alter-index>
     
-    <alter-index sql-case-id="alter_index_parameters">
+    <alter-index sql-case-id="alter_index_initrans">
+        <index name="cust_lname_ix" start-index="12" stop-index="27" />
+    </alter-index>
+    
+    <alter-index sql-case-id="alter_index_parameters1">
+        <index name="po_xmlindex_ix" start-index="12" stop-index="25" />
+    </alter-index>
+
+    <alter-index sql-case-id="alter_index_parameters2">
+        <index name="po_xmlindex_ix" start-index="12" stop-index="25" />
+    </alter-index>
+    
+    <alter-index sql-case-id="alter_index_parameters3">
         <index name="po_xmlindex_ix" start-index="12" stop-index="25" />
     </alter-index>
     
+    <alter-index 
sql-case-id="alter_index_modify_default_attributes_tablespace">
+        <index name="q1_sales_by_region_locix" start-index="12" 
stop-index="35" />
+    </alter-index>
+    
     <alter-index sql-case-id="alter_index_alter_column" />
     <alter-index sql-case-id="alter_index_with_schema" />
     <alter-index sql-case-id="alter_index_set_tablespace" />
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-index.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-index.xml
index d3b9abb7a63..61ca83518d0 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-index.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-index.xml
@@ -36,12 +36,18 @@
     <sql-case id="alter_index_with_reorganize" value="ALTER INDEX order_index 
ON t_order REORGANIZE WITH (COMPRESS_ALL_ROW_GROUPS = ON)" db-types="SQLServer" 
/>
     <sql-case id="alter_index_parameters_odci" value="ALTER INDEX 
ResumeTextIndex PARAMETERS (':Ignore on')" db-types="Oracle" />
     <sql-case id="alter_index_modify_partition_unusable" value="ALTER INDEX 
cost_ix MODIFY PARTITION p2 UNUSABLE" db-types="Oracle" />
-    <sql-case id="alter_index_drop_partition" value="ALTER INDEX cost_ix DROP 
PARTITION p1" db-types="Oracle" />
+    <sql-case id="alter_index_drop_partition1" value="ALTER INDEX cost_ix DROP 
PARTITION p1" db-types="Oracle" />
+    <sql-case id="alter_index_drop_partition2" value="ALTER INDEX npr DROP 
PARTITION P1" db-types="Oracle" />
+    <sql-case id="alter_index_rebuild_partition" value="ALTER INDEX npr 
REBUILD PARTITION P2" db-types="Oracle" />
     <sql-case id="alter_index_rename_partition" value="ALTER INDEX cost_ix 
RENAME PARTITION p3 TO p3_Q3" db-types="Oracle" />
     <sql-case id="alter_index_split_partition_at_into" value="ALTER INDEX 
cost_ix SPLIT PARTITION p2 AT (1500) INTO (PARTITION p2a TABLESPACE tbs_01 
LOGGING, PARTITION p2b TABLESPACE tbs_02)" db-types="Oracle" />
     <sql-case id="alter_index_storage" value="ALTER INDEX emp_ename STORAGE 
(NEXT 40)" db-types="Oracle" />
     <sql-case id="alter_index_add_partition" value="ALTER INDEX hgidx ADD 
PARTITION p5" db-types="Oracle" />
-    <sql-case id="alter_index_parameters" value="ALTER INDEX po_xmlindex_ix 
PARAMETERS('DROP PATH TABLE')" db-types="Oracle" />
+    <sql-case id="alter_index_initrans" value="ALTER INDEX oe.cust_lname_ix 
INITRANS 5" db-types="Oracle" />
+    <sql-case id="alter_index_parameters1" value="ALTER INDEX po_xmlindex_ix 
PARAMETERS('DROP PATH TABLE')" db-types="Oracle" />
+    <sql-case id="alter_index_parameters2" value="ALTER INDEX po_xmlindex_ix 
PARAMETERS('DROP_GROUP GROUP po_item')" db-types="Oracle" />
+    <sql-case id="alter_index_parameters3" value="ALTER INDEX po_xmlindex_ix 
PARAMETERS('PARAM myparam')" db-types="Oracle" />
+    <sql-case id="alter_index_modify_default_attributes_tablespace" 
value="ALTER INDEX q1_sales_by_region_locix MODIFY DEFAULT ATTRIBUTES 
TABLESPACE tbs_4" db-types="Oracle" />
     <sql-case id="alter_index_set_tablespace" value="ALTER INDEX distributors 
SET TABLESPACE fasttablespace" db-types="PostgreSQL,openGauss" />
     <sql-case id="alter_index_alter_column" value="ALTER INDEX t_order_idx 
ALTER COLUMN 3 SET STATISTICS 1000" db-types="PostgreSQL,openGauss" />
     <sql-case id="alter_index_with_schema" value="ALTER INDEX 
public.t_order_idx ALTER COLUMN 3 SET STATISTICS 1000" 
db-types="PostgreSQL,openGauss" />

Reply via email to