From 6306b01265cdad5c73bc30812840792fb5a51f77 Mon Sep 17 00:00:00 2001 From: obdev Date: Tue, 11 Apr 2023 12:50:49 +0800 Subject: [PATCH] [CP] [to #48137245] fix package shrink core --- src/sql/session/ob_sql_session_info.cpp | 31 ++++++++++++------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/sql/session/ob_sql_session_info.cpp b/src/sql/session/ob_sql_session_info.cpp index 8a5f0caf8..1f62f9c4c 100644 --- a/src/sql/session/ob_sql_session_info.cpp +++ b/src/sql/session/ob_sql_session_info.cpp @@ -1803,31 +1803,30 @@ bool ObSQLSessionInfo::get_changed_package_state_num() const int ObSQLSessionInfo::add_changed_package_info(ObExecContext &exec_ctx) { int ret = OB_SUCCESS; - ObPLExecCtx pl_ctx(NULL, &exec_ctx, NULL, NULL, NULL, NULL); - ObArray key; - ObArray value; + ObArenaAllocator allocator; + ObPLExecCtx pl_ctx(&allocator, &exec_ctx, NULL, NULL, NULL, NULL); if (0 != package_state_map_.size()) { FOREACH(it, package_state_map_) { ObPLPackageState *package_state = it->second; if (package_state->is_package_info_changed()) { - pl_ctx.allocator_ = &(package_state->get_pkg_allocator()); + ObSEArray key; + ObSEArray value; if (OB_FAIL(package_state->convert_changed_info_to_string_kvs(pl_ctx, key, value))) { - LOG_WARN("convert package state to string kv failed", - K(ret), KPC(package_state)); + LOG_WARN("convert package state to string kv failed", K(ret)); + } else { + ObSessionVariable sess_var; + int tmp_ret = OB_SUCCESS; + for (int64_t i = 0; OB_SUCC(ret) && i < key.count(); i++) { + sess_var.value_ = value[i]; + sess_var.meta_ = value[i].get_meta(); + if (OB_FAIL(ObBasicSessionInfo::replace_user_variable(key[i], sess_var))) { + LOG_WARN("add user var failed", K(ret)); + } + } } } } } - if (OB_SUCC(ret)) { - ObSessionVariable sess_var; - for (int64_t i = 0; i < key.count(); i++) { - sess_var.value_ = value[i]; - sess_var.meta_ = value[i].get_meta(); - if (OB_FAIL(ObBasicSessionInfo::replace_user_variable(key[i], sess_var))) { - LOG_WARN("add user var failed", K(ret)); - } - } - } return ret; }