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 <moailing@selectdb.com>
This commit is contained in:
github-actions[bot]
2025-04-16 13:02:39 +08:00
committed by GitHub
parent 06ab763efb
commit bbdb057e2c
2 changed files with 29 additions and 2 deletions

View File

@ -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);
}