This is an automated email from the ASF dual-hosted git repository. yiguolei 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 96afc5e8be6 [fix](function)timediff with now function causes a error signature (#39322) 96afc5e8be6 is described below commit 96afc5e8be6e2fe896a6f76b113e453bd43b67b0 Author: Mryange <59914473+mrya...@users.noreply.github.com> AuthorDate: Wed Aug 14 12:04:20 2024 +0800 [fix](function)timediff with now function causes a error signature (#39322) ## Proposed changes ``` mysql [(none)]>select round(timediff(now(),'2024-08-15')/60/60,2); ERROR 1105 (HY000): errCode = 2, detailMessage = argument 1 requires datetimev2 type, however 'now()' is of datetime type ``` The reason is that the function parameter types were modified in expectedInputTypes, which led to no match being found. The code here is from a long time ago. Because the precision of datetimev2 could not be deduced in the past, a separate implementation was made here. This code can be safely deleted. <!--Describe your changes.--> --- .../trees/expressions/functions/scalar/TimeDiff.java | 18 ------------------ .../data/correctness/test_time_diff_microseconds.out | 3 +++ .../correctness/test_time_diff_microseconds.groovy | 8 ++++++++ 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/TimeDiff.java b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/TimeDiff.java index da83d5453fc..997475ca40e 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/TimeDiff.java +++ b/fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/scalar/TimeDiff.java @@ -21,10 +21,8 @@ import org.apache.doris.catalog.FunctionSignature; import org.apache.doris.nereids.trees.expressions.Expression; import org.apache.doris.nereids.trees.expressions.functions.ExplicitlyCastableSignature; import org.apache.doris.nereids.trees.expressions.functions.PropagateNullableOnDateLikeV2Args; -import org.apache.doris.nereids.trees.expressions.literal.StringLikeLiteral; import org.apache.doris.nereids.trees.expressions.shape.BinaryExpression; import org.apache.doris.nereids.trees.expressions.visitor.ExpressionVisitor; -import org.apache.doris.nereids.types.DataType; import org.apache.doris.nereids.types.DateTimeType; import org.apache.doris.nereids.types.DateTimeV2Type; import org.apache.doris.nereids.types.DateV2Type; @@ -96,20 +94,4 @@ public class TimeDiff extends ScalarFunction } return signature; } - - @Override - public List<DataType> expectedInputTypes() { - FunctionSignature signature = getSignature(); - if (getArgument(0) instanceof StringLikeLiteral) { - StringLikeLiteral str = (StringLikeLiteral) getArgument(0); - DateTimeV2Type left = DateTimeV2Type.forTypeFromString(str.getStringValue()); - signature = signature.withArgumentType(0, left); - } - if (getArgument(1) instanceof StringLikeLiteral) { - StringLikeLiteral str = (StringLikeLiteral) getArgument(1); - DateTimeV2Type right = DateTimeV2Type.forTypeFromString(str.getStringValue()); - signature = signature.withArgumentType(1, right); - } - return signature.argumentsTypes; - } } diff --git a/regression-test/data/correctness/test_time_diff_microseconds.out b/regression-test/data/correctness/test_time_diff_microseconds.out index 2ef74548ebd..39efa5b381e 100644 --- a/regression-test/data/correctness/test_time_diff_microseconds.out +++ b/regression-test/data/correctness/test_time_diff_microseconds.out @@ -27,3 +27,6 @@ -- !select8 -- 48:00:00.11500 +-- !select9 -- +67:19:00.123 + diff --git a/regression-test/suites/correctness/test_time_diff_microseconds.groovy b/regression-test/suites/correctness/test_time_diff_microseconds.groovy index a7368201072..3dd023015fd 100644 --- a/regression-test/suites/correctness/test_time_diff_microseconds.groovy +++ b/regression-test/suites/correctness/test_time_diff_microseconds.groovy @@ -91,4 +91,12 @@ suite("test_time_diff_microseconds") { cast('0001-01-03 00:00:00.114514' as Datetimev2(3) ) , cast('0001-01-01 00:00:00.000000' as Datetimev2(5) )); """ + + sql """ + select round(timediff(now(),'2024-08-15')/60/60,2); + """ + + qt_select9 """ + select timediff('0001-01-03 19:19:00.123','0001-01-01 00:00:00.0000'); + """ } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org