This is an automated email from the ASF dual-hosted git repository.
morrysnow 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 4cb935019a2 [fix](Nereids): add whole tree rewriter when root is not
CTEAnchor (#33591) (#35269)
4cb935019a2 is described below
commit 4cb935019a26827487e81809ae9a10f887500da6
Author: 谢健 <[email protected]>
AuthorDate: Fri May 24 10:17:51 2024 +0800
[fix](Nereids): add whole tree rewriter when root is not CTEAnchor (#33591)
(#35269)
pick from master ##33591
---
.../nereids/jobs/rewrite/CostBasedRewriteJob.java | 18 +++++++-----------
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CostBasedRewriteJob.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CostBasedRewriteJob.java
index 2a7f0903b25..1ff91dfbac9 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CostBasedRewriteJob.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/jobs/rewrite/CostBasedRewriteJob.java
@@ -91,17 +91,13 @@ public class CostBasedRewriteJob implements RewriteJob {
// set subtree rewrite cache
currentCtx.getStatementContext().getRewrittenCteProducer()
.put(currentCtx.getCurrentTree().orElse(null),
(LogicalPlan) cboCtx.getRewritePlan());
- // Do Whole tree rewrite
- CascadesContext rootCtxCopy =
CascadesContext.newCurrentTreeContext(rootCtx);
-
Rewriter.getWholeTreeRewriterWithoutCostBasedJobs(rootCtxCopy).execute();
- // Do optimize
- new Optimizer(rootCtxCopy).execute();
- return rootCtxCopy.getMemo().getRoot().getLowestCostPlan(
-
rootCtxCopy.getCurrentJobContext().getRequiredProperties());
- } else {
- new Optimizer(cboCtx).execute();
- return cboCtx.getMemo().getRoot().getLowestCostPlan(
- cboCtx.getCurrentJobContext().getRequiredProperties());
}
+ // Do post tree rewrite
+ CascadesContext rootCtxCopy =
CascadesContext.newCurrentTreeContext(rootCtx);
+
Rewriter.getWholeTreeRewriterWithoutCostBasedJobs(rootCtxCopy).execute();
+ // Do optimize
+ new Optimizer(rootCtxCopy).execute();
+ return rootCtxCopy.getMemo().getRoot().getLowestCostPlan(
+ rootCtxCopy.getCurrentJobContext().getRequiredProperties());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]