[CP] Fix: fix memory leak induced by foreign key casacde delete check duplicate rowkey
This commit is contained in:
@ -139,8 +139,6 @@ ObBasicSessionInfo::ObBasicSessionInfo(const uint64_t tenant_id)
|
||||
inf_pc_configs_(),
|
||||
curr_trans_last_stmt_end_time_(0),
|
||||
check_sys_variable_(true),
|
||||
is_foreign_key_cascade_(false),
|
||||
is_foreign_key_check_exist_(false),
|
||||
acquire_from_pool_(false),
|
||||
release_to_pool_(true),
|
||||
is_tenant_killed_(0),
|
||||
@ -431,8 +429,6 @@ void ObBasicSessionInfo::reset(bool skip_sys_var)
|
||||
curr_trans_last_stmt_end_time_ = 0;
|
||||
reserved_read_snapshot_version_.reset();
|
||||
check_sys_variable_ = true;
|
||||
is_foreign_key_cascade_ = false;
|
||||
is_foreign_key_check_exist_ = false;
|
||||
acquire_from_pool_ = false;
|
||||
// 不要重置release_to_pool_,原因见属性声明位置的注释。
|
||||
is_tenant_killed_ = 0;
|
||||
@ -4416,6 +4412,9 @@ OB_DEF_SERIALIZE(ObBasicSessionInfo)
|
||||
|
||||
bool need_serial_exec = false;
|
||||
uint64_t sql_scope_flags = sql_scope_flags_.get_flags();
|
||||
// No meaningful field for serialization compatibility
|
||||
bool is_foreign_key_cascade = false;
|
||||
bool is_foreign_key_check_exist = false;
|
||||
LST_DO_CODE(OB_UNIS_ENCODE,
|
||||
sys_vars_cache_.inc_data_,
|
||||
unused_safe_weak_read_snapshot,
|
||||
@ -4439,10 +4438,10 @@ OB_DEF_SERIALIZE(ObBasicSessionInfo)
|
||||
labels_,
|
||||
total_stmt_tables_,
|
||||
cur_stmt_tables_,
|
||||
is_foreign_key_cascade_,
|
||||
is_foreign_key_cascade,
|
||||
sys_var_in_pc_str_,
|
||||
config_in_pc_str_,
|
||||
is_foreign_key_check_exist_,
|
||||
is_foreign_key_check_exist,
|
||||
need_serial_exec,
|
||||
sql_scope_flags,
|
||||
stmt_type_,
|
||||
@ -4620,6 +4619,9 @@ OB_DEF_DESERIALIZE(ObBasicSessionInfo)
|
||||
flt_vars_.last_flt_trace_id_.reset();
|
||||
flt_vars_.last_flt_span_id_.reset();
|
||||
const ObTZInfoMap *tz_info_map = tz_info_wrap_.get_tz_info_offset().get_tz_info_map();
|
||||
// No meaningful field for serialization compatibility
|
||||
bool is_foreign_key_cascade = false;
|
||||
bool is_foreign_key_check_exist = false;
|
||||
LST_DO_CODE(OB_UNIS_DECODE,
|
||||
sys_vars_cache_.inc_data_,
|
||||
unused_safe_weak_read_snapshot,
|
||||
@ -4643,10 +4645,10 @@ OB_DEF_DESERIALIZE(ObBasicSessionInfo)
|
||||
labels_,
|
||||
total_stmt_tables_,
|
||||
cur_stmt_tables_,
|
||||
is_foreign_key_cascade_,
|
||||
is_foreign_key_cascade,
|
||||
sys_var_in_pc_str_,
|
||||
config_in_pc_str_,
|
||||
is_foreign_key_check_exist_,
|
||||
is_foreign_key_check_exist,
|
||||
need_serial_exec,
|
||||
sql_scope_flags,
|
||||
stmt_type_,
|
||||
@ -4952,7 +4954,9 @@ OB_DEF_SERIALIZE_SIZE(ObBasicSessionInfo)
|
||||
int64_t unused_safe_weak_read_snapshot = 0;
|
||||
bool need_serial_exec = false;
|
||||
uint64_t sql_scope_flags = sql_scope_flags_.get_flags();
|
||||
|
||||
// No meaningful field for serialization compatibility
|
||||
bool is_foreign_key_cascade = false;
|
||||
bool is_foreign_key_check_exist = false;
|
||||
LST_DO_CODE(OB_UNIS_ADD_LEN,
|
||||
sys_vars_cache_.inc_data_,
|
||||
unused_safe_weak_read_snapshot,
|
||||
@ -4976,10 +4980,10 @@ OB_DEF_SERIALIZE_SIZE(ObBasicSessionInfo)
|
||||
labels_,
|
||||
total_stmt_tables_,
|
||||
cur_stmt_tables_,
|
||||
is_foreign_key_cascade_,
|
||||
is_foreign_key_cascade,
|
||||
sys_var_in_pc_str_,
|
||||
config_in_pc_str_,
|
||||
is_foreign_key_check_exist_,
|
||||
is_foreign_key_check_exist,
|
||||
need_serial_exec,
|
||||
sql_scope_flags,
|
||||
stmt_type_,
|
||||
@ -5955,10 +5959,6 @@ int ObBasicSessionInfo::base_save_session(BaseSavedValue &saved_value, bool skip
|
||||
OX (cur_stmt_tables_.reset());
|
||||
OX (sys_vars_cache_.get_autocommit_info(saved_value.inc_autocommit_));
|
||||
OX (sys_vars_cache_.set_autocommit_info(false));
|
||||
OX (saved_value.is_foreign_key_cascade_ = is_foreign_key_cascade_);
|
||||
OX (is_foreign_key_cascade_ = false);
|
||||
OX (saved_value.is_foreign_key_check_exist_ = is_foreign_key_check_exist_);
|
||||
OX (is_foreign_key_check_exist_ = false);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -5989,8 +5989,6 @@ int ObBasicSessionInfo::begin_nested_session(StmtSavedValue &saved_value, bool s
|
||||
int ObBasicSessionInfo::base_restore_session(BaseSavedValue &saved_value)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
OX (is_foreign_key_check_exist_ = saved_value.is_foreign_key_check_exist_);
|
||||
OX (is_foreign_key_cascade_ = saved_value.is_foreign_key_cascade_);
|
||||
OX (sys_vars_cache_.set_autocommit_info(saved_value.inc_autocommit_));
|
||||
OZ (cur_stmt_tables_.assign(saved_value.cur_stmt_tables_));
|
||||
OZ (total_stmt_tables_.assign(saved_value.total_stmt_tables_));
|
||||
|
||||
Reference in New Issue
Block a user