From b7f2fcb3d6b96bea5c96fbf41cad7997b2856d32 Mon Sep 17 00:00:00 2001 From: obdev Date: Fri, 9 Feb 2024 09:09:45 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dnanvl=EF=BC=8C=E7=AC=AC?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E4=B8=BAnull=E7=9A=84=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=A6=82=E6=9E=9C=E6=98=AFbinary=20double=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=EF=BC=8C=E9=9C=80=E8=A6=81=E5=AF=B9=E7=AC=AC=E4=BA=8C=E4=B8=AA?= =?UTF-8?q?=E5=8F=82=E6=95=B0=20=E8=BF=9B=E8=A1=8C=E5=8F=96=E5=80=BC?= =?UTF-8?q?=EF=BC=8C=E8=8B=A5=E8=BD=AC=E6=8D=A2=E6=95=B0=E5=AD=97=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=9A=84=E8=AF=9D=E6=8A=A5=E9=94=99=EF=BC=8C=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E8=BF=94=E5=9B=9Enull=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sql/engine/expr/ob_expr_nvl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sql/engine/expr/ob_expr_nvl.cpp b/src/sql/engine/expr/ob_expr_nvl.cpp index c782d065ba..8b765106eb 100644 --- a/src/sql/engine/expr/ob_expr_nvl.cpp +++ b/src/sql/engine/expr/ob_expr_nvl.cpp @@ -495,7 +495,7 @@ int ObExprNaNvl::eval_nanvl(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_da bool ret_bool = false; if (OB_FAIL(expr.args_[0]->eval(ctx, param1))) { LOG_WARN("eval first param failed", K(ret)); - } else if (param1->is_null()) { + } else if (param1->is_null() && ObOBinDoubleType != ob_obj_type_to_oracle_type(expr.args_[0]->datum_meta_.get_type())) { expr_datum.set_null(); } else if (OB_FAIL(expr.args_[1]->eval(ctx, param2))) { LOG_WARN("eval second param failed", K(ret)); @@ -530,7 +530,7 @@ int ObExprNaNvl::eval_nanvl_batch(const ObExpr &expr, } ObDatum *param1 = NULL; param1 = &expr.args_[0]->locate_expr_datum(ctx, i); - if (param1->is_null()) { + if (param1->is_null() && ObOBinDoubleType != ob_obj_type_to_oracle_type(expr.args_[0]->datum_meta_.get_type())) { results[i].set_null(); eval_flags.set(i); my_skip.set(i);