This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
commit 7a878eb7972572e9bec80ce218e7ca4b8921d69a Author: Tiewei Fang <[email protected]> AuthorDate: Tue May 14 18:39:46 2024 +0800 [fix](Export) fix some issues of Export (#34345) 1. Forbid rollback to the old optimizer in `Export` task. Since originStmt is empty, reverting to the old optimizer when the new optimizer is enabled is meaningless. 2. Display `parallelism` in 'show export'. 3. Create an initial Map for resultAttachedInfo to avoid NullPointerException. 4. Remove the originStmt added in this PR #31020, because the `Export` statement is underlying the Outfile statement, it cannot be treated as `OriginStmt`. --- .../src/main/java/org/apache/doris/load/ExportMgr.java | 1 + .../main/java/org/apache/doris/load/ExportTaskExecutor.java | 13 ++++--------- .../doris/nereids/trees/plans/commands/ExportCommand.java | 3 --- .../src/main/java/org/apache/doris/qe/ConnectContext.java | 2 +- 4 files changed, 6 insertions(+), 13 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java b/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java index afc7ea51984..9a3e0d99481 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/ExportMgr.java @@ -384,6 +384,7 @@ public class ExportMgr { infoMap.put("tablet_num", job.getTabletsNum()); infoMap.put("max_file_size", job.getMaxFileSize()); infoMap.put("delete_existing_files", job.getDeleteExistingFiles()); + infoMap.put("parallelism", job.getParallelism()); infoMap.put("data_consistency", job.getDataConsistency()); jobInfo.add(new Gson().toJson(infoMap)); // path diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/ExportTaskExecutor.java b/fe/fe-core/src/main/java/org/apache/doris/load/ExportTaskExecutor.java index f4ee84298b2..0f2e9c36676 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/load/ExportTaskExecutor.java +++ b/fe/fe-core/src/main/java/org/apache/doris/load/ExportTaskExecutor.java @@ -33,7 +33,6 @@ import org.apache.doris.nereids.glue.LogicalPlanAdapter; import org.apache.doris.nereids.trees.plans.logical.LogicalPlan; import org.apache.doris.qe.AutoCloseConnectContext; import org.apache.doris.qe.ConnectContext; -import org.apache.doris.qe.OriginStatement; import org.apache.doris.qe.QueryState.MysqlStateType; import org.apache.doris.qe.StmtExecutor; import org.apache.doris.scheduler.exception.JobException; @@ -42,7 +41,6 @@ import org.apache.doris.thrift.TUniqueId; import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; import java.util.List; import java.util.Map; @@ -136,13 +134,7 @@ public class ExportTaskExecutor implements TransientTaskExecutor { } try (AutoCloseConnectContext r = buildConnectContext()) { - StatementBase statementBase = selectStmtLists.get(idx); - OriginStatement originStatement = new OriginStatement( - StringUtils.isEmpty(statementBase.getOrigStmt().originStmt) - ? exportJob.getOrigStmt().originStmt : statementBase.getOrigStmt().originStmt, idx); - statementBase.setOrigStmt(originStatement); - stmtExecutor = new StmtExecutor(r.connectContext, statementBase); - + stmtExecutor = new StmtExecutor(r.connectContext, selectStmtLists.get(idx)); stmtExecutor.execute(); if (r.connectContext.getState().getStateType() == MysqlStateType.ERR) { exportJob.updateExportJobState(ExportJobState.CANCELLED, taskId, null, @@ -179,6 +171,9 @@ public class ExportTaskExecutor implements TransientTaskExecutor { ConnectContext connectContext = new ConnectContext(); exportJob.getSessionVariables().setQueryTimeoutS(exportJob.getTimeoutSecond()); connectContext.setSessionVariable(exportJob.getSessionVariables()); + // The rollback to the old optimizer is prohibited + // Since originStmt is empty, reverting to the old optimizer when the new optimizer is enabled is meaningless. + connectContext.getSessionVariable().enableFallbackToOriginalPlanner = false; connectContext.setEnv(Env.getCurrentEnv()); connectContext.setDatabase(exportJob.getTableName().getDb()); connectContext.setQualifiedUser(exportJob.getQualifiedUser()); diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ExportCommand.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ExportCommand.java index 4b2121a5dc8..f89145ec45c 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ExportCommand.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ExportCommand.java @@ -249,9 +249,6 @@ public class ExportCommand extends Command implements ForwardWithSync { exportJob.setTableName(tblName); exportJob.setExportTable(table); exportJob.setTableId(table.getId()); - if (ctx.getExecutor() != null) { - exportJob.setOrigStmt(ctx.getExecutor().getOriginStmt()); - } // set partitions exportJob.setPartitionNames(this.partitionsNames); // set where expression diff --git a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java index dabdf6b3346..cea86554121 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java +++ b/fe/fe-core/src/main/java/org/apache/doris/qe/ConnectContext.java @@ -216,7 +216,7 @@ public class ConnectContext { private StatsErrorEstimator statsErrorEstimator; - private Map<String, String> resultAttachedInfo; + private Map<String, String> resultAttachedInfo = Maps.newHashMap(); private String workloadGroupName = ""; private Map<Long, Backend> insertGroupCommitTableToBeMap = new HashMap<>(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
