diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindExpression.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindExpression.java index 4c51578ef9..5c2d6c9aff 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindExpression.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/BindExpression.java @@ -55,7 +55,7 @@ import org.apache.doris.nereids.trees.plans.Plan; import org.apache.doris.nereids.trees.plans.algebra.Aggregate; import org.apache.doris.nereids.trees.plans.algebra.SetOperation.Qualifier; import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate; -import org.apache.doris.nereids.trees.plans.logical.LogicalCTE; +import org.apache.doris.nereids.trees.plans.logical.LogicalCTEAnchor; import org.apache.doris.nereids.trees.plans.logical.LogicalCTEConsumer; import org.apache.doris.nereids.trees.plans.logical.LogicalExcept; import org.apache.doris.nereids.trees.plans.logical.LogicalFilter; @@ -409,17 +409,19 @@ public class BindExpression implements AnalysisRuleFactory { LogicalProject project = sort.child(); return bindSort(sort, project, ctx.cascadesContext); }) - ), RuleType.BINDING_SORT_SLOT.build( + ), + RuleType.BINDING_SORT_SLOT.build( logicalSort(logicalCTEConsumer()).thenApply(ctx -> { LogicalSort sort = ctx.root; LogicalCTEConsumer cteConsumer = sort.child(); return bindSort(sort, cteConsumer, ctx.cascadesContext); }) - ), RuleType.BINDING_SORT_SLOT.build( - logicalSort(logicalCTE()).thenApply(ctx -> { - LogicalSort> sort = ctx.root; - LogicalCTE cteConsumer = sort.child(); - return bindSort(sort, cteConsumer, ctx.cascadesContext); + ), + RuleType.BINDING_SORT_SLOT.build( + logicalSort(logicalCTEAnchor()).thenApply(ctx -> { + LogicalSort> sort = ctx.root; + LogicalCTEAnchor cteAnchor = sort.child(); + return bindSort(sort, cteAnchor, ctx.cascadesContext); }) ), RuleType.BINDING_SORT_SET_OPERATION_SLOT.build(