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