support oms ncharacter_set_connection

This commit is contained in:
SevenJ-swj
2023-10-10 11:40:07 +00:00
committed by ob-robot
parent 8bb3b902a3
commit c63282a624
19 changed files with 226 additions and 42 deletions

View File

@ -3383,7 +3383,11 @@ int ObBasicSessionInfo::get_charset_sys_var(const ObSysVarClassType sys_var_id,
} else if (OB_FAIL(val->get_value().get_int(coll_int64))) {
LOG_ERROR("fail to get int from value", K(*val), K(ret));
} else if (OB_UNLIKELY(false == ObCharset::is_valid_collation(coll_int64))) {
LOG_ERROR("invalid collation", K(sys_var_id), K(coll_int64), K(*val));
if (SYS_VAR_NCHARACTER_SET_CONNECTION == sys_var_id && coll_int64 == 0) {
//do nothing
} else {
LOG_ERROR("invalid collation", K(sys_var_id), K(coll_int64), K(*val));
}
} else {
cs_type = ObCharset::charset_type_by_coll(static_cast<ObCollationType>(coll_int64));
}
@ -5164,6 +5168,14 @@ int ObBasicSessionInfo::get_character_set_connection(ObCharsetType &character_se
return OB_SUCCESS;
}
int ObBasicSessionInfo::get_ncharacter_set_connection(ObCharsetType &ncharacter_set_connection) const
{
if (CHARSET_INVALID == (ncharacter_set_connection = sys_vars_cache_.get_ncharacter_set_connection())) {
get_charset_sys_var(SYS_VAR_NCHARACTER_SET_CONNECTION, ncharacter_set_connection);
}
return OB_SUCCESS;
}
int ObBasicSessionInfo::get_character_set_database(ObCharsetType &character_set_database) const
{
return get_charset_sys_var(SYS_VAR_CHARACTER_SET_DATABASE, character_set_database);