LOB inrow config occupy table_schema and system variable id

This commit is contained in:
shadowao
2023-11-02 12:10:17 +00:00
committed by ob-robot
parent dfe63dfdf6
commit 1969e85404
22 changed files with 248 additions and 6 deletions

View File

@ -243,6 +243,7 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_NAME[] = {
"ob_capability_flag",
"ob_check_sys_variable",
"ob_compatibility_mode",
"ob_default_lob_inrow_threshold",
"ob_early_lock_release",
"ob_enable_aggregation_pushdown",
"ob_enable_index_direct_select",
@ -486,6 +487,7 @@ const ObSysVarClassType ObSysVarFactory::SYS_VAR_IDS_SORTED_BY_NAME[] = {
SYS_VAR_OB_CAPABILITY_FLAG,
SYS_VAR_OB_CHECK_SYS_VARIABLE,
SYS_VAR_OB_COMPATIBILITY_MODE,
SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD,
SYS_VAR_OB_EARLY_LOCK_RELEASE,
SYS_VAR_OB_ENABLE_AGGREGATION_PUSHDOWN,
SYS_VAR_OB_ENABLE_INDEX_DIRECT_SELECT,
@ -848,7 +850,8 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_ID[] = {
"privilege_features_enable",
"_priv_control",
"_enable_mysql_pl_priv_check",
"ob_enable_pl_cache"
"ob_enable_pl_cache",
"ob_default_lob_inrow_threshold"
};
bool ObSysVarFactory::sys_var_name_case_cmp(const char *name1, const ObString &name2)
@ -1257,6 +1260,7 @@ int ObSysVarFactory::create_all_sys_vars()
+ sizeof(ObSysVarPrivControl)
+ sizeof(ObSysVarEnableMysqlPlPrivCheck)
+ sizeof(ObSysVarObEnablePlCache)
+ sizeof(ObSysVarDefaultLobInrowThreshold)
;
void *ptr = NULL;
if (OB_ISNULL(ptr = allocator_.alloc(total_mem_size))) {
@ -3425,6 +3429,15 @@ int ObSysVarFactory::create_all_sys_vars()
ptr = (void *)((char *)ptr + sizeof(ObSysVarObEnablePlCache));
}
}
if (OB_SUCC(ret)) {
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarDefaultLobInrowThreshold())) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_ERROR("fail to new ObSysVarDefaultLobInrowThreshold", K(ret));
} else {
store_buf_[ObSysVarsToIdxMap::get_store_idx(static_cast<int64_t>(SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD))] = sys_var_ptr;
ptr = (void *)((char *)ptr + sizeof(ObSysVarDefaultLobInrowThreshold));
}
}
}
return ret;
@ -6075,6 +6088,17 @@ int ObSysVarFactory::create_sys_var(ObIAllocator &allocator_, ObSysVarClassType
}
break;
}
case SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD: {
void *ptr = NULL;
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarDefaultLobInrowThreshold)))) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_ERROR("fail to alloc memory", K(ret), K(sizeof(ObSysVarDefaultLobInrowThreshold)));
} else if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarDefaultLobInrowThreshold())) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_ERROR("fail to new ObSysVarDefaultLobInrowThreshold", K(ret));
}
break;
}
default: {
ret = OB_ERR_UNEXPECTED;