From 218b4fec80ac7cf5de2d5feebfe51b2a09d0648c Mon Sep 17 00:00:00 2001 From: hanr881 <1741282579@qq.com> Date: Thu, 9 Nov 2023 14:43:19 +0000 Subject: [PATCH] [CP] to issue<52838400>:fix core when package var as top store routine argument --- src/pl/ob_pl.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/pl/ob_pl.cpp b/src/pl/ob_pl.cpp index 1bec7104c7..229f50b1ef 100644 --- a/src/pl/ob_pl.cpp +++ b/src/pl/ob_pl.cpp @@ -2668,10 +2668,7 @@ int ObPLExecState::final(int ret) if (func_.get_in_args().has_member(i) && !func_.get_out_args().has_member(i) && is_called_from_sql_) { // do nothing } else if (func_.get_in_args().has_member(i) && !func_.get_out_args().has_member(i)) { - if (OB_SUCCESS != (tmp_ret = ObUserDefinedType::destruct_obj(get_params().at(i), - ctx_.exec_ctx_->get_my_session()))) { - LOG_WARN("failed to destruct pl object", K(i), K(tmp_ret)); - } + // do nothing } else if (OB_SUCCESS != ret) { // OUT参数在失败的情况下在这里释放 if (OB_SUCCESS != (tmp_ret = ObUserDefinedType::destruct_obj(get_params().at(i), ctx_.exec_ctx_->get_my_session()))) { @@ -3014,6 +3011,8 @@ int ObPLExecState::check_routine_param_legal(ParamStore *params) collection->set_last(OB_INVALID_INDEX); } } + CK (OB_NOT_NULL(ctx_.exec_ctx_->get_pl_ctx())); + OZ (ctx_.exec_ctx_->get_pl_ctx()->add(dst)); OX (param = dst); OX (param.set_param_meta()); OX (param.set_udt_id(pl_user_type->get_user_type_id()));