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 965b579a54..f138b8717a 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 @@ -1517,7 +1517,8 @@ public class FunctionCallExpr extends Expr { fn.setReturnType(assignmentCompatibleType); } - } else if (fnName.getFunction().equalsIgnoreCase("ifnull")) { + } else if (fnName.getFunction().equalsIgnoreCase("ifnull") + || fnName.getFunction().equalsIgnoreCase("nvl")) { Type[] childTypes = collectChildReturnTypes(); Type assignmentCompatibleType = ScalarType.getAssignmentCompatibleType(childTypes[0], childTypes[1], true); if (assignmentCompatibleType != Type.INVALID) { diff --git a/regression-test/data/query_p0/sql_functions/conditional_functions/test_nvl.out b/regression-test/data/query_p0/sql_functions/conditional_functions/test_nvl.out index 5c39db61b8..555eded99c 100644 --- a/regression-test/data/query_p0/sql_functions/conditional_functions/test_nvl.out +++ b/regression-test/data/query_p0/sql_functions/conditional_functions/test_nvl.out @@ -4,3 +4,6 @@ true false false +-- !select2 -- +123456.134444454 + diff --git a/regression-test/suites/query_p0/sql_functions/conditional_functions/test_nvl.groovy b/regression-test/suites/query_p0/sql_functions/conditional_functions/test_nvl.groovy index cc94bb1f66..5c19602b6c 100644 --- a/regression-test/suites/query_p0/sql_functions/conditional_functions/test_nvl.groovy +++ b/regression-test/suites/query_p0/sql_functions/conditional_functions/test_nvl.groovy @@ -17,4 +17,6 @@ suite("test_nvl") { qt_select "select nvl(k6, \"false\") k from test_query_db.test order by k1" + sql """set enable_nereids_planner=false;""" + qt_select2 "select nvl(123456.134444454,0);" }