This is an automated email from the ASF dual-hosted git repository. yiguolei pushed a commit to branch branch-2.1 in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-2.1 by this push: new bbdb057e2c9 branch-2.1: [fix](nereids) EliminateGroupByConstant should replace agg's group by after removing constant group by keys #49473 (#50044) bbdb057e2c9 is described below commit bbdb057e2c9c96e22ca1d052c7c16f82ec89c956 Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> AuthorDate: Wed Apr 16 13:02:39 2025 +0800 branch-2.1: [fix](nereids) EliminateGroupByConstant should replace agg's group by after removing constant group by keys #49473 (#50044) Cherry-picked from #49473 Co-authored-by: feiniaofeiafei <moail...@selectdb.com> --- .../rules/analysis/EliminateGroupByConstant.java | 5 +++-- .../aggregate/aggregate_groupby_constant.groovy | 26 ++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/EliminateGroupByConstant.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/EliminateGroupByConstant.java index 7f7e229da31..a58d98ff121 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/EliminateGroupByConstant.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/analysis/EliminateGroupByConstant.java @@ -27,8 +27,8 @@ import org.apache.doris.nereids.trees.expressions.NamedExpression; import org.apache.doris.nereids.trees.plans.Plan; import org.apache.doris.nereids.trees.plans.logical.LogicalAggregate; import org.apache.doris.nereids.util.ExpressionUtils; +import org.apache.doris.nereids.util.Utils; -import com.google.common.collect.ImmutableList; import com.google.common.collect.Sets; import java.util.HashMap; @@ -75,7 +75,8 @@ public class EliminateGroupByConstant extends OneRewriteRuleFactory { if (slotGroupByExprs.isEmpty() && lit != null) { slotGroupByExprs.add(lit); } - return aggregate.withGroupByAndOutput(ImmutableList.copyOf(slotGroupByExprs), + return aggregate.withGroupByAndOutput( + ExpressionUtils.replace(Utils.fastToImmutableList(slotGroupByExprs), constantExprsReplaceMap), ExpressionUtils.replaceNamedExpressions(outputExprs, constantExprsReplaceMap)); }).toRule(RuleType.ELIMINATE_GROUP_BY_CONSTANT); } diff --git a/regression-test/suites/nereids_p0/aggregate/aggregate_groupby_constant.groovy b/regression-test/suites/nereids_p0/aggregate/aggregate_groupby_constant.groovy index 9b1f186a4cc..bbc3cd8a72a 100644 --- a/regression-test/suites/nereids_p0/aggregate/aggregate_groupby_constant.groovy +++ b/regression-test/suites/nereids_p0/aggregate/aggregate_groupby_constant.groovy @@ -18,6 +18,7 @@ suite("aggregate_groupby_constant") { sql "SET enable_nereids_planner=true" sql "SET enable_fallback_to_original_planner=false" + sql "set disable_nereids_rules='prune_empty_partition'" sql """ DROP TABLE IF EXISTS table_500_undef_partitions2_keys3_properties4_distributed_by5; """ sql """ @@ -47,4 +48,29 @@ suite("aggregate_groupby_constant") { OR table1 . `col_int_undef_signed` <> NULL ) GROUP BY field1,field2 ORDER BY field1,field2 LIMIT 10000;""" + + sql """ + SELECT + IF( + t.`col_varchar_10__undef_signed` IN ('女'), + ( + TIMESTAMPDIFF( + YEAR, + NOW(), + NOW() + ) + ), + 1 + ) AS x0, + TIMESTAMPDIFF( + YEAR, + NOW(), + NOW() + ) AS x1 + FROM + table_500_undef_partitions2_keys3_properties4_distributed_by5 AS t + GROUP BY + x0, + x1; + """ } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org