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
The following commit(s) were added to refs/heads/branch-2.0 by this push:
new 78bb82eed23 [opt](Nereids) add float type signature for sum aggregate
function (#29503) (#29755)
78bb82eed23 is described below
commit 78bb82eed2311005d1a5519e59f3289b91558d56
Author: Kang <[email protected]>
AuthorDate: Wed Jan 10 07:36:19 2024 +0800
[opt](Nereids) add float type signature for sum aggregate function (#29503)
(#29755)
---
.../nereids/trees/expressions/functions/agg/MultiDistinctSum.java | 5 +++++
.../apache/doris/nereids/trees/expressions/functions/agg/Sum.java | 2 +-
regression-test/suites/nereids_function_p0/agg_function/agg.groovy | 6 ++++++
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/MultiDistinctSum.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/MultiDistinctSum.java
index b440d91a310..212140fed93 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/MultiDistinctSum.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/MultiDistinctSum.java
@@ -67,6 +67,11 @@ public class MultiDistinctSum extends
NullableAggregateFunction implements Unary
return new Sum(getArgument(0)).getSignatures();
}
+ @Override
+ public FunctionSignature searchSignature(List<FunctionSignature>
signatures) {
+ return new Sum(getArgument(0)).searchSignature(signatures);
+ }
+
@Override
public NullableAggregateFunction withAlwaysNullable(boolean
alwaysNullable) {
return new MultiDistinctSum(distinct, alwaysNullable, children.get(0));
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Sum.java
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Sum.java
index 74dba4da57b..a93e0eb0336 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Sum.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/agg/Sum.java
@@ -112,7 +112,7 @@ public class Sum extends NullableAggregateFunction
@Override
public FunctionSignature searchSignature(List<FunctionSignature>
signatures) {
if (getArgument(0).getDataType() instanceof FloatType) {
- return
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE);
+ return
FunctionSignature.ret(DoubleType.INSTANCE).args(FloatType.INSTANCE);
}
return ExplicitlyCastableSignature.super.searchSignature(signatures);
}
diff --git a/regression-test/suites/nereids_function_p0/agg_function/agg.groovy
b/regression-test/suites/nereids_function_p0/agg_function/agg.groovy
index e61180b85d2..0def72db777 100644
--- a/regression-test/suites/nereids_function_p0/agg_function/agg.groovy
+++ b/regression-test/suites/nereids_function_p0/agg_function/agg.groovy
@@ -2178,6 +2178,12 @@ suite("nereids_agg_fn") {
qt_sql_sum_BigInt_agg_phase_4_notnull '''
select
/*+SET_VAR(disable_nereids_rules='THREE_PHASE_AGGREGATE_WITH_DISTINCT,
TWO_PHASE_AGGREGATE_WITH_DISTINCT')*/ count(distinct id), sum(kbint) from
fn_test'''
+ //not cast float to double
+ explain {
+ sql("select sum(kfloat) from fn_test;")
+ contains "partial_sum(kfloat"
+ }
+
qt_sql_sum_Double_gb '''
select sum(kdbl) from fn_test group by kbool order by kbool'''
qt_sql_sum_Double '''
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]