to issue<49906188>:fix core about package var as udf out param
This commit is contained in:
@ -1462,6 +1462,10 @@ int ObPLComposite::copy_element(const ObObj &src,
|
|||||||
need_new_allocator));
|
need_new_allocator));
|
||||||
CK (OB_NOT_NULL(dest_composite));
|
CK (OB_NOT_NULL(dest_composite));
|
||||||
if (src.get_ext() == dest.get_ext()) {
|
if (src.get_ext() == dest.get_ext()) {
|
||||||
|
OX (dest.set_extend(reinterpret_cast<int64_t>(src_composite),
|
||||||
|
src.get_meta().get_extend_type(),
|
||||||
|
src.get_val_len()));
|
||||||
|
OZ (ObUserDefinedType::destruct_obj(dest, session));
|
||||||
OZ (ObPLComposite::deep_copy(*dest_composite,
|
OZ (ObPLComposite::deep_copy(*dest_composite,
|
||||||
src_composite,
|
src_composite,
|
||||||
allocator,
|
allocator,
|
||||||
|
|||||||
@ -370,16 +370,9 @@ int ObExprUDF::process_out_params(const ObObj *objs_stack,
|
|||||||
} else {
|
} else {
|
||||||
OZ (deep_copy_obj(*pkg_allocator, obj, obj));
|
OZ (deep_copy_obj(*pkg_allocator, obj, obj));
|
||||||
}
|
}
|
||||||
OZ (ObSPIService::spi_set_package_variable(
|
|
||||||
&exec_ctx,
|
|
||||||
NULL,
|
|
||||||
params_desc.at(i).get_package_id(),
|
|
||||||
params_desc.at(i).get_index(),
|
|
||||||
iparams.at(i)));
|
|
||||||
int tmp_ret = OB_SUCCESS;
|
|
||||||
tmp_ret = pl::ObUserDefinedType::destruct_obj(iparams.at(i), exec_ctx.get_my_session());
|
|
||||||
ret = OB_SUCCESS == ret ? tmp_ret : ret;
|
|
||||||
}
|
}
|
||||||
|
OZ (ObSPIService::spi_update_package_change_info(&plctx, params_desc.at(i).get_package_id(),
|
||||||
|
params_desc.at(i).get_index()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user