This is an automated email from the ASF dual-hosted git repository.

panxiaolei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new ae5e39ad26 [opt](Nereids) add double signature back for round like 
function (#22284)
ae5e39ad26 is described below

commit ae5e39ad26d8a2d90e53200f55d0266af7af1e8f
Author: morrySnow <101034200+morrys...@users.noreply.github.com>
AuthorDate: Thu Jul 27 19:10:43 2023 +0800

    [opt](Nereids) add double signature back for round like function (#22284)
    
    add double signature back for round like function
---
 .../functions/SearchSignatureForRound.java         |  43 +++++
 .../trees/expressions/functions/scalar/Ceil.java   |  10 +-
 .../trees/expressions/functions/scalar/Dceil.java  |  10 +-
 .../trees/expressions/functions/scalar/Dfloor.java |  10 +-
 .../trees/expressions/functions/scalar/Dround.java |   9 +-
 .../trees/expressions/functions/scalar/Floor.java  |  10 +-
 .../trees/expressions/functions/scalar/Round.java  |   9 +-
 .../expressions/functions/scalar/RoundBankers.java |   9 +-
 .../expressions/functions/scalar/Truncate.java     |   8 +-
 .../doris/nereids/trees/expressions/UdfTest.java   |   9 +-
 .../data/nereids_function_p0/scalar_function/D.out | 192 ++++++++++-----------
 .../data/nereids_function_p0/scalar_function/R.out | 192 ++++++++++-----------
 .../sql_functions/math_functions/test_round.out    |   6 +-
 13 files changed, 289 insertions(+), 228 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/SearchSignatureForRound.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/SearchSignatureForRound.java
new file mode 100644
index 0000000000..ae94823d31
--- /dev/null
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/SearchSignatureForRound.java
@@ -0,0 +1,43 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+package org.apache.doris.nereids.trees.expressions.functions;
+
+import org.apache.doris.catalog.FunctionSignature;
+import org.apache.doris.nereids.trees.expressions.Expression;
+import org.apache.doris.nereids.types.DoubleType;
+import org.apache.doris.nereids.types.IntegerType;
+
+import java.util.List;
+
+/**
+ * if argument 0 is float or double, we should return double signature for 
round like function.
+ */
+public interface SearchSignatureForRound extends ExplicitlyCastableSignature {
+    @Override
+    default FunctionSignature searchSignature(List<FunctionSignature> 
signatures) {
+        List<Expression> arguments = getArguments();
+        if (arguments.get(0).getDataType().isFloatLikeType()) {
+            if (arguments.size() == 1) {
+                return 
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE);
+            } else if (arguments.size() == 2) {
+                return 
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
IntegerType.INSTANCE);
+            }
+        }
+        return ExplicitlyCastableSignature.super.searchSignature(signatures);
+    }
+}
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Ceil.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Ceil.java
index 4be7f7a454..2ba3c5502b 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Ceil.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Ceil.java
@@ -20,11 +20,11 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputePrecisionForRound;
-import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
-import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
+import 
org.apache.doris.nereids.trees.expressions.functions.SearchSignatureForRound;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
 import org.apache.doris.nereids.types.IntegerType;
 
 import com.google.common.base.Preconditions;
@@ -36,11 +36,13 @@ import java.util.List;
  * ScalarFunction 'ceil'. This class is generated by GenerateFunction.
  */
 public class Ceil extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, ComputePrecisionForRound {
+        implements SearchSignatureForRound, PropagateNullable, 
ComputePrecisionForRound {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD),
-            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE)
+            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
IntegerType.INSTANCE)
     );
 
     /**
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dceil.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dceil.java
index 7102cb948d..84ee031ba7 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dceil.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dceil.java
@@ -20,11 +20,11 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputePrecisionForRound;
-import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
-import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
+import 
org.apache.doris.nereids.trees.expressions.functions.SearchSignatureForRound;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
 import org.apache.doris.nereids.types.IntegerType;
 
 import com.google.common.base.Preconditions;
@@ -36,11 +36,13 @@ import java.util.List;
  * ScalarFunction 'dceil'. This class is generated by GenerateFunction.
  */
 public class Dceil extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, ComputePrecisionForRound {
+        implements SearchSignatureForRound, PropagateNullable, 
ComputePrecisionForRound {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD),
-            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE)
+            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
IntegerType.INSTANCE)
     );
 
     /**
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dfloor.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dfloor.java
index df9f7bbb93..90c611fd36 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dfloor.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dfloor.java
@@ -20,11 +20,11 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputePrecisionForRound;
-import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
-import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
+import 
org.apache.doris.nereids.trees.expressions.functions.SearchSignatureForRound;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
 import org.apache.doris.nereids.types.IntegerType;
 
 import com.google.common.base.Preconditions;
@@ -36,11 +36,13 @@ import java.util.List;
  * ScalarFunction 'dfloor'. This class is generated by GenerateFunction.
  */
 public class Dfloor extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, ComputePrecisionForRound {
+        implements SearchSignatureForRound, PropagateNullable, 
ComputePrecisionForRound {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD),
-            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE)
+            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
IntegerType.INSTANCE)
     );
 
     /**
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dround.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dround.java
index 29fe1516fb..420991d49b 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dround.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Dround.java
@@ -20,10 +20,11 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputePrecisionForRound;
-import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
+import 
org.apache.doris.nereids.trees.expressions.functions.SearchSignatureForRound;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
 import org.apache.doris.nereids.types.IntegerType;
 
 import com.google.common.base.Preconditions;
@@ -35,11 +36,13 @@ import java.util.List;
  * ScalarFunction 'dround'. This class is generated by GenerateFunction.
  */
 public class Dround extends ScalarFunction
-        implements ExplicitlyCastableSignature, PropagateNullable, 
ComputePrecisionForRound {
+        implements SearchSignatureForRound, PropagateNullable, 
ComputePrecisionForRound {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD),
-            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE)
+            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
IntegerType.INSTANCE)
     );
 
     /**
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Floor.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Floor.java
index e6b60cb791..29f0280368 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Floor.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Floor.java
@@ -20,11 +20,11 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputePrecisionForRound;
-import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
-import org.apache.doris.nereids.trees.expressions.shape.UnaryExpression;
+import 
org.apache.doris.nereids.trees.expressions.functions.SearchSignatureForRound;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
 import org.apache.doris.nereids.types.IntegerType;
 
 import com.google.common.base.Preconditions;
@@ -36,11 +36,13 @@ import java.util.List;
  * ScalarFunction 'floor'. This class is generated by GenerateFunction.
  */
 public class Floor extends ScalarFunction
-        implements UnaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, ComputePrecisionForRound {
+        implements SearchSignatureForRound, PropagateNullable, 
ComputePrecisionForRound {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD),
-            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE)
+            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
IntegerType.INSTANCE)
     );
 
     /**
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Round.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Round.java
index ac7afc7774..b4e6a9dc54 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Round.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Round.java
@@ -20,10 +20,11 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputePrecisionForRound;
-import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
+import 
org.apache.doris.nereids.trees.expressions.functions.SearchSignatureForRound;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
 import org.apache.doris.nereids.types.IntegerType;
 
 import com.google.common.base.Preconditions;
@@ -35,11 +36,13 @@ import java.util.List;
  * ScalarFunction 'round'. This class is generated by GenerateFunction.
  */
 public class Round extends ScalarFunction
-        implements ExplicitlyCastableSignature, PropagateNullable, 
ComputePrecisionForRound {
+        implements SearchSignatureForRound, PropagateNullable, 
ComputePrecisionForRound {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD),
-            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE)
+            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
IntegerType.INSTANCE)
     );
 
     /**
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/RoundBankers.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/RoundBankers.java
index a7b0f50e8b..5ed41ae60e 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/RoundBankers.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/RoundBankers.java
@@ -20,10 +20,11 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputePrecisionForRound;
-import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
+import 
org.apache.doris.nereids.trees.expressions.functions.SearchSignatureForRound;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
 import org.apache.doris.nereids.types.IntegerType;
 
 import com.google.common.base.Preconditions;
@@ -35,11 +36,13 @@ import java.util.List;
  * ScalarFunction 'round_bankers'. This class is generated by GenerateFunction.
  */
 public class RoundBankers extends ScalarFunction
-        implements ExplicitlyCastableSignature, PropagateNullable, 
ComputePrecisionForRound {
+        implements SearchSignatureForRound, PropagateNullable, 
ComputePrecisionForRound {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
             
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD),
-            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE)
+            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
IntegerType.INSTANCE)
     );
 
     /**
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Truncate.java
 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Truncate.java
index fbf3a59b29..beb3a53db6 100644
--- 
a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Truncate.java
+++ 
b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/Truncate.java
@@ -20,11 +20,12 @@ package 
org.apache.doris.nereids.trees.expressions.functions.scalar;
 import org.apache.doris.catalog.FunctionSignature;
 import org.apache.doris.nereids.trees.expressions.Expression;
 import 
org.apache.doris.nereids.trees.expressions.functions.ComputePrecisionForRound;
-import 
org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature;
 import org.apache.doris.nereids.trees.expressions.functions.PropagateNullable;
+import 
org.apache.doris.nereids.trees.expressions.functions.SearchSignatureForRound;
 import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression;
 import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor;
 import org.apache.doris.nereids.types.DecimalV3Type;
+import org.apache.doris.nereids.types.DoubleType;
 import org.apache.doris.nereids.types.IntegerType;
 
 import com.google.common.base.Preconditions;
@@ -36,10 +37,11 @@ import java.util.List;
  * ScalarFunction 'truncate'. This class is generated by GenerateFunction.
  */
 public class Truncate extends ScalarFunction
-        implements BinaryExpression, ExplicitlyCastableSignature, 
PropagateNullable, ComputePrecisionForRound {
+        implements BinaryExpression, SearchSignatureForRound, 
PropagateNullable, ComputePrecisionForRound {
 
     public static final List<FunctionSignature> SIGNATURES = ImmutableList.of(
-            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE)
+            
FunctionSignature.ret(DecimalV3Type.WILDCARD).args(DecimalV3Type.WILDCARD, 
IntegerType.INSTANCE),
+            
FunctionSignature.ret(DoubleType.INSTANCE).args(DoubleType.INSTANCE, 
IntegerType.INSTANCE)
     );
 
     /**
diff --git 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/UdfTest.java
 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/UdfTest.java
index d068bb6c17..35cb8ba14d 100644
--- 
a/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/UdfTest.java
+++ 
b/fe/fe-core/src/test/java/org/apache/doris/nereids/trees/expressions/UdfTest.java
@@ -34,7 +34,6 @@ import 
org.apache.doris.nereids.trees.expressions.literal.TinyIntLiteral;
 import org.apache.doris.nereids.trees.expressions.literal.VarcharLiteral;
 import org.apache.doris.nereids.types.DateTimeV2Type;
 import org.apache.doris.nereids.types.DateV2Type;
-import org.apache.doris.nereids.types.DecimalV3Type;
 import org.apache.doris.nereids.types.DoubleType;
 import org.apache.doris.nereids.types.IntegerType;
 import org.apache.doris.nereids.util.PlanChecker;
@@ -146,7 +145,7 @@ public class UdfTest extends TestWithFeService implements 
PlanPatternMatchSuppor
                                 new VarcharLiteral("day")),
                         new Cast(new Add(
                                 new Multiply(
-                                        new Floor(new Cast(new Divide(
+                                        new Floor(new Divide(
                                                 new Cast(
                                                         new Hour(new Cast(new 
VarcharLiteral("2023-05-20 12:23:45"), DateTimeV2Type.SYSTEM_DEFAULT)),
                                                         DoubleType.INSTANCE
@@ -154,11 +153,11 @@ public class UdfTest extends TestWithFeService implements 
PlanPatternMatchSuppor
                                                 new Divide(
                                                         new Cast(new 
TinyIntLiteral(((byte) 24)), DoubleType.INSTANCE),
                                                         new Cast(new 
IntegerLiteral(((byte) 3)), DoubleType.INSTANCE)
-                                                )), 
DecimalV3Type.createDecimalV3Type(30, 15))
+                                                ))
                                         ),
-                                        new Cast(new TinyIntLiteral(((byte) 
1)), DecimalV3Type.createDecimalV3Type(3, 0))
+                                        new Cast(new TinyIntLiteral(((byte) 
1)), DoubleType.INSTANCE)
                                 ),
-                                new Cast(new TinyIntLiteral(((byte) 1)), 
DecimalV3Type.createDecimalV3Type(33, 0))
+                                new Cast(new TinyIntLiteral(((byte) 1)), 
DoubleType.INSTANCE)
                         ), IntegerType.INSTANCE)
                 ),
                 new VarcharLiteral("%Y%m%d:%H")
diff --git a/regression-test/data/nereids_function_p0/scalar_function/D.out 
b/regression-test/data/nereids_function_p0/scalar_function/D.out
index cbf4d8f532..d18b99ba8a 100644
--- a/regression-test/data/nereids_function_p0/scalar_function/D.out
+++ b/regression-test/data/nereids_function_p0/scalar_function/D.out
@@ -2234,32 +2234,32 @@ Monday
 
 -- !sql_dceil_Double --
 \N
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-2
-2
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+2.0
+2.0
 
 -- !sql_dceil_Double_notnull --
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-2
-2
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+2.0
+2.0
 
 -- !sql_dceil_DecimalV3S1 --
 \N
@@ -2495,32 +2495,32 @@ Monday
 
 -- !sql_dfloor_Double --
 \N
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+1.0
+1.0
+1.0
 
 -- !sql_dfloor_Double_notnull --
-0
-0
-0
-0
-0
-0
-0
-0
-0
-1
-1
-1
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+0.0
+1.0
+1.0
+1.0
 
 -- !sql_dfloor_DecimalV3S1 --
 \N
@@ -2872,61 +2872,61 @@ Monday
 
 -- !sql_dround_Double --
 \N
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
+0.0
+0.0
+0.0
+0.0
+0.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
 
 -- !sql_dround_Double_notnull --
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
+0.0
+0.0
+0.0
+0.0
+0.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
 
 -- !sql_dround_Double_Integer --
 \N
-0.10
-0.20
-0.30
-0.40
-0.50
-0.60
-0.70
-0.80
-0.90
-1.00
-1.10
-1.20
+0.1
+0.2
+0.3
+0.4
+0.5
+0.6
+0.7
+0.8
+0.9
+1.0
+1.1
+1.2
 
 -- !sql_dround_Double_Integer_notnull --
-0.10
-0.20
-0.30
-0.40
-0.50
-0.60
-0.70
-0.80
-0.90
-1.00
-1.10
-1.20
+0.1
+0.2
+0.3
+0.4
+0.5
+0.6
+0.7
+0.8
+0.9
+1.0
+1.1
+1.2
 
 -- !sql_dround_DecimalV3S1 --
 \N
diff --git a/regression-test/data/nereids_function_p0/scalar_function/R.out 
b/regression-test/data/nereids_function_p0/scalar_function/R.out
index 9c7be851d5..3145c2c6dc 100644
--- a/regression-test/data/nereids_function_p0/scalar_function/R.out
+++ b/regression-test/data/nereids_function_p0/scalar_function/R.out
@@ -436,61 +436,61 @@ string3
 
 -- !sql_round_Double --
 \N
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
+0.0
+0.0
+0.0
+0.0
+0.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
 
 -- !sql_round_Double_notnull --
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
-1
+0.0
+0.0
+0.0
+0.0
+0.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
 
 -- !sql_round_Double_Integer --
 \N
-0.10
-0.20
-0.30
-0.40
-0.50
-0.60
-0.70
-0.80
-0.90
-1.00
-1.10
-1.20
+0.1
+0.2
+0.3
+0.4
+0.5
+0.6
+0.7
+0.8
+0.9
+1.0
+1.1
+1.2
 
 -- !sql_round_Double_Integer_notnull --
-0.10
-0.20
-0.30
-0.40
-0.50
-0.60
-0.70
-0.80
-0.90
-1.00
-1.10
-1.20
+0.1
+0.2
+0.3
+0.4
+0.5
+0.6
+0.7
+0.8
+0.9
+1.0
+1.1
+1.2
 
 -- !sql_round_DecimalV3S1 --
 \N
@@ -668,61 +668,61 @@ string3
 
 -- !sql_round_bankers_Double --
 \N
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
+0.0
+0.0
+0.0
+0.0
+0.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
 
 -- !sql_round_bankers_Double_notnull --
-0
-0
-0
-0
-0
-1
-1
-1
-1
-1
-1
-1
+0.0
+0.0
+0.0
+0.0
+0.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
+1.0
 
 -- !sql_round_bankers_Double_Integer --
 \N
-0.10
-0.20
-0.30
-0.40
-0.50
-0.60
-0.70
-0.80
-0.90
-1.00
-1.10
-1.20
+0.1
+0.2
+0.3
+0.4
+0.5
+0.6
+0.7
+0.8
+0.9
+1.0
+1.1
+1.2
 
 -- !sql_round_bankers_Double_Integer_notnull --
-0.10
-0.20
-0.30
-0.40
-0.50
-0.60
-0.70
-0.80
-0.90
-1.00
-1.10
-1.20
+0.1
+0.2
+0.3
+0.4
+0.5
+0.6
+0.7
+0.8
+0.9
+1.0
+1.1
+1.2
 
 -- !sql_round_bankers_DecimalV3S1 --
 \N
diff --git 
a/regression-test/data/query_p0/sql_functions/math_functions/test_round.out 
b/regression-test/data/query_p0/sql_functions/math_functions/test_round.out
index 09f7105980..92b8def44b 100644
--- a/regression-test/data/query_p0/sql_functions/math_functions/test_round.out
+++ b/regression-test/data/query_p0/sql_functions/math_functions/test_round.out
@@ -12,9 +12,9 @@
 10.12
 
 -- !truncate --
-1.0    1989.0  1001.0  123.1   0.1     6.3
-2.0    1986.0  1001.0  1243.5  20.2    789.2
-3.0    1989.0  1002.0  24453.3 78945.0 3654.0
+1      1989    1001    123.1   0.1     6.3
+2      1986    1001    1243.5  20.2    789.2
+3      1989    1002    24453.3 78945.0 3654.0
 
 -- !select --
 16     16      16


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to