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 cf7c3c9c2d9 Enhance Oracle createMaterializedView SQL parse (#30147)
cf7c3c9c2d9 is described below

commit cf7c3c9c2d9f54f9571d5c9d2f550f98e3a46588
Author: +7 <[email protected]>
AuthorDate: Sat Feb 17 15:54:25 2024 +0800

    Enhance Oracle createMaterializedView SQL parse (#30147)
---
 .../oracle/src/main/antlr4/imports/oracle/DDLStatement.g4      |  2 +-
 .../src/main/resources/case/ddl/create-materialized-view.xml   |  1 +
 .../resources/sql/supported/ddl/create-materialized-view.xml   | 10 ++++++++++
 3 files changed, 12 insertions(+), 1 deletion(-)

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 8901c00c8b5..722c379a586 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
@@ -3548,7 +3548,7 @@ createMvRefresh
     ;
 
 createMvRefreshOptions
-    : ( (FAST | COMPLETE | FORCE) | ON (DEMAND | COMMIT) | (START WITH | NEXT) 
| WITH (PRIMARY KEY | ROWID) | USING ( DEFAULT (MASTER LOCAL)? ROLLBACK SEGMENT 
| (MASTER | LOCAL)? ROLLBACK SEGMENT rb_segment=REGULAR_ID ) | USING (ENFORCED 
| TRUSTED) CONSTRAINTS)
+    : ( (FAST | COMPLETE | FORCE) | ON (DEMAND | COMMIT | STATEMENT) | ((START 
WITH | NEXT) dateValue)+ | WITH (PRIMARY KEY | ROWID) | USING ( DEFAULT (MASTER 
| LOCAL)? ROLLBACK SEGMENT | (MASTER | LOCAL)? ROLLBACK SEGMENT 
rb_segment=REGULAR_ID ) | USING (ENFORCED | TRUSTED) CONSTRAINTS)
     ;
 
 quotedString
diff --git 
a/test/it/parser/src/main/resources/case/ddl/create-materialized-view.xml 
b/test/it/parser/src/main/resources/case/ddl/create-materialized-view.xml
index 756b307a38c..d6287ba0871 100644
--- a/test/it/parser/src/main/resources/case/ddl/create-materialized-view.xml
+++ b/test/it/parser/src/main/resources/case/ddl/create-materialized-view.xml
@@ -35,4 +35,5 @@
     <create-materialized-view 
sql-case-id="create_materialized_view_with_refresh_complete" />
     <create-materialized-view 
sql-case-id="create_materialized_view_with_pctfree_storage_build_deferred" />
     <create-materialized-view 
sql-case-id="create_materialized_view_refresh_fast_on_remand_as_select" />
+    <create-materialized-view 
sql-case-id="create_materialized_view_refresh_with_date" />
 </sql-parser-test-cases>
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/create-materialized-view.xml
 
b/test/it/parser/src/main/resources/sql/supported/ddl/create-materialized-view.xml
index f54d4e51361..181ee92afa8 100644
--- 
a/test/it/parser/src/main/resources/sql/supported/ddl/create-materialized-view.xml
+++ 
b/test/it/parser/src/main/resources/sql/supported/ddl/create-materialized-view.xml
@@ -132,4 +132,14 @@
     FROM sales s, products p WHERE s.prod_id = p.prod_id
     GROUP BY p.prod_name;" db-types="Oracle" />
     <sql-case id="create_materialized_view_refresh_fast_on_remand_as_select" 
value="CREATE MATERIALIZED VIEW unionall_inside_view_mv REFRESH FAST ON DEMAND 
AS SELECT * FROM view_with_unionall" db-types="Oracle" />
+    <sql-case id="create_materialized_view_refresh_with_date" value="CREATE 
MATERIALIZED VIEW all_customers
+    PCTFREE 5 PCTUSED 60
+    TABLESPACE example
+    STORAGE (INITIAL 50K)
+    USING INDEX STORAGE (INITIAL 25K)
+    REFRESH START WITH ROUND(SYSDATE + 1) + 11/24
+    NEXT NEXT_DAY(TRUNC(SYSDATE), 'MONDAY') + 15/24
+    AS SELECT * FROM sh.customers@remote
+          UNION
+       SELECT * FROM sh.customers@local;" db-types="Oracle" />
 </sql-cases>

Reply via email to