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/01/19 03:25:23 UTC
[shardingsphere] branch master updated: [SQL Definition
Collation][Oracle]Collate the SQL definition of ROLLBACK (#9056)
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 643dbc0 [SQL Definition Collation][Oracle]Collate the SQL definition of ROLLBACK (#9056)
643dbc0 is described below
commit 643dbc02341a7a065ab91f6d8c739a1cf026dafc
Author: Thanoshan MV <48...@users.noreply.github.com>
AuthorDate: Tue Jan 19 08:54:43 2021 +0530
[SQL Definition Collation][Oracle]Collate the SQL definition of ROLLBACK (#9056)
* add ROLLBACK definition
* refactor: add ROLLBACK definition
* refactor: keep only one empty line
* add SQL case
---
.../src/main/antlr4/imports/oracle/BaseRule.g4 | 4 ++++
.../src/main/antlr4/imports/oracle/OracleKeyword.g4 | 4 ++++
.../src/main/antlr4/imports/oracle/TCLStatement.g4 | 10 +++++++---
.../src/main/resources/case/tcl/rollback.xml | 1 +
.../src/main/resources/sql/supported/tcl/tcl.xml | 1 +
5 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4 b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index 275057b..cd995e1 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -119,6 +119,10 @@ indexName
: identifier
;
+savepointName
+ : identifier
+ ;
+
owner
: identifier
;
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 cf755fe..bb38583 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
@@ -814,3 +814,7 @@ PARENT
IDENTIFIER
: I D E N T I F I E R
;
+
+WORK
+ : W O R K
+ ;
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 ea2897d..9301e7f 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
@@ -17,7 +17,7 @@
grammar TCLStatement;
-import Symbol, Keyword, OracleKeyword, Literals;
+import Symbol, Keyword, OracleKeyword, Literals, BaseRule;
setTransaction
: SET TRANSACTION
@@ -28,9 +28,13 @@ commit
;
rollback
- : ROLLBACK
+ : ROLLBACK (WORK)? savepointClause
+ ;
+
+savepointClause
+ : (TO (SAVEPOINT)? savepointName | FORCE stringLiterals)?
;
savepoint
- : SAVEPOINT
+ : SAVEPOINT savepointName
;
diff --git a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/tcl/rollback.xml b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/tcl/rollback.xml
index 887d0f8..b311f36 100644
--- a/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/tcl/rollback.xml
+++ b/shardingsphere-sql-parser/shardingsphere-sql-parser-test/src/main/resources/case/tcl/rollback.xml
@@ -23,4 +23,5 @@
<rollback sql-case-id="rollbackForce" />
<rollback sql-case-id="rollbackPrepare" />
<rollback sql-case-id="rollback_in_pg" />
+ <rollback sql-case-id="rollbackWorkForce" />
</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 8d3510f..bd7fa4a 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
@@ -25,6 +25,7 @@
<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" />
+ <sql-case id="rollbackWorkForce" value="ROLLBACK WORK FORCE 'string1'" db-types="Oracle" />
<sql-case id="savepoint" value="SAVEPOINT savepoint1" db-types="MySQL,PostgreSQL" />
<sql-case id="begin" value="BEGIN" db-types="MySQL,PostgreSQL" />
<sql-case id="beginTransaction" value="BEGIN TRANSACTION" db-types="SQLServer,PostgreSQL" />