[CP] Fix Session Var solidify bug
This commit is contained in:
@ -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))) {
|
||||
|
||||
Reference in New Issue
Block a user