From 1ec266b97fddfc99964582456a63ef6b888faa8a Mon Sep 17 00:00:00 2001 From: obdev Date: Thu, 8 Feb 2024 16:56:17 +0000 Subject: [PATCH] [CP] [to #53885845] fix package state sync with distrubte plan on remote server --- src/sql/session/ob_basic_session_info.cpp | 4 ++-- src/sql/session/ob_basic_session_info.h | 2 +- src/sql/session/ob_sql_session_info.cpp | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/sql/session/ob_basic_session_info.cpp b/src/sql/session/ob_basic_session_info.cpp index 7344464f68..6f49946a71 100644 --- a/src/sql/session/ob_basic_session_info.cpp +++ b/src/sql/session/ob_basic_session_info.cpp @@ -3623,7 +3623,7 @@ int ObBasicSessionInfo::replace_user_variables(const ObSessionValMap &user_var_m return ret; } -int ObBasicSessionInfo::replace_user_variable(const ObString &var, const ObSessionVariable &val) +int ObBasicSessionInfo::replace_user_variable(const ObString &var, const ObSessionVariable &val, bool need_track) { int ret = OB_SUCCESS; if (var.empty()) { @@ -3632,7 +3632,7 @@ int ObBasicSessionInfo::replace_user_variable(const ObString &var, const ObSessi } else if (OB_FAIL(user_var_val_map_.set_refactored(var, val))) { LOG_ERROR("fail to add variable", K(var), K(ret)); } else { - if (is_track_session_info()) { + if (need_track && is_track_session_info()) { if (OB_FAIL(track_user_var(var))) { LOG_WARN("fail to track user var", K(var), K(ret)); } diff --git a/src/sql/session/ob_basic_session_info.h b/src/sql/session/ob_basic_session_info.h index 631d97b7ca..816514c59e 100644 --- a/src/sql/session/ob_basic_session_info.h +++ b/src/sql/session/ob_basic_session_info.h @@ -983,7 +983,7 @@ public: ///@{ user variables related: sql::ObSessionValMap &get_user_var_val_map() {return user_var_val_map_;} const sql::ObSessionValMap &get_user_var_val_map() const {return user_var_val_map_;} - int replace_user_variable(const common::ObString &var, const ObSessionVariable &val); + int replace_user_variable(const common::ObString &var, const ObSessionVariable &val, bool need_track = true); int replace_user_variables(const ObSessionValMap &user_var_map); int remove_user_variable(const common::ObString &var); int get_user_variable(const common::ObString &var, ObSessionVariable &val) const; diff --git a/src/sql/session/ob_sql_session_info.cpp b/src/sql/session/ob_sql_session_info.cpp index 22b552c0b2..c76a22a71d 100644 --- a/src/sql/session/ob_sql_session_info.cpp +++ b/src/sql/session/ob_sql_session_info.cpp @@ -2237,6 +2237,7 @@ int ObSQLSessionInfo::replace_user_variable( OZ (reset_all_package_state_by_dbms_session(false)); } else if (is_package_variable && OB_NOT_NULL(get_pl_engine())) { OZ (set_package_variable(ctx, name, value.value_, true)); + OZ (ObBasicSessionInfo::replace_user_variable(name, value, false)); } else { OZ (ObBasicSessionInfo::replace_user_variable(name, value)); }