This is an automated email from the ASF dual-hosted git repository. lijibing pushed a commit to branch high-priority-column in repository https://gitbox.apache.org/repos/asf/doris.git
commit f74a4d07d83ac44df013bb75df8dd6d5f6f42701 Author: Jibing-Li <64681310+jibing...@users.noreply.github.com> AuthorDate: Tue Mar 12 13:25:23 2024 +0800 support window (#32094) --- .../rules/expression/HighPriorityColumnCollector.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/HighPriorityColumnCollector.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/HighPriorityColumnCollector.java index ed67ad97005..e20363b1202 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/HighPriorityColumnCollector.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/expression/HighPriorityColumnCollector.java @@ -34,6 +34,7 @@ import org.apache.doris.nereids.trees.plans.logical.LogicalHaving; import org.apache.doris.nereids.trees.plans.logical.LogicalJoin; import org.apache.doris.nereids.trees.plans.logical.LogicalOlapScan; import org.apache.doris.nereids.trees.plans.logical.LogicalProject; +import org.apache.doris.nereids.trees.plans.logical.LogicalWindow; import org.apache.doris.nereids.trees.plans.visitor.CustomRewriter; import org.apache.doris.nereids.trees.plans.visitor.DefaultPlanRewriter; import org.apache.doris.qe.ConnectContext; @@ -169,6 +170,18 @@ public class HighPriorityColumnCollector extends DefaultPlanRewriter<CollectorCo return filter; } + @Override + public Plan visitLogicalWindow(LogicalWindow<? extends Plan> window, CollectorContext context) { + window.child(0).accept(this, context); + context.usedInPredicate.addAll(window + .getWindowExpressions() + .stream() + .flatMap(e -> e.<Set<SlotReference>>collect(n -> n instanceof SlotReference).stream()) + .flatMap(s -> backtrace(s, context).stream()) + .collect(Collectors.toSet())); + return window; + } + private Set<Slot> backtrace(Slot slot, CollectorContext context) { return backtrace(slot, new HashSet<>(), context); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org