This is an automated email from the ASF dual-hosted git repository. kxiao pushed a commit to branch branch-2.0 in repository https://gitbox.apache.org/repos/asf/doris.git
commit f670d85410f4925bf0d5275fb9f1fe080505d81b Author: jakevin <[email protected]> AuthorDate: Mon Aug 28 10:07:39 2023 +0800 [fix](Nereids): LogicalRepeat equals lack @Override (#23408) --- .../doris/nereids/rules/rewrite/ColumnPruning.java | 18 +++++++----------- .../nereids/trees/plans/logical/LogicalRepeat.java | 9 +++------ 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/ColumnPruning.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/ColumnPruning.java index 85e0f84524..f9ef20a7d0 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/ColumnPruning.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/ColumnPruning.java @@ -217,15 +217,9 @@ public class ColumnPruning extends DefaultPlanRewriter<PruneContext> implements .build()); } - public static final <P extends Plan> P pruneOutput(P plan, List<NamedExpression> originOutput, - Function<List<NamedExpression>, P> withPrunedOutput, PruneContext context) { - Optional<List<NamedExpression>> prunedOutputs = pruneOutput(originOutput, context); - return prunedOutputs.map(withPrunedOutput).orElse(plan); - } - /** prune output */ - public static Optional<List<NamedExpression>> pruneOutput( - List<NamedExpression> originOutput, PruneContext context) { + public static <P extends Plan> P pruneOutput(P plan, List<NamedExpression> originOutput, + Function<List<NamedExpression>, P> withPrunedOutput, PruneContext context) { List<NamedExpression> prunedOutputs = originOutput.stream() .filter(output -> context.requiredSlots.contains(output.toSlot())) .collect(ImmutableList.toImmutableList()); @@ -235,9 +229,11 @@ public class ColumnPruning extends DefaultPlanRewriter<PruneContext> implements prunedOutputs = ImmutableList.of(minimumColumn); } - return prunedOutputs.equals(originOutput) - ? Optional.empty() - : Optional.of(prunedOutputs); + if (prunedOutputs.equals(originOutput)) { + return plan; + } else { + return withPrunedOutput.apply(prunedOutputs); + } } private <P extends Plan> P pruneChildren(P plan) { diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRepeat.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRepeat.java index 6c4dc30631..61fc8584d4 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRepeat.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/logical/LogicalRepeat.java @@ -117,9 +117,7 @@ public class LogicalRepeat<CHILD_TYPE extends Plan> extends LogicalUnary<CHILD_T .build(); } - /** - * Determine the equality with another plan - */ + @Override public boolean equals(Object o) { if (this == o) { return true; @@ -127,9 +125,8 @@ public class LogicalRepeat<CHILD_TYPE extends Plan> extends LogicalUnary<CHILD_T if (o == null || getClass() != o.getClass()) { return false; } - LogicalRepeat that = (LogicalRepeat) o; - return Objects.equals(groupingSets, that.groupingSets) - && Objects.equals(outputExpressions, that.outputExpressions); + LogicalRepeat<?> that = (LogicalRepeat<?>) o; + return groupingSets.equals(that.groupingSets) && outputExpressions.equals(that.outputExpressions); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
