This is an automated email from the ASF dual-hosted git repository. morrysnow pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new 256221a574d [fix](Nereids) normalize aggregate should not push down lambda's param (#37109) (#37285) 256221a574d is described below commit 256221a574d0061f0da0662968eeb63512c3f4b5 Author: morrySnow <101034200+morrys...@users.noreply.github.com> AuthorDate: Fri Jul 5 09:33:57 2024 +0800 [fix](Nereids) normalize aggregate should not push down lambda's param (#37109) (#37285) pick from master #37109 ArrayItemSlot should not be inputSlot --- .../java/org/apache/doris/nereids/trees/expressions/Expression.java | 4 +++- .../nereids_rules_p0/normalize_aggregate/normalize_aggregate_test.out | 3 +++ .../normalize_aggregate/normalize_aggregate_test.groovy | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java index f6c7cbdb66a..d7f400955c0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/Expression.java @@ -23,6 +23,7 @@ import org.apache.doris.nereids.analyzer.Unbound; import org.apache.doris.nereids.analyzer.UnboundVariable; import org.apache.doris.nereids.exceptions.AnalysisException; import org.apache.doris.nereids.trees.AbstractTreeNode; +import org.apache.doris.nereids.trees.expressions.ArrayItemReference.ArrayItemSlot; import org.apache.doris.nereids.trees.expressions.functions.ExpressionTrait; import org.apache.doris.nereids.trees.expressions.functions.Nondeterministic; import org.apache.doris.nereids.trees.expressions.functions.agg.AggregateFunction; @@ -67,7 +68,8 @@ public abstract class Expression extends AbstractTreeNode<Expression> implements private final boolean inferred; private final boolean hasUnbound; private final boolean compareWidthAndDepth; - private final Supplier<Set<Slot>> inputSlots = Suppliers.memoize(() -> collect(Slot.class::isInstance)); + private final Supplier<Set<Slot>> inputSlots = Suppliers.memoize( + () -> collect(e -> e instanceof Slot && !(e instanceof ArrayItemSlot))); protected Expression(Expression... children) { super(children); diff --git a/regression-test/data/nereids_rules_p0/normalize_aggregate/normalize_aggregate_test.out b/regression-test/data/nereids_rules_p0/normalize_aggregate/normalize_aggregate_test.out index 50c132b2f72..76173253ac0 100644 --- a/regression-test/data/nereids_rules_p0/normalize_aggregate/normalize_aggregate_test.out +++ b/regression-test/data/nereids_rules_p0/normalize_aggregate/normalize_aggregate_test.out @@ -1,3 +1,6 @@ -- This file is automatically generated. You should know what you did if you want to edit this -- !test_upper_project_projections_rewrite2 -- +-- !test_lambda -- +1 + diff --git a/regression-test/suites/nereids_rules_p0/normalize_aggregate/normalize_aggregate_test.groovy b/regression-test/suites/nereids_rules_p0/normalize_aggregate/normalize_aggregate_test.groovy index f3c732c0671..49ebb198a05 100644 --- a/regression-test/suites/nereids_rules_p0/normalize_aggregate/normalize_aggregate_test.groovy +++ b/regression-test/suites/nereids_rules_p0/normalize_aggregate/normalize_aggregate_test.groovy @@ -23,4 +23,8 @@ suite("normalize_aggregate") { qt_test_upper_project_projections_rewrite2 """ SELECT - + AVG ( DISTINCT - col0 ) * - col0 FROM normalize_aggregate_tab WHERE + - col0 IS NULL GROUP BY col0 HAVING NULL IS NULL;""" + + qt_test_lambda """ + select count(array_filter(i -> (i > 0.99), array(1, 2, 3))) + """ } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org