diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/ColumnPruning.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/ColumnPruning.java index bca8e43e2c..4be1dc216f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/ColumnPruning.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/logical/ColumnPruning.java @@ -250,7 +250,8 @@ public class ColumnPruning extends DefaultPlanRewriter implements boolean hasNewChildren = false; for (Plan child : plan.children()) { Set childOutputSet = child.getOutputSet(); - Set childRequiredSlots = Sets.intersection(childrenRequiredSlots, childOutputSet); + Set childRequiredSlots = childOutputSet.stream() + .filter(childrenRequiredSlots::contains).collect(Collectors.toSet()); Plan prunedChild = doPruneChild(plan, child, childRequiredSlots); if (prunedChild != child) { hasNewChildren = true;