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 17fa0cf  add abort support for pgsql (#12175)
17fa0cf is described below

commit 17fa0cf2ba47db56df05964e9be8a75995c41652
Author: tuichenchuxin <[email protected]>
AuthorDate: Thu Sep 2 17:08:04 2021 +0800

    add abort support for pgsql (#12175)
---
 .../apache/shardingsphere/sql/parser/autogen/PostgreSQLStatement.g4 | 1 +
 .../visitor/statement/impl/PostgreSQLTCLStatementSQLVisitor.java    | 6 ++++++
 .../sql/parser/core/database/visitor/SQLVisitorRule.java            | 4 +++-
 .../src/main/resources/case/tcl/rollback.xml                        | 1 +
 .../src/main/resources/sql/supported/tcl/rollback.xml               | 1 +
 5 files changed, 12 insertions(+), 1 deletion(-)

diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatement.g4
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatement.g4
index 7559dcb..93f9fd5 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatement.g4
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/antlr4/org/apache/shardingsphere/sql/parser/autogen/PostgreSQLStatement.g4
@@ -37,6 +37,7 @@ execute
     | end
     | commit
     | rollback
+    | abort
     | savepoint
     | releaseSavepoint
     | rollbackToSavepoint
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLTCLStatementSQLVisitor.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLTCLStatementSQLVisitor.java
index 5f438b2..9c5d6cf 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLTCLStatementSQLVisitor.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-postgresql/src/main/java/org/apache/shardingsphere/sql/parser/postgresql/visitor/statement/impl/PostgreSQLTCLStatementSQLVisitor.java
@@ -26,6 +26,7 @@ import 
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.Co
 import 
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.EndContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.ReleaseSavepointContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.RollbackContext;
+import 
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.AbortContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.RollbackToSavepointContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.SavepointContext;
 import 
org.apache.shardingsphere.sql.parser.autogen.PostgreSQLStatementParser.SetTransactionContext;
@@ -72,6 +73,11 @@ public final class PostgreSQLTCLStatementSQLVisitor extends 
PostgreSQLStatementS
     }
     
     @Override
+    public ASTNode visitAbort(final AbortContext ctx) {
+        return new PostgreSQLRollbackStatement();
+    }
+    
+    @Override
     public ASTNode visitSavepoint(final SavepointContext ctx) {
         String savepointName = ctx.colId().getText();
         PostgreSQLSavepointStatement result = new 
PostgreSQLSavepointStatement();
diff --git 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
index 28d2fca..fc0ffd4 100644
--- 
a/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
+++ 
b/shardingsphere-sql-parser/shardingsphere-sql-parser-engine/src/main/java/org/apache/shardingsphere/sql/parser/core/database/visitor/SQLVisitorRule.java
@@ -262,7 +262,9 @@ public enum SQLVisitorRule {
     
     STOP_SLAVE("StopSlave", SQLStatementType.RL),
 
-    XA("Xa", SQLStatementType.TCL);
+    XA("Xa", SQLStatementType.TCL),
+    
+    ABORT("Abort", SQLStatementType.TCL);
 
     private final String name;
     
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/tcl/rollback.xml
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/tcl/rollback.xml
index b311f36..42e2ee3 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/tcl/rollback.xml
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/case/tcl/rollback.xml
@@ -24,4 +24,5 @@
     <rollback sql-case-id="rollbackPrepare" />
     <rollback sql-case-id="rollback_in_pg" />
     <rollback sql-case-id="rollbackWorkForce" />
+    <rollback sql-case-id="abort" />
 </sql-parser-test-cases>
diff --git 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/tcl/rollback.xml
 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/tcl/rollback.xml
index 78b657b..d2ada0e 100644
--- 
a/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/tcl/rollback.xml
+++ 
b/shardingsphere-test/shardingsphere-parser-test/src/main/resources/sql/supported/tcl/rollback.xml
@@ -24,4 +24,5 @@
     <sql-case id="rollbackPrepare" value="ROLLBACK PREPARED 'transaction1'" 
db-types="PostgreSQL" />
     <sql-case id="rollback_in_pg" value="ROLLBACK TRANSACTION AND CHAIN" 
db-types="PostgreSQL" />
     <sql-case id="rollbackWorkForce" value="ROLLBACK WORK FORCE 'string1'" 
db-types="Oracle" />
+    <sql-case id="abort" value="ABORT" db-types="PostgreSQL" />
 </sql-cases>

Reply via email to