You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/02/01 02:43:14 UTC
[shardingsphere] branch master updated: Add SQL definition for
`COMMIT` of Oracle database (#9178)
This is an automated email from the ASF dual-hosted git repository.
panjuan 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 0ff54bc Add SQL definition for `COMMIT` of Oracle database (#9178)
0ff54bc is described below
commit 0ff54bcf474e7524d6fd765b8c4befae601665df
Author: Thanoshan MV <48...@users.noreply.github.com>
AuthorDate: Mon Feb 1 08:12:41 2021 +0530
Add SQL definition for `COMMIT` of Oracle database (#9178)
* add SQL definition for COMMIT
* remove unnecessary parenthesis
* remove empty lines
* change COMMIT definition
---
.../src/main/antlr4/imports/oracle/OracleKeyword.g4 | 12 ++++++++++++
.../src/main/antlr4/imports/oracle/TCLStatement.g4 | 18 +++++++++++++++---
.../src/main/resources/case/tcl/commit.xml | 4 ++++
.../src/main/resources/sql/supported/tcl/tcl.xml | 4 ++++
4 files changed, 35 insertions(+), 3 deletions(-)
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
index 711cc42..9f44d33 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
@@ -826,3 +826,15 @@ CONTAINER_MAP
CONTAINERS_DEFAULT
: C O N T A I N E R S UL_ D E F A U L T
;
+
+WAIT
+ : W A I T
+ ;
+
+NOWAIT
+ : N O W A I T
+ ;
+
+BATCH
+ : B A T C H
+ ;
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/TCLStatement.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/TCLStatement.g4
index 9301e7f..7bb3ce4 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/TCLStatement.g4
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/TCLStatement.g4
@@ -24,15 +24,27 @@ setTransaction
;
commit
- : COMMIT
+ : COMMIT WORK? ((commentClause? writeClause?) | forceClause)?
+ ;
+
+commentClause
+ : COMMENT stringLiterals
+ ;
+
+writeClause
+ : WRITE (WAIT | NOWAIT)? (IMMEDIATE | BATCH)?
+ ;
+
+forceClause
+ : FORCE stringLiterals (COMMA_ numberLiterals)?
;
rollback
- : ROLLBACK (WORK)? savepointClause
+ : ROLLBACK WORK? savepointClause
;
savepointClause
- : (TO (SAVEPOINT)? savepointName | FORCE stringLiterals)?
+ : (TO SAVEPOINT? savepointName | FORCE stringLiterals)?
;
savepoint
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/tcl/commit.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/tcl/commit.xml
index 94a93c9..8a6c517 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/tcl/commit.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/tcl/commit.xml
@@ -23,4 +23,8 @@
<commit sql-case-id="commitForce" />
<commit sql-case-id="commitPrepare" />
<commit sql-case-id="commit_in_pg" />
+ <commit sql-case-id="commitWorkWithComment" />
+ <commit sql-case-id="commitWork" />
+ <commit sql-case-id="commitWriteBatch" />
+ <commit sql-case-id="commitWorkForce" />
</sql-parser-test-cases>
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/sql/supported/tcl/tcl.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/sql/supported/tcl/tcl.xml
index bd7fa4a..223c1d2 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/sql/supported/tcl/tcl.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/sql/supported/tcl/tcl.xml
@@ -21,7 +21,11 @@
<sql-case id="commit" value="COMMIT" db-types="MySQL,Oracle,SQLServer,PostgreSQL" />
<sql-case id="commitWithName" value="COMMIT TRANSACTION transaction1" db-types="SQLServer" />
<sql-case id="commitWithComment" value="COMMIT COMMENT 'comment1'" db-types="Oracle" />
+ <sql-case id="commitWorkWithComment" value="COMMIT WORK COMMENT 'comment1'" db-types="Oracle" />
+ <sql-case id="commitWork" value="COMMIT WORK" db-types="Oracle" />
+ <sql-case id="commitWriteBatch" value="COMMIT WRITE BATCH" db-types="Oracle" />
<sql-case id="commitForce" value="COMMIT FORCE 'transaction1'" db-types="Oracle" />
+ <sql-case id="commitWorkForce" value="COMMIT WORK FORCE '22.14.67'" db-types="Oracle" />
<sql-case id="rollback" value="ROLLBACK" db-types="MySQL,Oracle,PostgreSQL,SQLServer" />
<sql-case id="rollbackWithName" value="ROLLBACK TRANSACTION transaction1" db-types="SQLServer" />
<sql-case id="rollbackForce" value="ROLLBACK FORCE 'transaction1'" db-types="Oracle" />