[fix](Nereids) union distinct should not prune any column (#21610)
This commit is contained in:
@ -24,6 +24,7 @@ import org.apache.doris.nereids.trees.expressions.NamedExpression;
|
||||
import org.apache.doris.nereids.trees.expressions.Slot;
|
||||
import org.apache.doris.nereids.trees.plans.Plan;
|
||||
import org.apache.doris.nereids.trees.plans.algebra.Aggregate;
|
||||
import org.apache.doris.nereids.trees.plans.algebra.SetOperation.Qualifier;
|
||||
import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate;
|
||||
import org.apache.doris.nereids.trees.plans.logical.LogicalCTEProducer;
|
||||
import org.apache.doris.nereids.trees.plans.logical.LogicalExcept;
|
||||
@ -111,6 +112,10 @@ public class ColumnPruning extends DefaultPlanRewriter<PruneContext> implements
|
||||
// union can not prune children by the common logic, we must override visit method to write special code.
|
||||
@Override
|
||||
public Plan visitLogicalUnion(LogicalUnion union, PruneContext context) {
|
||||
if (union.getQualifier() == Qualifier.DISTINCT) {
|
||||
return skipPruneThisAndFirstLevelChildren(union);
|
||||
}
|
||||
|
||||
LogicalUnion prunedOutputUnion = pruneOutput(union, union.getOutputs(), union::pruneOutputs, context);
|
||||
|
||||
// start prune children of union
|
||||
|
||||
Reference in New Issue
Block a user