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 50faca919d3 Change partitionKeyValue rule define (#28307)
50faca919d3 is described below
commit 50faca919d36544037f471a48a112de773026580
Author: niu niu <[email protected]>
AuthorDate: Tue Aug 29 18:52:54 2023 +0800
Change partitionKeyValue rule define (#28307)
---
.../src/main/antlr4/imports/oracle/BaseRule.g4 | 2 +-
.../src/main/resources/case/ddl/alter-table.xml | 26 ++++++++++++++++++++++
.../resources/sql/supported/ddl/alter-table.xml | 4 ++++
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index 456ed5874bb..fe8241a2d8b 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -560,7 +560,7 @@ partitionSetName
;
partitionKeyValue
- : INTEGER_ | dateTimeLiterals
+ : INTEGER_ | dateTimeLiterals | toDateFunction
;
subpartitionKeyValue
diff --git a/test/it/parser/src/main/resources/case/ddl/alter-table.xml
b/test/it/parser/src/main/resources/case/ddl/alter-table.xml
index 162405bc1b4..16b25040c0f 100644
--- a/test/it/parser/src/main/resources/case/ddl/alter-table.xml
+++ b/test/it/parser/src/main/resources/case/ddl/alter-table.xml
@@ -17,6 +17,28 @@
-->
<sql-parser-test-cases>
+ <alter-table sql-case-id="alter_table_drop_partition_for_to_date_function">
+ <table name="sales" start-index="12" stop-index="16" />
+ </alter-table>
+
+ <alter-table
sql-case-id="alter_table_add_constraint_unique_disable_validate">
+ <table name="sales" start-index="12" stop-index="16" />
+ <add-constraint constraint-name="sales_uk" start-index="22"
stop-index="114">
+ <index-column name="prod_id" start-index="50" stop-index="56" />
+ <index-column name="cust_id" start-index="59" stop-index="65" />
+ <index-column name="promo_id" start-index="68" stop-index="75" />
+ <index-column name="channel_id" start-index="78" stop-index="87" />
+ <index-column name="time_id" start-index="90" stop-index="96" />
+ </add-constraint>
+ </alter-table>
+
+ <alter-table
sql-case-id="alter_table_add_constraint_foreign_key_references_rely_disable_novalidate">
+ <table name="sales" start-index="12" stop-index="16" />
+ <add-constraint constraint-name="sales_time_fk" start-index="22"
stop-index="118">
+ <referenced-table name="times" start-index="80" stop-index="84" />
+ </add-constraint>
+ </alter-table>
+
<alter-table
sql-case-id="alter_table_add_constraint_foreign_key_references_enable_novalidate">
<table name="sales" start-index="12" stop-index="16" />
<add-constraint constraint-name="sales_time_fk" start-index="22"
stop-index="112">
@@ -1608,6 +1630,10 @@
<table name="sales" start-index="12" stop-index="16" />
</alter-table>
+ <alter-table sql-case-id="alter_table_add_partition_values_less_than3">
+ <table name="sales" start-index="12" stop-index="16" />
+ </alter-table>
+
<alter-table sql-case-id="alter_table_modify_subpartition_drop_values">
<table name="quarterly_regional_sales" start-index="12"
stop-index="35" />
</alter-table>
diff --git
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
index d399d45c2ac..8d46ab01124 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-table.xml
@@ -17,6 +17,9 @@
-->
<sql-cases>
+ <sql-case id="alter_table_drop_partition_for_to_date_function"
value="ALTER TABLE sales DROP PARTITION
FOR(TO_DATE('01-SEP-2007','dd-MON-yyyy'))" db-types="Oracle" />
+ <sql-case id="alter_table_add_constraint_unique_disable_validate"
value="ALTER TABLE sales ADD CONSTRAINT sales_uk UNIQUE (prod_id, cust_id,
promo_id, channel_id, time_id) DISABLE VALIDATE" db-types="Oracle" />
+ <sql-case
id="alter_table_add_constraint_foreign_key_references_rely_disable_novalidate"
value="ALTER TABLE sales ADD CONSTRAINT sales_time_fk FOREIGN KEY (time_id)
REFERENCES times (time_id) RELY DISABLE NOVALIDATE" db-types="Oracle" />
<sql-case
id="alter_table_add_constraint_foreign_key_references_enable_novalidate"
value="ALTER TABLE sales ADD CONSTRAINT sales_time_fk FOREIGN KEY (time_id)
REFERENCES times (time_id) ENABLE NOVALIDATE" db-types="Oracle" />
<sql-case
id="alter_table_add_constraint_foreign_key_references_enable_validate"
value="ALTER TABLE sales ADD CONSTRAINT sales_time_fk FOREIGN KEY (time_id)
REFERENCES times (time_id) ENABLE VALIDATE" db-types="Oracle" />
<sql-case id="alter_table_modify_lob_shrink_space" value="ALTER TABLE
employees MODIFY LOB (perf_review) (SHRINK SPACE)" db-types="Oracle" />
@@ -211,6 +214,7 @@
<sql-case id="alter_table_modify_subpartition_add_values" value="ALTER
TABLE quarterly_regional_sales MODIFY SUBPARTITION q1_1999_southeast ADD VALUES
('KS')" db-types="Oracle" />
<sql-case id="alter_table_add_partition_values_less_than1" value="ALTER
TABLE quarterly_regional_sales ADD PARTITION q1_2000 VALUES LESS THAN
(TO_DATE('1-APR-2000','DD-MON-YYYY')) STORAGE (INITIAL 20K NEXT 20K) TABLESPACE
ts3 NOLOGGING(SUBPARTITION q1_2000_northwest VALUES ('OR', 'WA'), SUBPARTITION
q1_2000_southwest VALUES ('AZ', 'UT', 'NM'), SUBPARTITION q1_2000_northeast
VALUES ('NY', 'VM', 'NJ'), SUBPARTITION q1_2000_southeast VALUES ('FL', 'GA'),
SUBPARTITION q1_2000_northcentra [...]
<sql-case id="alter_table_add_partition_values_less_than2" value="ALTER
TABLE sales ADD PARTITION jan99 VALUES LESS THAN ('01-FEB-1999') TABLESPACE
tsx" db-types="Oracle" />
+ <sql-case id="alter_table_add_partition_values_less_than3" value="ALTER
TABLE sales ADD PARTITION sales_01_2001 VALUES LESS THAN
(TO_DATE('01-FEB-2001', 'DD-MON-YYYY'))" db-types="Oracle" />
<sql-case id="alter_table_modify_subpartition_drop_values" value="ALTER
TABLE quarterly_regional_sales MODIFY SUBPARTITION q1_1999_southeast DROP
VALUES ('KS')" db-types="Oracle" />
<sql-case id="alter_table_modify_nested_table_return_as_value"
value="ALTER TABLE print_media MODIFY NESTED TABLE ad_textdocs_ntab RETURN AS
VALUE" db-types="Oracle" />
<sql-case id="alter_table_modify_nested_owner_table_return_as_value"
value="ALTER TABLE print_media MODIFY NESTED TABLE mytable.ad_textdocs_ntab
RETURN AS VALUE" db-types="Oracle" />