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 f6c7cbdb66a85a..d7f400955c022c 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.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 implements private final boolean inferred; private final boolean hasUnbound; private final boolean compareWidthAndDepth; - private final Supplier> inputSlots = Suppliers.memoize(() -> collect(Slot.class::isInstance)); + private final Supplier> 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 860f5ff8f630f2..67487e816f1ecc 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 @@ -4,3 +4,6 @@ -- !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 1bf5e07c9698c0..f7751a8bdf7796 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 @@ -15,8 +15,6 @@ // specific language governing permissions and limitations // under the License. suite("normalize_aggregate") { - sql "SET enable_nereids_planner=true" - sql "SET enable_fallback_to_original_planner=false" qt_test_upper_project_projections_rewrite """ SELECT DISTINCT + + ( ( + + 46 ) ) * 89 AS col0, COUNT( * ) + + - 72 + - - 87 - AVG ( ALL - 56 ) * COUNT( * ) + - CASE + 49 WHEN 6 * + 76 + - + CAST( NULL AS SIGNED ) THEN NULL WHEN - COUNT( DISTINCT + + CAST( NULL AS SIGNED ) ) + 23 THEN NULL ELSE - + 43 * 32 - + 97 + - ( + 65 ) * + + @@ -29,4 +27,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