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 2c7de271961 Fix openGauss start transaction statement (#37813)
2c7de271961 is described below

commit 2c7de2719619e6347438f94b39c8ffc86a000611
Author: ZhangCheng <[email protected]>
AuthorDate: Fri Jan 23 08:40:48 2026 +0800

    Fix openGauss start transaction statement (#37813)
---
 .../backend/handler/tcl/local/LocalTCLProxyBackendHandlerFactory.java  | 3 ++-
 .../handler/tcl/local/LocalTCLProxyBackendHandlerFactoryTest.java      | 2 ++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/LocalTCLProxyBackendHandlerFactory.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/LocalTCLProxyBackendHandlerFactory.java
index e1b72f3903d..d847730d971 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/LocalTCLProxyBackendHandlerFactory.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/LocalTCLProxyBackendHandlerFactory.java
@@ -39,6 +39,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.Ro
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.SavepointStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.SetAutoCommitStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.SetTransactionStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.StartTransactionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.TCLStatement;
 
 /**
@@ -56,7 +57,7 @@ public final class LocalTCLProxyBackendHandlerFactory {
      */
     public static ProxyBackendHandler newInstance(final QueryContext 
queryContext, final ConnectionSession connectionSession) {
         TCLStatement sqlStatement = (TCLStatement) 
queryContext.getSqlStatementContext().getSqlStatement();
-        if (sqlStatement instanceof BeginTransactionStatement) {
+        if (sqlStatement instanceof BeginTransactionStatement || sqlStatement 
instanceof StartTransactionStatement) {
             return new BeginTransactionProxyBackendHandler(sqlStatement, 
connectionSession);
         }
         if (sqlStatement instanceof SetAutoCommitStatement) {
diff --git 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/LocalTCLProxyBackendHandlerFactoryTest.java
 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/LocalTCLProxyBackendHandlerFactoryTest.java
index 41b0134587d..a8c4c452fee 100644
--- 
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/LocalTCLProxyBackendHandlerFactoryTest.java
+++ 
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/tcl/local/LocalTCLProxyBackendHandlerFactoryTest.java
@@ -48,6 +48,7 @@ import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.Ro
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.SavepointStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.SetAutoCommitStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.SetTransactionStatement;
+import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.StartTransactionStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.tcl.TCLStatement;
 import 
org.apache.shardingsphere.test.infra.framework.extension.mock.AutoMockExtension;
 import 
org.apache.shardingsphere.test.infra.framework.extension.mock.StaticMockSettings;
@@ -142,6 +143,7 @@ class LocalTCLProxyBackendHandlerFactoryTest {
     private static Stream<Arguments> assertNewInstanceArguments() {
         return Stream.of(
                 Arguments.of(new BeginTransactionStatement(DATABASE_TYPE), 
BeginTransactionProxyBackendHandler.class),
+                Arguments.of(new StartTransactionStatement(DATABASE_TYPE), 
BeginTransactionProxyBackendHandler.class),
                 Arguments.of(new SetAutoCommitStatement(DATABASE_TYPE, false), 
SetAutoCommitProxyBackendHandler.class),
                 Arguments.of(new CommitStatement(DATABASE_TYPE), 
CommitProxyBackendHandler.class),
                 Arguments.of(new RollbackStatement(DATABASE_TYPE, "sp"), 
RollbackSavepointProxyBackendHandler.class),

Reply via email to