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>