[fix](Nereids) normalize aggregate should not push down lambda's param (#37109) (#37285)

pick from master #37109

ArrayItemSlot should not be inputSlot
This commit is contained in:
morrySnow
2024-07-05 09:33:57 +08:00
committed by GitHub
parent 8373610281
commit 256221a574
3 changed files with 10 additions and 1 deletions

View File

@ -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);