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]

Reply via email to