diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java index dad69e8c6e21b3..94b670dbdec6ea 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/AuditLogHelper.java @@ -339,7 +339,7 @@ private static void logAuditLogImpl(ConnectContext ctx, String origStmt, Stateme auditEventBuilder.setStmt(handleStmt(encryptSql, parsedStmt)); if (!Env.getCurrentEnv().isMaster()) { - if (ctx.executor != null && ctx.executor.isForwardToMaster()) { + if (ctx.executor != null && ctx.executor.hasForwardedToMaster()) { auditEventBuilder.setState(ctx.executor.getProxyStatus()); int proxyStatusCode = ctx.executor.getProxyStatusCode(); if (proxyStatusCode != 0) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java index 7101c43e459dd0..003872fccf88e0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectProcessor.java @@ -341,7 +341,7 @@ public void executeQuery(String originStmt) throws Exception { true); // execute failed, skip remaining stmts if (ctx.getState().getStateType() == MysqlStateType.ERR || (!Env.getCurrentEnv().isMaster() - && ctx.executor != null && ctx.executor.isForwardToMaster() + && ctx.executor != null && ctx.executor.hasForwardedToMaster() && ctx.executor.getProxyStatusCode() != 0)) { break; } @@ -589,7 +589,7 @@ public void finalizeCommand() throws IOException { LOG.debug("Finalize command for query {}", DebugUtil.printId(ctx.queryId)); Preconditions.checkState(connectType.equals(ConnectType.MYSQL)); ByteBuffer packet; - if (executor != null && executor.isForwardToMaster() + if (executor != null && executor.hasForwardedToMaster() && ctx.getState().getStateType() != QueryState.MysqlStateType.ERR) { ShowResultSet resultSet = executor.getShowResultSet(); if (resultSet == null) { @@ -801,4 +801,3 @@ protected void handleExecute(PrepareCommand prepareCommand, long stmtId, Prepare throw new NotSupportedException("Just MysqlConnectProcessor support execute"); } } - diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java index 1a7d4df0c49b0e..bc5399c8b18f6a 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/StmtExecutor.java @@ -401,6 +401,16 @@ public ByteBuffer getOutputPacket() { } } + /** + * Whether this executor has actually forwarded to master and created a {@link MasterOpExecutor}. + * + *

Do not confuse with {@link #isForwardToMaster()} which is a decision (may be re-evaluated) + * based on current statement shape / redirect status. + */ + public boolean hasForwardedToMaster() { + return masterOpExecutor != null; + } + public ShowResultSet getProxyShowResultSet() { return proxyShowResultSet; }