This is an automated email from the ASF dual-hosted git repository.

morrysnow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 4cbadb73bd5 [Fix](nereids) ignore slot implements SlotNotFromChildren 
when check the slot from children in NormalizeAggregate (#34171)
4cbadb73bd5 is described below

commit 4cbadb73bd5d7f12e98d19519f2a1e1dc01afcb3
Author: feiniaofeiafei <53502832+feiniaofeia...@users.noreply.github.com>
AuthorDate: Mon Apr 29 11:00:05 2024 +0800

    [Fix](nereids) ignore slot implements SlotNotFromChildren when check the 
slot from children in NormalizeAggregate (#34171)
---
 .../doris/nereids/rules/analysis/NormalizeAggregate.java  |  3 ++-
 .../data/nereids_function_p0/scalar_function/Array.out    | 15 +++++++++++++++
 .../nereids_function_p0/scalar_function/Array.groovy      |  2 ++
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregate.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregate.java
index e9b3d32da6e..e920036247c 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregate.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/NormalizeAggregate.java
@@ -27,6 +27,7 @@ import org.apache.doris.nereids.trees.expressions.ExprId;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import org.apache.doris.nereids.trees.expressions.NamedExpression;
 import org.apache.doris.nereids.trees.expressions.Slot;
+import org.apache.doris.nereids.trees.expressions.SlotNotFromChildren;
 import org.apache.doris.nereids.trees.expressions.SlotReference;
 import org.apache.doris.nereids.trees.expressions.SubqueryExpr;
 import org.apache.doris.nereids.trees.expressions.WindowExpression;
@@ -269,7 +270,7 @@ public class NormalizeAggregate implements 
RewriteRuleFactory, NormalizeToSlot {
             }
             List<Slot> errorSlots = new ArrayList<>(slots.size());
             for (Slot slot : slots) {
-                if (!aggOutputExprIds.contains(slot.getExprId())) {
+                if (!aggOutputExprIds.contains(slot.getExprId()) && !(slot 
instanceof SlotNotFromChildren)) {
                     errorSlots.add(slot);
                 }
             }
diff --git a/regression-test/data/nereids_function_p0/scalar_function/Array.out 
b/regression-test/data/nereids_function_p0/scalar_function/Array.out
index 0ac1f221443..c6c32bf9b15 100644
--- a/regression-test/data/nereids_function_p0/scalar_function/Array.out
+++ b/regression-test/data/nereids_function_p0/scalar_function/Array.out
@@ -11976,6 +11976,21 @@ true
 [1, 1]
 [1, 1]
 
+-- !sql_array_map_lambda_agg --
+[101]
+[102]
+[103]
+[104]
+[105]
+[106]
+[107]
+[108]
+[109]
+[110]
+[111]
+[112]
+[]
+
 -- !sql_array_exists_Double --
 \N
 [0]
diff --git 
a/regression-test/suites/nereids_function_p0/scalar_function/Array.groovy 
b/regression-test/suites/nereids_function_p0/scalar_function/Array.groovy
index 14a9453632a..5b13ed4590b 100644
--- a/regression-test/suites/nereids_function_p0/scalar_function/Array.groovy
+++ b/regression-test/suites/nereids_function_p0/scalar_function/Array.groovy
@@ -1005,6 +1005,8 @@ suite("nereids_scalar_fn_Array") {
     order_qt_sql_array_map_TinyInt_notnull "select array_map(x -> x is not 
null, katint) from fn_test_not_nullable"
     order_qt_sql_array_map_DecimalV3 "select array_map(x -> x is not null, 
kadcml) from fn_test"
     order_qt_sql_array_map_DecimalV3_notnull "select array_map(x -> x is not 
null, kadcml) from fn_test_not_nullable"
+    order_qt_sql_array_map_lambda_agg "select array_map(x->(x+100), 
collect_list(ktint)) from fn_test group by id;"
+
     // test array_exists
     order_qt_sql_array_exists_Double "select array_exists(x -> x > 1, kadbl) 
from fn_test"
     order_qt_sql_array_exists_Double_notnull "select array_exists(x -> x > 1, 
kadbl) from fn_test_not_nullable"


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to