diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ddl/BaseDDLHandler.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ddl/BaseDDLHandler.java index 80a695e2c..ea50facc7 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ddl/BaseDDLHandler.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ddl/BaseDDLHandler.java @@ -101,7 +101,7 @@ public abstract class BaseDDLHandler implements ResponseHandler, ExecutableHandl } else { node.setRunOnSlave(rrs.getRunOnSlave()); ShardingNode dn = DbleServer.getInstance().getConfig().getShardingNodes().get(node.getName()); - dn.getConnection(dn.getDatabase(), session.getShardingService().isTxStart(), sessionAutocommit, node, this, node); + dn.getConnection(dn.getDatabase(), isMustWrite(), sessionAutocommit, node, this, node); } } } finally { @@ -109,6 +109,10 @@ public abstract class BaseDDLHandler implements ResponseHandler, ExecutableHandl } } + protected boolean isMustWrite() { + return session.getShardingService().isTxStart(); + } + protected void executeInExistsConnection(BackendConnection conn, RouteResultsetNode node) { TraceManager.TraceObject traceObject = TraceManager.serviceTrace(session.getShardingService(), "execute-in-exists-connection"); try { diff --git a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ddl/MultiNodeDdlPrepareHandler.java b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ddl/MultiNodeDdlPrepareHandler.java index 626e0107d..4553637b4 100644 --- a/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ddl/MultiNodeDdlPrepareHandler.java +++ b/src/main/java/com/actiontech/dble/backend/mysql/nio/handler/ddl/MultiNodeDdlPrepareHandler.java @@ -31,6 +31,11 @@ public class MultiNodeDdlPrepareHandler extends BaseDDLHandler { this.traceMessage = "execute-for-ddl-prepare"; } + @Override + protected boolean isMustWrite() { + return true; + } + @Override protected void innerExecute(BackendConnection conn, RouteResultsetNode node) { if (clearIfSessionClosed()) return;