This is an automated email from the ASF dual-hosted git repository. dataroaring pushed a commit to branch branch-4.0-preview in repository https://gitbox.apache.org/repos/asf/doris.git
commit a5bd4604b313568e5e6727ad322b080c9a4e796b Author: starocean999 <40539150+starocean...@users.noreply.github.com> AuthorDate: Mon Apr 15 18:12:19 2024 +0800 [fix](nereids)EliminateGroupBy should keep the output's datatype same as old ones (#33585) --- .../java/org/apache/doris/nereids/rules/rewrite/EliminateGroupBy.java | 4 +++- .../org/apache/doris/nereids/rules/rewrite/EliminateGroupByTest.java | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupBy.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupBy.java index 109cff192f2..48c83ff7c45 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupBy.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupBy.java @@ -34,6 +34,7 @@ import org.apache.doris.nereids.trees.expressions.literal.Literal; import org.apache.doris.nereids.trees.plans.Plan; import org.apache.doris.nereids.util.ExpressionUtils; import org.apache.doris.nereids.util.PlanUtils; +import org.apache.doris.nereids.util.TypeCoercionUtils; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -79,7 +80,8 @@ public class EliminateGroupBy extends OneRewriteRuleFactory { if (ne instanceof Alias && ne.child(0) instanceof AggregateFunction) { AggregateFunction f = (AggregateFunction) ne.child(0); if (f instanceof Sum || f instanceof Min || f instanceof Max) { - newOutput.add(new Alias(ne.getExprId(), f.child(0), ne.getName())); + newOutput.add(new Alias(ne.getExprId(), TypeCoercionUtils + .castIfNotSameType(f.child(0), f.getDataType()), ne.getName())); } else if (f instanceof Count) { newOutput.add((NamedExpression) ne.withChildren( new If( diff --git a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupByTest.java b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupByTest.java index 14f62d25f7f..9c8c2babec7 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupByTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/nereids/rules/rewrite/EliminateGroupByTest.java @@ -79,7 +79,7 @@ class EliminateGroupByTest extends TestWithFeService implements MemoPatternMatch .rewrite() .matches( logicalProject().when(p -> p.getProjects().get(0).toSql().equals("id") - && p.getProjects().get(1).toSql().equals("age AS `sum(age)`")) + && p.getProjects().get(1).toSql().equals("cast(age as BIGINT) AS `sum(age)`")) ); } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org