From c5324e11de355a57cb7d70ba32f653a4c17ef02e Mon Sep 17 00:00:00 2001 From: obdev Date: Tue, 13 Dec 2022 11:37:57 +0000 Subject: [PATCH] [to #46711372] fix memory of element of record from resultset --- src/sql/ob_spi.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/sql/ob_spi.cpp b/src/sql/ob_spi.cpp index 624f570f78..56057fcdfe 100644 --- a/src/sql/ob_spi.cpp +++ b/src/sql/ob_spi.cpp @@ -5126,7 +5126,12 @@ int ObSPIService::inner_fetch_with_retry(ObPLExecCtx *ctx, CK (OB_NOT_NULL(values = record->get_element())); \ for (int64_t i = 0; OB_SUCC(ret) && i < type_count; ++i) { \ ObObj deep_copy; \ - OZ (deep_copy_obj(*cast_ctx.allocator_v2_, values[i], deep_copy)); \ + /*may element of record also complex value*/ \ + if (values[i].is_pl_extend()) { \ + OZ (pl::ObUserDefinedType::deep_copy_obj(*cast_ctx.allocator_v2_, values[i], deep_copy)); \ + } else { \ + OZ (deep_copy_obj(*cast_ctx.allocator_v2_, values[i], deep_copy)); \ + } \ OZ (tmp_result.push_back(deep_copy)); \ } \ } \