[fix](profile) task type not the same in observer and master (#39245) (#39698)

pick #39245 to branch-2.1
This commit is contained in:
camby
2024-08-22 00:31:52 +08:00
committed by GitHub
parent 5e91fc6a8f
commit b5bdc325af

View File

@ -671,6 +671,10 @@ public class StmtExecutor {
if (logicalPlan instanceof Forward) {
redirectStatus = ((Forward) logicalPlan).toRedirectStatus();
if (isForwardToMaster()) {
// before forward to master, we also need to set profileType in this node
if (logicalPlan instanceof InsertIntoTableCommand) {
profileType = ProfileType.LOAD;
}
if (context.getCommand() == MysqlCommand.COM_STMT_PREPARE) {
throw new UserException("Forward master command is not supported for prepare statement");
}
@ -856,6 +860,13 @@ public class StmtExecutor {
analyze(context.getSessionVariable().toThrift());
if (isForwardToMaster()) {
// before forward to master, we also need to set profileType in this node
if (parsedStmt instanceof InsertStmt) {
InsertStmt insertStmt = (InsertStmt) parsedStmt;
if (!insertStmt.getQueryStmt().isExplain()) {
profileType = ProfileType.LOAD;
}
}
if (context.getCommand() == MysqlCommand.COM_STMT_PREPARE) {
throw new UserException("Forward master command is not supported for prepare statement");
}