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" />