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 a1a3ed15ca4 Support Oracle noAuditTraditional SQL parse (#29145)
a1a3ed15ca4 is described below
commit a1a3ed15ca4537ea1ad3712fcfee7f02d7914e6d
Author: +7 <[email protected]>
AuthorDate: Fri Nov 24 07:43:14 2023 +0800
Support Oracle noAuditTraditional SQL parse (#29145)
---
.../oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 | 10 +++++++++-
test/it/parser/src/main/resources/case/ddl/no-audit.xml | 4 ++++
.../parser/src/main/resources/sql/supported/ddl/no-audit.xml | 4 ++++
3 files changed, 17 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 02cad8304b2..2dd58acd942 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
@@ -2304,7 +2304,7 @@ auditUnified
: AUDIT (auditPolicyClause | contextClause)
;
-noAudit
+noAuditUnified
: NOAUDIT (noAuditPolicyClause | contextClause)
;
@@ -4138,3 +4138,11 @@ createProfile
: CREATE MANDATORY? PROFILE profileName LIMIT (resourceParameters |
passwordParameters)+ (CONTAINER EQ_ (CURRENT | ALL))?
;
+noAudit
+ : noAuditTraditional | noAuditUnified
+ ;
+
+noAuditTraditional
+ : NOAUDIT (auditOperationClause auditingByClause? |
auditSchemaObjectClause | NETWORK | DIRECT_PATH LOAD auditingByClause?)
+ (WHENEVER NOT? SUCCESSFUL)? (CONTAINER EQ_ (CURRENT | ALL))?
+ ;
diff --git a/test/it/parser/src/main/resources/case/ddl/no-audit.xml
b/test/it/parser/src/main/resources/case/ddl/no-audit.xml
index 6322c0042a6..7671949d91d 100644
--- a/test/it/parser/src/main/resources/case/ddl/no-audit.xml
+++ b/test/it/parser/src/main/resources/case/ddl/no-audit.xml
@@ -21,4 +21,8 @@
<no-audit sql-case-id="no_audit_policy_by_users" />
<no-audit sql-case-id="no_audit_policy_by_users_with_roles" />
<no-audit sql-case-id="no_audit_context" />
+ <no-audit sql-case-id="no_audit_traditional_all_privileges" />
+ <no-audit sql-case-id="no_audit_traditional_all_statements" />
+ <no-audit sql-case-id="no_audit_traditional_delete" />
+ <no-audit sql-case-id="no_audit_traditional_select" />
</sql-parser-test-cases>
diff --git a/test/it/parser/src/main/resources/sql/supported/ddl/no-audit.xml
b/test/it/parser/src/main/resources/sql/supported/ddl/no-audit.xml
index 218049f246e..f517a072361 100644
--- a/test/it/parser/src/main/resources/sql/supported/ddl/no-audit.xml
+++ b/test/it/parser/src/main/resources/sql/supported/ddl/no-audit.xml
@@ -21,4 +21,8 @@
<sql-case id="no_audit_policy_by_users" value="NOAUDIT POLICY dml_pol BY
hr, sh WHENEVER NOT SUCCESSFUL" db-types="Oracle" />
<sql-case id="no_audit_policy_by_users_with_roles" value="NOAUDIT POLICY
read_dir_pol BY USERS WITH GRANTED ROLES hr_role" db-types="Oracle" />
<sql-case id="no_audit_context" value="NOAUDIT CONTEXT NAMESPACE userenv
ATTRIBUTES current_user, db_name BY hr;" db-types="Oracle" />
+ <sql-case id="no_audit_traditional_all_privileges" value="NOAUDIT ALL
PRIVILEGES;" db-types="Oracle" />
+ <sql-case id="no_audit_traditional_all_statements" value="NOAUDIT ALL
STATEMENTS;" db-types="Oracle" />
+ <sql-case id="no_audit_traditional_delete" value="NOAUDIT DELETE ANY
TABLE;" db-types="Oracle" />
+ <sql-case id="no_audit_traditional_select" value="NOAUDIT SELECT ON
hr.employees WHENEVER SUCCESSFUL;" db-types="Oracle" />
</sql-cases>