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>