This is an automated email from the ASF dual-hosted git repository.

morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new ab1ade0aeae [bugfix](hive)Fix split assignment leak. releated to issue 
(#40683). (#44845)
ab1ade0aeae is described below

commit ab1ade0aeae420b9b66f2aa64b635142cacd8150
Author: sparrow <38098988+biohazard4...@users.noreply.github.com>
AuthorDate: Sat Dec 7 09:05:49 2024 +0800

    [bugfix](hive)Fix split assignment leak. releated to issue (#40683). 
(#44845)
    
    Also fix stop split too early in select join statement when
    enable_profile is true. Releated to issue (#40683).
    
    Case appearing condition: use batchmode and set enable_profile=true,hive
    table has enough split (like more than 10)
    
    ### What problem does this PR solve?
    Under enable_profile is true, in query with join like "select
    dt.d_year,dt.d_moy from date_dim dt ,store_sales where dt.d_date_sk =
    store_sales.ss_sold_date_sk group by dt.d_year, dt.d_moy order by
    dt.d_year, dt.d_moy limit 100",
    the old fix in commit 83797e36aeb stops SplitAssignment in
    FileScanNode.getNodeExplainString, that would be called in normal query
    (in StmtExecutor.updateProfile),then BE would get empty split and make
    wrong result。
    So i changed the place where SplitAssignment need stop in explain only
    statement.
---
 .../src/main/java/org/apache/doris/datasource/FileScanNode.java       | 1 -
 .../org/apache/doris/nereids/trees/plans/commands/ExplainCommand.java | 4 ++++
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/datasource/FileScanNode.java 
b/fe/fe-core/src/main/java/org/apache/doris/datasource/FileScanNode.java
index 9845c0070fc..29fdb2b09ac 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/FileScanNode.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/FileScanNode.java
@@ -126,7 +126,6 @@ public abstract class FileScanNode extends ExternalScanNode 
{
         output.append(prefix);
         if (isBatchMode()) {
             output.append("(approximate)");
-            splitAssignment.stop();
         }
         output.append("inputSplitNum=").append(selectedSplitNum).append(", 
totalFileSize=")
             .append(totalFileSize).append(", 
scanRanges=").append(scanRangeLocations.size()).append("\n");
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ExplainCommand.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ExplainCommand.java
index d4fce906693..e3f2f1d732a 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ExplainCommand.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/ExplainCommand.java
@@ -27,6 +27,7 @@ import org.apache.doris.nereids.trees.plans.Explainable;
 import org.apache.doris.nereids.trees.plans.PlanType;
 import org.apache.doris.nereids.trees.plans.logical.LogicalPlan;
 import org.apache.doris.nereids.trees.plans.visitor.PlanVisitor;
+import org.apache.doris.planner.ScanNode;
 import org.apache.doris.qe.ConnectContext;
 import org.apache.doris.qe.StmtExecutor;
 
@@ -95,6 +96,9 @@ public class ExplainCommand extends Command implements 
NoForward {
         } else {
             
executor.handleExplainStmt(planner.getExplainString(explainOptions), true);
         }
+        for (ScanNode scanNode : planner.getScanNodes()) {
+            scanNode.stop();
+        }
     }
 
     @Override


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to