[fix](planner) Slots in the cojuncts of table function node didn't got materialized #17460

This commit is contained in:
AKIRA
2023-03-07 09:50:33 +09:00
committed by GitHub
parent bc48cbff83
commit aedbc5fcb1
3 changed files with 49 additions and 0 deletions

View File

@ -57,6 +57,7 @@ import org.apache.commons.collections.CollectionUtils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@ -628,6 +629,16 @@ public abstract class PlanNode extends TreeNode<PlanNode> implements PlanStats {
if (!analyzer.safeIsEnableJoinReorderBasedCost()) {
computeOldCardinality();
}
for (Expr expr : conjuncts) {
Set<SlotRef> slotRefs = new HashSet<>();
expr.getSlotRefsBoundByTupleIds(tupleIds, slotRefs);
for (SlotRef slotRef : slotRefs) {
slotRef.getDesc().setIsMaterialized(true);
}
for (TupleId tupleId : tupleIds) {
analyzer.getTupleDesc(tupleId).computeMemLayout();
}
}
}
protected void computeNumNodes() {