[CP] Fix Session Var solidify bug

This commit is contained in:
2149
2024-02-18 09:13:30 +00:00
committed by ob-robot
parent 22ea13c705
commit df515b0fa3
2 changed files with 22 additions and 6 deletions

View File

@ -9080,10 +9080,16 @@ int ObRawExprUtils::extract_local_vars_for_gencol(ObRawExpr *expr,
}
if (has_char_dep_col) {
//add sql mode
ObSessionSysVar *local_var = NULL;
if (OB_FAIL(gen_col.get_local_session_var().get_local_var(SYS_VAR_SQL_MODE, local_var))) {
LOG_WARN("get local var failed", K(ret));
} else if (NULL == local_var) {
bool is_sql_mode_solidified = false;
for (int64_t i = 0; OB_SUCC(ret) && !is_sql_mode_solidified && i < var_array.count(); ++i) {
if (OB_ISNULL(var_array.at(i))) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("unexpected null", K(ret));
} else if (share::SYS_VAR_SQL_MODE == var_array.at(i)->type_) {
is_sql_mode_solidified = true;
}
}
if (OB_SUCC(ret) && !is_sql_mode_solidified) {
local_sql_mode.type_ = SYS_VAR_SQL_MODE;
local_sql_mode.val_.set_uint64(sql_mode);
if (OB_FAIL(var_array.push_back(&local_sql_mode))) {