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 c4741c5ab46 Fix parser alter materialized view , alter table  and 
alter type  syntax error (#30381)
c4741c5ab46 is described below

commit c4741c5ab463f8cfc2a8f938ff047b58f92cdd68
Author: yydeng626 <[email protected]>
AuthorDate: Mon Mar 4 15:50:05 2024 +0800

    Fix parser alter materialized view , alter table  and alter type  syntax 
error (#30381)
    
    * add oracle alter user syntax parser
    
    * add oracle alter user syntax parser
    
    * Fix parser alter materialized view syntax error
    Fix parser alter table syntax  error
    Fix parser alter type syntax  error
---
 .../oracle/src/main/antlr4/imports/oracle/DDLStatement.g4        | 9 ++++-----
 .../sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4 | 8 ++++++++
 .../test/it/sql/parser/internal/InternalSQLParserIT.java         | 4 +---
 .../src/main/resources/sql/supported/ddl/alter-database.xml      | 2 +-
 .../parser/src/main/resources/sql/supported/ddl/alter-type.xml   | 8 ++++----
 5 files changed, 18 insertions(+), 13 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 25ad417c75b..ab58b165672 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
@@ -699,7 +699,7 @@ constraintClauses
     ;
 
 addConstraintSpecification
-    : ADD (LP_? outOfLineConstraint (COMMA_ outOfLineConstraint)* RP_? | 
outOfLineRefConstraint)
+    : ADD (LP_ outOfLineConstraint (COMMA_ outOfLineConstraint)* RP_ | 
outOfLineConstraint* | outOfLineRefConstraint)
     ;
 
 modifyConstraintClause
@@ -943,6 +943,7 @@ tableCompression
     : COMPRESS
     | ROW STORE COMPRESS (BASIC | ADVANCED)?
     | COLUMN STORE COMPRESS (FOR (QUERY | ARCHIVE) (LOW | HIGH)?)? (NO? ROW 
LEVEL LOCKING)?
+    | COMPRESS FOR OLTP
     | NOCOMPRESS
     ;
 
@@ -2994,7 +2995,7 @@ resolveClause
 alterAuditPolicy
     : ALTER AUDIT POLICY policyName
       ((ADD | DROP) subAuditClause)?
-      (CONDITION (DROP | SQ_ condition SQ_ EVALUATE PER (STATEMENT | SESSION | 
INSTANCE)))?
+      (CONDITION (DROP | STRING_ EVALUATE PER (STATEMENT | SESSION | 
INSTANCE)))?
     ;
 
 subAuditClause
@@ -3640,9 +3641,7 @@ scopedTableRefConstraint
     ;
 
 alterMvRefresh
-    : REFRESH (FAST
-    | COMPLETE
-    | FORCE
+    : REFRESH ( ((FAST | COMPLETE | FORCE) (START WITH dateValue)? (NEXT 
dateValue)?)
     | ON DEMAND
     | ON COMMIT
     | START WITH dateValue
diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
index fa109451ef5..1d6593a7aea 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Keyword.g4
@@ -919,3 +919,11 @@ DIGEST
 CONTAINER_DATA
     : C O N T A I N E R  UL_ D A T A
     ;
+
+CONDITION
+    : C O N D I T I O N
+    ;
+
+EVALUATE
+    : E V A L U A T E
+    ;
diff --git 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
index 56a57907f4f..83142aeb6c6 100644
--- 
a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
+++ 
b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalSQLParserIT.java
@@ -52,9 +52,7 @@ public abstract class InternalSQLParserIT {
     
     // TODO fix these sql parser cases after add eof in OracleStatement.g4
     // CHECKSTYLE:OFF
-    private static final Collection<String> IGNORE_TEST_CASES = new 
HashSet<>(Arrays.asList("alter_materialized_view_refresh_complete_refresh",
-            "alter_audit_policy_modify", "alter_database_open_readonly", 
"alter_table_add_primary_foreign_key", "alter_table_move_compress_for_oltp",
-            "alter_type_add_static_procedure", 
"alter_type_add_static_procedure_is", "alter_type_drop_static_procedure", 
"alter_type_drop_static_procedure_is",
+    private static final Collection<String> IGNORE_TEST_CASES = new 
HashSet<>(Arrays.asList(
             "create_function_call_spec_java", 
"create_cluster_number_size_hashkeys", "create_cluster_set_size", 
"create_cluster_size_initial_next", "create_external_role",
             "create_external_user", "create_control_file", 
"create_global_role", "create_global_user", "create_java", 
"create_materialized_view_log_with_including_new",
             "create_materialized_view_log_with_pctfree_storage_purge_repeat", 
"create_materialized_view_log_with_row_id_sequence_including_new", 
"create_materialized_view_log_with_tablespace",
diff --git 
a/test/it/parser/src/main/resources/sql/supported/ddl/alter-database.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-database.xml
index e98fa86462d..7952439961a 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-database.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-database.xml
@@ -76,7 +76,7 @@
     <sql-case id="alter_database_add_logfile_group" value="ALTER DATABASE ADD 
LOGFILE GROUP 3 ('diska:log3.log', 'diskb:log3.log') SIZE 50K" 
db-types="Oracle" />
     <sql-case id="alter_database_drop_logfile_member" value="ALTER DATABASE 
DROP LOGFILE MEMBER 'diskb:log3.log'" db-types="Oracle" />
     <sql-case id="alter_database_mount" value="ALTER DATABASE db1 MOUNT" 
db-types="Oracle" />
-    <sql-case id="alter_database_open_readonly" value="ALTER DATABASE db1 OPEN 
READONLY" db-types="Oracle" />
+    <sql-case id="alter_database_open_readonly" value="ALTER DATABASE db1 OPEN 
READ ONLY" db-types="Oracle" />
     <sql-case id="alter_database_recovery1" value="ALTER DATABASE db1 BEGIN 
BACKUP" db-types="Oracle" />
     <sql-case id="alter_database_recovery2" value="ALTER DATABASE db1 END 
BACKUP" db-types="Oracle" />
     <sql-case id="alter_database_rename" value="ALTER DATABASE db1 RENAME FILE 
'a.dbf' to 'b.dbf'" db-types="Oracle" />
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/alter-type.xml 
b/test/it/parser/src/main/resources/sql/supported/ddl/alter-type.xml
index 7b40f967020..578eccaa040 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/alter-type.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/alter-type.xml
@@ -110,19 +110,19 @@
     <sql-case id="alter_type_add_static_function" value="ALTER TYPE type_name 
ADD
     STATIC FUNCTION p(b1 BOOL) RETURN NUMBER" db-types="Oracle" />
     <sql-case id="alter_type_add_static_procedure" value="ALTER TYPE type_name 
ADD
-    STATIC PROCEDURE p(b1 BOOL))" db-types="Oracle" />
+    STATIC PROCEDURE p(b1 BOOL)" db-types="Oracle" />
     <sql-case id="alter_type_add_static_function_as" value="ALTER TYPE 
type_name ADD
     STATIC FUNCTION p(b1 BOOL) RETURN NUMBER AS LANGUAGE JAVA NAME 
'resultName'" db-types="Oracle" />
     <sql-case id="alter_type_add_static_procedure_is" value="ALTER TYPE 
type_name ADD
-    STATIC PROCEDURE p(b1 BOOL)) IS LANGUAGE JAVA NAME 'resultName'" 
db-types="Oracle" />
+    STATIC PROCEDURE p(b1 BOOL) IS LANGUAGE JAVA NAME 'resultName'" 
db-types="Oracle" />
     <sql-case id="alter_type_drop_static_function" value="ALTER TYPE type_name 
DROP
     STATIC FUNCTION p(b1 BOOL) RETURN NUMBER" db-types="Oracle" />
     <sql-case id="alter_type_drop_static_procedure" value="ALTER TYPE 
type_name DROP
-    STATIC PROCEDURE p(b1 BOOL))" db-types="Oracle" />
+    STATIC PROCEDURE p(b1 BOOL)" db-types="Oracle" />
     <sql-case id="alter_type_drop_static_function_as" value="ALTER TYPE 
type_name DROP
     STATIC FUNCTION p(b1 BOOL) RETURN NUMBER AS LANGUAGE JAVA NAME 
'resultName'" db-types="Oracle" />
     <sql-case id="alter_type_drop_static_procedure_is" value="ALTER TYPE 
type_name DROP
-    STATIC PROCEDURE p(b1 BOOL)) IS LANGUAGE JAVA NAME 'resultName'" 
db-types="Oracle" />
+    STATIC PROCEDURE p(b1 BOOL) IS LANGUAGE JAVA NAME 'resultName'" 
db-types="Oracle" />
     <sql-case id="alter_type_add_single_attribute" value="ALTER TYPE type_name 
ADD ATTRIBUTE c1 NUMBER" db-types="Oracle" />
     <sql-case id="alter_type_add_multi_attribute" value="ALTER TYPE type_name 
ADD ATTRIBUTE (c1 NUMBER, b1 BOOL)" db-types="Oracle" />
     <sql-case id="alter_type_modify_single_attribute" value="ALTER TYPE 
type_name MODIFY ATTRIBUTE c1 NUMBER" db-types="Oracle" />

Reply via email to