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 2a7f0903b2501c..1ff91dfbac9c6e 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 @@ private Optional> getCost(CascadesContext currentCtx // 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()); } }