This is an automated email from the ASF dual-hosted git repository.
kxiao pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 6f62cb61b91 [fix](Nereids) fix plan shape of query64 unstable
(#26012) (#26775)
6f62cb61b91 is described below
commit 6f62cb61b91ee5ac6fe397354890eea576d4e2e1
Author: 谢健 <[email protected]>
AuthorDate: Fri Nov 10 22:16:32 2023 +0800
[fix](Nereids) fix plan shape of query64 unstable (#26012) (#26775)
don't remove the physical plan after optimizing the plan in dphyper.
---
.../doris/nereids/jobs/executor/Optimizer.java | 2 --
.../java/org/apache/doris/nereids/memo/Memo.java | 26 ----------------------
2 files changed, 28 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Optimizer.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Optimizer.java
index 5f1ace6ea7e..86a64d929b8 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Optimizer.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/executor/Optimizer.java
@@ -80,8 +80,6 @@ public class Optimizer {
// Due to EnsureProjectOnTopJoin, root group can't be Join Group, so
DPHyp doesn't change the root group
cascadesContext.pushJob(new JoinOrderJob(root,
cascadesContext.getCurrentJobContext()));
cascadesContext.getJobScheduler().executeJobPool(cascadesContext);
- // after DPHyp just keep logical expression
- cascadesContext.getMemo().removePhysicalExpression();
cascadesContext.getStatementContext().setOtherJoinReorder(true);
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java
index 4204f33ca15..5ec774941dd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/memo/Memo.java
@@ -47,7 +47,6 @@ import org.apache.logging.log4j.Logger;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -111,31 +110,6 @@ public class Memo {
return groupExpressions.size();
}
- /** just keep LogicalExpression in Memo. */
- public void removePhysicalExpression() {
- groupExpressions.entrySet().removeIf(entry ->
entry.getValue().getPlan() instanceof PhysicalPlan);
-
- Iterator<Map.Entry<GroupId, Group>> iterator =
groups.entrySet().iterator();
- while (iterator.hasNext()) {
- Map.Entry<GroupId, Group> entry = iterator.next();
- Group group = entry.getValue();
-
- group.clearPhysicalExpressions();
- group.clearLowestCostPlans();
- group.removeParentPhysicalExpressions();
- group.setExplored(false);
-
- if (group.getLogicalExpressions().isEmpty() &&
group.getPhysicalExpressions().isEmpty()) {
- iterator.remove();
- }
- }
-
- // logical groupExpression reset ruleMask
- groupExpressions.values().stream()
- .filter(groupExpression -> groupExpression.getPlan()
instanceof LogicalPlan)
- .forEach(GroupExpression::clearApplied);
- }
-
private Plan skipProject(Plan plan, Group targetGroup) {
// Some top project can't be eliminated
if (plan instanceof LogicalProject && ((LogicalProject<?>)
plan).canEliminate()) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]