This is an automated email from the ASF dual-hosted git repository.
lide 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 6d9492da62c [fix](planner) fix result wrong caused by mixed use
multiple columns with type of datetime/datetimev2/date/datev2 of function
coalesce (#36640)
6d9492da62c is described below
commit 6d9492da62ca0dce2043312d439faf62503c7db8
Author: Yulei-Yang <[email protected]>
AuthorDate: Fri Jun 21 16:21:45 2024 +0800
[fix](planner) fix result wrong caused by mixed use multiple columns with
type of datetime/datetimev2/date/datev2 of function coalesce (#36640)
---
.../org/apache/doris/analysis/FunctionCallExpr.java | 8 ++++++++
.../conditional_functions/test_coalesce_new.groovy | 20 ++++++++++++++++++++
2 files changed, 28 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
index 1a52c965818..3f92c959670 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/analysis/FunctionCallExpr.java
@@ -1557,6 +1557,14 @@ public class FunctionCallExpr extends Expr {
argTypes[i] = assignmentCompatibleType;
}
}
+ } else if (assignmentCompatibleType.isDateV2OrDateTimeV2()) {
+ for (int i = 0; i < childTypes.length; i++) {
+ if (assignmentCompatibleType.isDateV2OrDateTimeV2()
+ &&
!childTypes[i].equals(assignmentCompatibleType)) {
+ uncheckedCastChild(assignmentCompatibleType, i);
+ argTypes[i] = assignmentCompatibleType;
+ }
+ }
}
fn = getBuiltinFunction(fnName.getFunction(), argTypes,
Function.CompareMode.IS_NONSTRICT_SUPERTYPE_OF);
diff --git
a/regression-test/suites/query_p0/sql_functions/conditional_functions/test_coalesce_new.groovy
b/regression-test/suites/query_p0/sql_functions/conditional_functions/test_coalesce_new.groovy
index 194849a3c63..a223c5d4cbd 100644
---
a/regression-test/suites/query_p0/sql_functions/conditional_functions/test_coalesce_new.groovy
+++
b/regression-test/suites/query_p0/sql_functions/conditional_functions/test_coalesce_new.groovy
@@ -51,6 +51,14 @@ suite("test_coalesce_new") {
select dt from test_cls where coalesce (dt,
str_to_date(concat('202306', '01'), '%Y%m%d')) >= '2023-06-01'
"""
assertEquals(result1.size(), 2);
+ def result11 = try_sql """
+ select dt from test_cls where coalesce (dt, dt,
str_to_date(concat('202306', '01'), '%Y%m%d')) >= '2023-06-01'
+ """
+ assertEquals(result11.size(), 2);
+ def result12 = try_sql """
+ select dt from test_cls where coalesce (dt,
str_to_date(concat('202306', '01'), '%Y%m%d'), str_to_date(concat('202306',
'01'), '%Y%m%d')) >= '2023-06-01'
+ """
+ assertEquals(result12.size(), 2);
// test parameter:datetimev2, datev2
@@ -88,6 +96,15 @@ suite("test_coalesce_new") {
select dt from test_cls_dtv2 where coalesce (dt,
str_to_date(concat('202306', '01'), '%Y%m%d')) >= '2023-06-01'
"""
assertEquals(result2.size(), 2);
+ def result21 = try_sql """
+ select dt from test_cls_dtv2 where coalesce (dt, dt,
str_to_date(concat('202306', '01'), '%Y%m%d')) >= '2023-06-01'
+ """
+ assertEquals(result21.size(), 2);
+ def result22 = try_sql """
+ select dt from test_cls_dtv2 where coalesce (dt,
str_to_date(concat('202306', '01'), '%Y%m%d'), str_to_date(concat('202306',
'01'), '%Y%m%d')) >= '2023-06-01'
+ """
+ assertEquals(result22.size(), 2);
+
sql """
drop table test_cls
@@ -98,4 +115,7 @@ suite("test_coalesce_new") {
sql """
admin set frontend config ("disable_datev1"="false")
"""
+ sql """
+ admin set frontend config ("enable_date_conversion"="true")
+ """
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]