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 <[email protected]>
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" />

Reply via email to