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]

Reply via email to