add system variables about auto dop
This commit is contained in:
@ -116,6 +116,11 @@ const char *ObSysVarPxDistAggPartialRollupPushdown::_PX_DIST_AGG_PARTIAL_ROLLUP_
|
||||
"ADAPTIVE",
|
||||
0
|
||||
};
|
||||
const char *ObSysVarParallelDegreePolicy::PARALLEL_DEGREE_POLICY_NAMES[] = {
|
||||
"MANUAL",
|
||||
"AUTO",
|
||||
0
|
||||
};
|
||||
|
||||
const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_NAME[] = {
|
||||
"_aggregation_optimization_settings",
|
||||
@ -274,6 +279,9 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_NAME[] = {
|
||||
"ob_trx_timeout",
|
||||
"optimizer_capture_sql_plan_baselines",
|
||||
"optimizer_use_sql_plan_baselines",
|
||||
"parallel_degree_limit",
|
||||
"parallel_degree_policy",
|
||||
"parallel_min_scan_time_threshold",
|
||||
"parallel_servers_target",
|
||||
"performance_schema",
|
||||
"plsql_ccflags",
|
||||
@ -501,6 +509,9 @@ const ObSysVarClassType ObSysVarFactory::SYS_VAR_IDS_SORTED_BY_NAME[] = {
|
||||
SYS_VAR_OB_TRX_TIMEOUT,
|
||||
SYS_VAR_OPTIMIZER_CAPTURE_SQL_PLAN_BASELINES,
|
||||
SYS_VAR_OPTIMIZER_USE_SQL_PLAN_BASELINES,
|
||||
SYS_VAR_PARALLEL_DEGREE_LIMIT,
|
||||
SYS_VAR_PARALLEL_DEGREE_POLICY,
|
||||
SYS_VAR_PARALLEL_MIN_SCAN_TIME_THRESHOLD,
|
||||
SYS_VAR_PARALLEL_SERVERS_TARGET,
|
||||
SYS_VAR_PERFORMANCE_SCHEMA,
|
||||
SYS_VAR_PLSQL_CCFLAGS,
|
||||
@ -795,7 +806,10 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_ID[] = {
|
||||
"_optimizer_gather_stats_on_load",
|
||||
"_set_reverse_dblink_infos",
|
||||
"_show_ddl_in_compat_mode",
|
||||
"_force_order_preserve_set"
|
||||
"_force_order_preserve_set",
|
||||
"parallel_degree_policy",
|
||||
"parallel_degree_limit",
|
||||
"parallel_min_scan_time_threshold"
|
||||
};
|
||||
|
||||
bool ObSysVarFactory::sys_var_name_case_cmp(const char *name1, const ObString &name2)
|
||||
@ -1187,6 +1201,9 @@ int ObSysVarFactory::create_all_sys_vars()
|
||||
+ sizeof(ObSysVarSetReverseDblinkInfos)
|
||||
+ sizeof(ObSysVarShowDdlInCompatMode)
|
||||
+ sizeof(ObSysVarForceOrderPreserveSet)
|
||||
+ sizeof(ObSysVarParallelDegreePolicy)
|
||||
+ sizeof(ObSysVarParallelDegreeLimit)
|
||||
+ sizeof(ObSysVarParallelMinScanTimeThreshold)
|
||||
;
|
||||
void *ptr = NULL;
|
||||
if (OB_ISNULL(ptr = allocator_.alloc(total_mem_size))) {
|
||||
@ -3211,6 +3228,33 @@ int ObSysVarFactory::create_all_sys_vars()
|
||||
ptr = (void *)((char *)ptr + sizeof(ObSysVarForceOrderPreserveSet));
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarParallelDegreePolicy())) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to new ObSysVarParallelDegreePolicy", K(ret));
|
||||
} else {
|
||||
store_buf_[ObSysVarsToIdxMap::get_store_idx(static_cast<int64_t>(SYS_VAR_PARALLEL_DEGREE_POLICY))] = sys_var_ptr;
|
||||
ptr = (void *)((char *)ptr + sizeof(ObSysVarParallelDegreePolicy));
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarParallelDegreeLimit())) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to new ObSysVarParallelDegreeLimit", K(ret));
|
||||
} else {
|
||||
store_buf_[ObSysVarsToIdxMap::get_store_idx(static_cast<int64_t>(SYS_VAR_PARALLEL_DEGREE_LIMIT))] = sys_var_ptr;
|
||||
ptr = (void *)((char *)ptr + sizeof(ObSysVarParallelDegreeLimit));
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarParallelMinScanTimeThreshold())) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to new ObSysVarParallelMinScanTimeThreshold", K(ret));
|
||||
} else {
|
||||
store_buf_[ObSysVarsToIdxMap::get_store_idx(static_cast<int64_t>(SYS_VAR_PARALLEL_MIN_SCAN_TIME_THRESHOLD))] = sys_var_ptr;
|
||||
ptr = (void *)((char *)ptr + sizeof(ObSysVarParallelMinScanTimeThreshold));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return ret;
|
||||
@ -5701,6 +5745,39 @@ int ObSysVarFactory::create_sys_var(ObSysVarClassType sys_var_id, ObBasicSysVar
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SYS_VAR_PARALLEL_DEGREE_POLICY: {
|
||||
void *ptr = NULL;
|
||||
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarParallelDegreePolicy)))) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to alloc memory", K(ret), K(sizeof(ObSysVarParallelDegreePolicy)));
|
||||
} else if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarParallelDegreePolicy())) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to new ObSysVarParallelDegreePolicy", K(ret));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SYS_VAR_PARALLEL_DEGREE_LIMIT: {
|
||||
void *ptr = NULL;
|
||||
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarParallelDegreeLimit)))) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to alloc memory", K(ret), K(sizeof(ObSysVarParallelDegreeLimit)));
|
||||
} else if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarParallelDegreeLimit())) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to new ObSysVarParallelDegreeLimit", K(ret));
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SYS_VAR_PARALLEL_MIN_SCAN_TIME_THRESHOLD: {
|
||||
void *ptr = NULL;
|
||||
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarParallelMinScanTimeThreshold)))) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to alloc memory", K(ret), K(sizeof(ObSysVarParallelMinScanTimeThreshold)));
|
||||
} else if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarParallelMinScanTimeThreshold())) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to new ObSysVarParallelMinScanTimeThreshold", K(ret));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
|
||||
Reference in New Issue
Block a user