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" />