inner 1970 - handle multi-statement error when sql contains ddl (#3459)

* inner 1970 - handle multi-statement error when sql contains ddl

* inner 1970 - handle multi node

* inner 1970 - fix case that ddl fails to execute
This commit is contained in:
Collapsar
2022-11-03 17:55:46 +08:00
committed by GitHub
parent 3619497345
commit b3d389d4ca
2 changed files with 1 additions and 6 deletions

View File

@@ -198,10 +198,9 @@ public class MultiNodeDDLExecuteHandler extends MultiNodeQueryHandler {
ok.setMessage(null);
ok.setAffectedRows(0);
ok.setServerStatus(source.isAutocommit() ? 2 : 1);
boolean multiStatementFlag = session.multiStatementPacket(ok, packetId);
session.multiStatementPacket(ok, packetId);
doSqlStat();
handleEndPacket(ok.toBytes(), true);
session.multiStatementNextSql(multiStatementFlag);
}
}
} finally {

View File

@@ -96,11 +96,9 @@ public class SingleNodeDDLHandler extends SingleNodeHandler {
session.releaseConnectionIfSafe(conn, false);
session.setResponseTime(true);
session.multiStatementPacket(ok, packetId);
boolean multiStatementFlag = session.getIsMultiStatement().get();
if (writeToClient.compareAndSet(false, true)) {
handleEndPacket(ok.toBytes(), true);
}
session.multiStatementNextSql(multiStatementFlag);
}
}
}
@@ -117,12 +115,10 @@ public class SingleNodeDDLHandler extends SingleNodeHandler {
session.releaseConnectionIfSafe(conn, false);
session.setResponseTime(false);
session.multiStatementPacket(errPacket, packetId);
boolean multiStatementFlag = session.getIsMultiStatement().get();
doSqlStat();
if (writeToClient.compareAndSet(false, true)) {
handleEndPacket(errPacket.toBytes(), false);
}
session.multiStatementNextSql(multiStatementFlag);
}
@Override