You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2024/01/24 11:31:00 UTC
(shardingsphere) branch master updated: Change oracle create table clusterClause syntax (#29831)
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 121fc496189 Change oracle create table clusterClause syntax (#29831)
121fc496189 is described below
commit 121fc4961899e2fafe89ea6c7b137a08311cc741
Author: niu niu <zi...@aliyun.com>
AuthorDate: Wed Jan 24 19:30:52 2024 +0800
Change oracle create table clusterClause syntax (#29831)
---
.../oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 | 12 +++---------
test/it/parser/src/main/resources/case/ddl/create-table.xml | 12 ++++++++++++
.../src/main/resources/sql/supported/ddl/create-table.xml | 3 +++
3 files changed, 18 insertions(+), 9 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 9d37130d403..8901c00c8b5 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
@@ -894,7 +894,8 @@ commitClause
;
physicalProperties
- : (deferredSegmentCreation? segmentAttributesClause tableCompression? inmemoryTableClause? ilmClause? | deferredSegmentCreation? (organizationClause | externalPartitionClause) | clusterClause)
+ : (deferredSegmentCreation? segmentAttributesClause tableCompression? inmemoryTableClause? ilmClause?
+ | deferredSegmentCreation? (organizationClause | externalPartitionClause) | CLUSTER clusterName columns)
;
deferredSegmentCreation
@@ -1328,14 +1329,7 @@ listPartitionsetClause
;
attributeClusteringClause
- : CLUSTERING clusterClause
- | CLUSTERING clusteringJoin clusterClause
- | CLUSTERING clusterClause clusteringWhen
- | CLUSTERING clusteringJoin clusterClause clusteringWhen
- | CLUSTERING clusterClause zonemapClause
- | CLUSTERING clusteringJoin clusterClause zonemapClause
- | CLUSTERING clusterClause clusteringWhen zonemapClause
- | CLUSTERING clusteringJoin clusterClause clusteringWhen zonemapClause
+ : CLUSTERING clusteringJoin? clusterClause clusteringWhen? zonemapClause?
;
clusteringJoin
diff --git a/test/it/parser/src/main/resources/case/ddl/create-table.xml b/test/it/parser/src/main/resources/case/ddl/create-table.xml
index ec12d757a20..51bbeca5260 100644
--- a/test/it/parser/src/main/resources/case/ddl/create-table.xml
+++ b/test/it/parser/src/main/resources/case/ddl/create-table.xml
@@ -2337,4 +2337,16 @@
<primary-key-column name="BS_COL01" start-delimiter=""" end-delimiter=""" start-index="102" stop-index="111" />
</constraint-definition>
</create-table>
+
+ <create-table sql-case-id="create_table_cluster_with_select1">
+ <table name="dept_10" start-index="13" stop-index="19" />
+ </create-table>
+
+ <create-table sql-case-id="create_table_cluster_with_select2">
+ <table name="dept_20" start-index="13" stop-index="19" />
+ </create-table>
+
+ <create-table sql-case-id="create_table_cluster_with_select3">
+ <table name="customers_demo" start-index="13" stop-index="26" />
+ </create-table>
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml b/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml
index 2bd6a923bd1..0ceecfae975 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/create-table.xml
@@ -315,4 +315,7 @@
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "TPCCTAB"" db-types="Oracle" />
+ <sql-case id="create_table_cluster_with_select1" value="CREATE TABLE dept_10 CLUSTER personnel (department_id) AS SELECT * FROM employees WHERE department_id = 10" db-types="Oracle" />
+ <sql-case id="create_table_cluster_with_select2" value="CREATE TABLE dept_20 CLUSTER personnel (department_id) AS SELECT * FROM employees WHERE department_id = 20" db-types="Oracle" />
+ <sql-case id="create_table_cluster_with_select3" value="CREATE TABLE customers_demo AS SELECT * FROM customers" db-types="Oracle" />
</sql-cases>