提交 9cc87d83 编写于 作者: L LINxiansheng 提交者: wangzelin.wzl

[CP] Add system variable default_storage_engine

上级 ba11b4ac
...@@ -105,6 +105,7 @@ enum ObSysVarClassType ...@@ -105,6 +105,7 @@ enum ObSysVarClassType
SYS_VAR_SESSION_TRACK_SCHEMA = 81, SYS_VAR_SESSION_TRACK_SCHEMA = 81,
SYS_VAR_SESSION_TRACK_SYSTEM_VARIABLES = 82, SYS_VAR_SESSION_TRACK_SYSTEM_VARIABLES = 82,
SYS_VAR_SESSION_TRACK_STATE_CHANGE = 83, SYS_VAR_SESSION_TRACK_STATE_CHANGE = 83,
SYS_VAR_DEFAULT_STORAGE_ENGINE = 93,
SYS_VAR_OB_DEFAULT_REPLICA_NUM = 10000, SYS_VAR_OB_DEFAULT_REPLICA_NUM = 10000,
SYS_VAR_OB_INTERM_RESULT_MEM_LIMIT = 10001, SYS_VAR_OB_INTERM_RESULT_MEM_LIMIT = 10001,
SYS_VAR_OB_PROXY_PARTITION_HIT = 10002, SYS_VAR_OB_PROXY_PARTITION_HIT = 10002,
......
...@@ -104,6 +104,7 @@ namespace share ...@@ -104,6 +104,7 @@ namespace share
static const char* const OB_SV_SESSION_TRACK_SCHEMA = "session_track_schema"; static const char* const OB_SV_SESSION_TRACK_SCHEMA = "session_track_schema";
static const char* const OB_SV_SESSION_TRACK_SYSTEM_VARIABLES = "session_track_system_variables"; static const char* const OB_SV_SESSION_TRACK_SYSTEM_VARIABLES = "session_track_system_variables";
static const char* const OB_SV_SESSION_TRACK_STATE_CHANGE = "session_track_state_change"; static const char* const OB_SV_SESSION_TRACK_STATE_CHANGE = "session_track_state_change";
static const char* const OB_SV_DEFAULT_STORAGE_ENGINE = "default_storage_engine";
static const char* const OB_SV_DEFAULT_REPLICA_NUM = "ob_default_replica_num"; static const char* const OB_SV_DEFAULT_REPLICA_NUM = "ob_default_replica_num";
static const char* const OB_SV_INTERM_RESULT_MEM_LIMIT = "ob_interm_result_mem_limit"; static const char* const OB_SV_INTERM_RESULT_MEM_LIMIT = "ob_interm_result_mem_limit";
static const char* const OB_SV_PROXY_PARTITION_HIT = "ob_proxy_partition_hit"; static const char* const OB_SV_PROXY_PARTITION_HIT = "ob_proxy_partition_hit";
......
...@@ -140,6 +140,7 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_NAME[] = { ...@@ -140,6 +140,7 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_NAME[] = {
"debug_sync", "debug_sync",
"default_authentication_plugin", "default_authentication_plugin",
"default_password_lifetime", "default_password_lifetime",
"default_storage_engine",
"disabled_storage_engines", "disabled_storage_engines",
"div_precision_increment", "div_precision_increment",
"error_count", "error_count",
...@@ -341,6 +342,7 @@ const ObSysVarClassType ObSysVarFactory::SYS_VAR_IDS_SORTED_BY_NAME[] = { ...@@ -341,6 +342,7 @@ const ObSysVarClassType ObSysVarFactory::SYS_VAR_IDS_SORTED_BY_NAME[] = {
SYS_VAR_DEBUG_SYNC, SYS_VAR_DEBUG_SYNC,
SYS_VAR_DEFAULT_AUTHENTICATION_PLUGIN, SYS_VAR_DEFAULT_AUTHENTICATION_PLUGIN,
SYS_VAR_DEFAULT_PASSWORD_LIFETIME, SYS_VAR_DEFAULT_PASSWORD_LIFETIME,
SYS_VAR_DEFAULT_STORAGE_ENGINE,
SYS_VAR_DISABLED_STORAGE_ENGINES, SYS_VAR_DISABLED_STORAGE_ENGINES,
SYS_VAR_DIV_PRECISION_INCREMENT, SYS_VAR_DIV_PRECISION_INCREMENT,
SYS_VAR_ERROR_COUNT, SYS_VAR_ERROR_COUNT,
...@@ -589,6 +591,7 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_ID[] = { ...@@ -589,6 +591,7 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_ID[] = {
"session_track_schema", "session_track_schema",
"session_track_system_variables", "session_track_system_variables",
"session_track_state_change", "session_track_state_change",
"default_storage_engine",
"ob_default_replica_num", "ob_default_replica_num",
"ob_interm_result_mem_limit", "ob_interm_result_mem_limit",
"ob_proxy_partition_hit", "ob_proxy_partition_hit",
...@@ -950,6 +953,7 @@ int ObSysVarFactory::create_all_sys_vars() ...@@ -950,6 +953,7 @@ int ObSysVarFactory::create_all_sys_vars()
+ sizeof(ObSysVarSessionTrackSchema) + sizeof(ObSysVarSessionTrackSchema)
+ sizeof(ObSysVarSessionTrackSystemVariables) + sizeof(ObSysVarSessionTrackSystemVariables)
+ sizeof(ObSysVarSessionTrackStateChange) + sizeof(ObSysVarSessionTrackStateChange)
+ sizeof(ObSysVarDefaultStorageEngine)
+ sizeof(ObSysVarObDefaultReplicaNum) + sizeof(ObSysVarObDefaultReplicaNum)
+ sizeof(ObSysVarObIntermResultMemLimit) + sizeof(ObSysVarObIntermResultMemLimit)
+ sizeof(ObSysVarObProxyPartitionHit) + sizeof(ObSysVarObProxyPartitionHit)
...@@ -1828,6 +1832,15 @@ int ObSysVarFactory::create_all_sys_vars() ...@@ -1828,6 +1832,15 @@ int ObSysVarFactory::create_all_sys_vars()
ptr = (void *)((char *)ptr + sizeof(ObSysVarSessionTrackStateChange)); ptr = (void *)((char *)ptr + sizeof(ObSysVarSessionTrackStateChange));
} }
} }
if (OB_SUCC(ret)) {
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarDefaultStorageEngine())) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_ERROR("fail to new ObSysVarDefaultStorageEngine", K(ret));
} else {
store_buf_[ObSysVarsToIdxMap::get_store_idx(static_cast<int64_t>(SYS_VAR_DEFAULT_STORAGE_ENGINE))] = sys_var_ptr;
ptr = (void *)((char *)ptr + sizeof(ObSysVarDefaultStorageEngine));
}
}
if (OB_SUCC(ret)) { if (OB_SUCC(ret)) {
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarObDefaultReplicaNum())) { if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarObDefaultReplicaNum())) {
ret = OB_ALLOCATE_MEMORY_FAILED; ret = OB_ALLOCATE_MEMORY_FAILED;
...@@ -3804,6 +3817,17 @@ int ObSysVarFactory::create_sys_var(ObSysVarClassType sys_var_id, ObBasicSysVar ...@@ -3804,6 +3817,17 @@ int ObSysVarFactory::create_sys_var(ObSysVarClassType sys_var_id, ObBasicSysVar
} }
break; break;
} }
case SYS_VAR_DEFAULT_STORAGE_ENGINE: {
void *ptr = NULL;
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarDefaultStorageEngine)))) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_ERROR("fail to alloc memory", K(ret), K(sizeof(ObSysVarDefaultStorageEngine)));
} else if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarDefaultStorageEngine())) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_ERROR("fail to new ObSysVarDefaultStorageEngine", K(ret));
}
break;
}
case SYS_VAR_OB_DEFAULT_REPLICA_NUM: { case SYS_VAR_OB_DEFAULT_REPLICA_NUM: {
void *ptr = NULL; void *ptr = NULL;
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarObDefaultReplicaNum)))) { if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarObDefaultReplicaNum)))) {
......
...@@ -1147,6 +1147,18 @@ ...@@ -1147,6 +1147,18 @@
"background_cn": "", "background_cn": "",
"ref_url": "" "ref_url": ""
}, },
"default_storage_engine": {
"id": 93,
"name": "default_storage_engine",
"value": "OceanBase",
"data_type": "varchar",
"info": "The default storage engine of OceanBase",
"flags": "GLOBAL | SESSION | MYSQL_ONLY",
"publish_version": "400",
"info_cn": "",
"background_cn": "",
"ref_url": ""
},
"ob_interm_result_mem_limit": { "ob_interm_result_mem_limit": {
"id": 10001, "id": 10001,
"name": "ob_interm_result_mem_limit", "name": "ob_interm_result_mem_limit",
......
...@@ -673,6 +673,17 @@ int ObVariableSetExecutor::check_and_convert_sys_var(ObExecContext& ctx, const O ...@@ -673,6 +673,17 @@ int ObVariableSetExecutor::check_and_convert_sys_var(ObExecContext& ctx, const O
LOG_WARN("not support modify this variables now", K(set_var), K(new_value), K(ret)); LOG_WARN("not support modify this variables now", K(set_var), K(new_value), K(ret));
} }
} }
if (OB_FAIL(ret)) {
} else if (set_var.var_name_ == OB_SV_DEFAULT_STORAGE_ENGINE) {
static const common::ObString DEFAULT_VALUE_STORAGE_ENGINE("OceanBase");
const ObString new_value = out_val.get_string();
if (new_value.case_compare(DEFAULT_VALUE_STORAGE_ENGINE) != 0) {
ret = OB_ERR_PARAM_VALUE_INVALID;
LOG_USER_ERROR(OB_ERR_PARAM_VALUE_INVALID);
}
}
return ret; return ret;
} }
......
...@@ -87,6 +87,7 @@ sys_var_dict["warning_count"] = {"id": 80, "name": "warning_count", "value": "0" ...@@ -87,6 +87,7 @@ sys_var_dict["warning_count"] = {"id": 80, "name": "warning_count", "value": "0"
sys_var_dict["session_track_schema"] = {"id": 81, "name": "session_track_schema", "value": "1", "data_type": 5, "info": "specifies whether return schema change info in ok packet", "flags": 4099} sys_var_dict["session_track_schema"] = {"id": 81, "name": "session_track_schema", "value": "1", "data_type": 5, "info": "specifies whether return schema change info in ok packet", "flags": 4099}
sys_var_dict["session_track_system_variables"] = {"id": 82, "name": "session_track_system_variables", "value": "time_zone, autocommit, character_set_client, character_set_results, character_set_connection", "data_type": 22, "info": "specifies whether return system variables change info in ok packet", "flags": 4099} sys_var_dict["session_track_system_variables"] = {"id": 82, "name": "session_track_system_variables", "value": "time_zone, autocommit, character_set_client, character_set_results, character_set_connection", "data_type": 22, "info": "specifies whether return system variables change info in ok packet", "flags": 4099}
sys_var_dict["session_track_state_change"] = {"id": 83, "name": "session_track_state_change", "value": "0", "data_type": 5, "info": "specifies whether return session state change info in ok packet", "flags": 4099} sys_var_dict["session_track_state_change"] = {"id": 83, "name": "session_track_state_change", "value": "0", "data_type": 5, "info": "specifies whether return session state change info in ok packet", "flags": 4099}
sys_var_dict["default_storage_engine"] = {"id": 93, "name": "default_storage_engine", "value": "OceanBase", "data_type": 22, "info": "The default storage engine of OceanBase", "flags": 4099}
sys_var_dict["ob_default_replica_num"] = {"id": 10000, "name": "ob_default_replica_num", "value": "1", "data_type": 5, "info": "The default replica number of table per zone if not specified when creating table.", "flags": 3} sys_var_dict["ob_default_replica_num"] = {"id": 10000, "name": "ob_default_replica_num", "value": "1", "data_type": 5, "info": "The default replica number of table per zone if not specified when creating table.", "flags": 3}
sys_var_dict["ob_interm_result_mem_limit"] = {"id": 10001, "name": "ob_interm_result_mem_limit", "value": "2147483648", "data_type": 5, "info": "Indicate how many bytes the interm result manager can alloc most for this tenant", "flags": 131} sys_var_dict["ob_interm_result_mem_limit"] = {"id": 10001, "name": "ob_interm_result_mem_limit", "value": "2147483648", "data_type": 5, "info": "Indicate how many bytes the interm result manager can alloc most for this tenant", "flags": 131}
sys_var_dict["ob_proxy_partition_hit"] = {"id": 10002, "name": "ob_proxy_partition_hit", "value": "1", "data_type": 5, "info": "Indicate whether sql stmt hit right partition, readonly to user, modify by ob", "flags": 22} sys_var_dict["ob_proxy_partition_hit"] = {"id": 10002, "name": "ob_proxy_partition_hit", "value": "1", "data_type": 5, "info": "Indicate whether sql stmt hit right partition, readonly to user, modify by ob", "flags": 22}
......
...@@ -7415,6 +7415,7 @@ ...@@ -7415,6 +7415,7 @@
#sys_var_dict["session_track_schema"] = {"id": 81, "name": "session_track_schema", "value": "1", "data_type": 5, "info": "specifies whether return schema change info in ok packet", "flags": 4099} #sys_var_dict["session_track_schema"] = {"id": 81, "name": "session_track_schema", "value": "1", "data_type": 5, "info": "specifies whether return schema change info in ok packet", "flags": 4099}
#sys_var_dict["session_track_system_variables"] = {"id": 82, "name": "session_track_system_variables", "value": "time_zone, autocommit, character_set_client, character_set_results, character_set_connection", "data_type": 22, "info": "specifies whether return system variables change info in ok packet", "flags": 4099} #sys_var_dict["session_track_system_variables"] = {"id": 82, "name": "session_track_system_variables", "value": "time_zone, autocommit, character_set_client, character_set_results, character_set_connection", "data_type": 22, "info": "specifies whether return system variables change info in ok packet", "flags": 4099}
#sys_var_dict["session_track_state_change"] = {"id": 83, "name": "session_track_state_change", "value": "0", "data_type": 5, "info": "specifies whether return session state change info in ok packet", "flags": 4099} #sys_var_dict["session_track_state_change"] = {"id": 83, "name": "session_track_state_change", "value": "0", "data_type": 5, "info": "specifies whether return session state change info in ok packet", "flags": 4099}
#sys_var_dict["default_storage_engine"] = {"id": 93, "name": "default_storage_engine", "value": "OceanBase", "data_type": 22, "info": "The default storage engine of OceanBase", "flags": 4099}
#sys_var_dict["ob_default_replica_num"] = {"id": 10000, "name": "ob_default_replica_num", "value": "1", "data_type": 5, "info": "The default replica number of table per zone if not specified when creating table.", "flags": 3} #sys_var_dict["ob_default_replica_num"] = {"id": 10000, "name": "ob_default_replica_num", "value": "1", "data_type": 5, "info": "The default replica number of table per zone if not specified when creating table.", "flags": 3}
#sys_var_dict["ob_interm_result_mem_limit"] = {"id": 10001, "name": "ob_interm_result_mem_limit", "value": "2147483648", "data_type": 5, "info": "Indicate how many bytes the interm result manager can alloc most for this tenant", "flags": 131} #sys_var_dict["ob_interm_result_mem_limit"] = {"id": 10001, "name": "ob_interm_result_mem_limit", "value": "2147483648", "data_type": 5, "info": "Indicate how many bytes the interm result manager can alloc most for this tenant", "flags": 131}
#sys_var_dict["ob_proxy_partition_hit"] = {"id": 10002, "name": "ob_proxy_partition_hit", "value": "1", "data_type": 5, "info": "Indicate whether sql stmt hit right partition, readonly to user, modify by ob", "flags": 22} #sys_var_dict["ob_proxy_partition_hit"] = {"id": 10002, "name": "ob_proxy_partition_hit", "value": "1", "data_type": 5, "info": "Indicate whether sql stmt hit right partition, readonly to user, modify by ob", "flags": 22}
......
...@@ -7415,6 +7415,7 @@ ...@@ -7415,6 +7415,7 @@
#sys_var_dict["session_track_schema"] = {"id": 81, "name": "session_track_schema", "value": "1", "data_type": 5, "info": "specifies whether return schema change info in ok packet", "flags": 4099} #sys_var_dict["session_track_schema"] = {"id": 81, "name": "session_track_schema", "value": "1", "data_type": 5, "info": "specifies whether return schema change info in ok packet", "flags": 4099}
#sys_var_dict["session_track_system_variables"] = {"id": 82, "name": "session_track_system_variables", "value": "time_zone, autocommit, character_set_client, character_set_results, character_set_connection", "data_type": 22, "info": "specifies whether return system variables change info in ok packet", "flags": 4099} #sys_var_dict["session_track_system_variables"] = {"id": 82, "name": "session_track_system_variables", "value": "time_zone, autocommit, character_set_client, character_set_results, character_set_connection", "data_type": 22, "info": "specifies whether return system variables change info in ok packet", "flags": 4099}
#sys_var_dict["session_track_state_change"] = {"id": 83, "name": "session_track_state_change", "value": "0", "data_type": 5, "info": "specifies whether return session state change info in ok packet", "flags": 4099} #sys_var_dict["session_track_state_change"] = {"id": 83, "name": "session_track_state_change", "value": "0", "data_type": 5, "info": "specifies whether return session state change info in ok packet", "flags": 4099}
#sys_var_dict["default_storage_engine"] = {"id": 93, "name": "default_storage_engine", "value": "OceanBase", "data_type": 22, "info": "The default storage engine of OceanBase", "flags": 4099}
#sys_var_dict["ob_default_replica_num"] = {"id": 10000, "name": "ob_default_replica_num", "value": "1", "data_type": 5, "info": "The default replica number of table per zone if not specified when creating table.", "flags": 3} #sys_var_dict["ob_default_replica_num"] = {"id": 10000, "name": "ob_default_replica_num", "value": "1", "data_type": 5, "info": "The default replica number of table per zone if not specified when creating table.", "flags": 3}
#sys_var_dict["ob_interm_result_mem_limit"] = {"id": 10001, "name": "ob_interm_result_mem_limit", "value": "2147483648", "data_type": 5, "info": "Indicate how many bytes the interm result manager can alloc most for this tenant", "flags": 131} #sys_var_dict["ob_interm_result_mem_limit"] = {"id": 10001, "name": "ob_interm_result_mem_limit", "value": "2147483648", "data_type": 5, "info": "Indicate how many bytes the interm result manager can alloc most for this tenant", "flags": 131}
#sys_var_dict["ob_proxy_partition_hit"] = {"id": 10002, "name": "ob_proxy_partition_hit", "value": "1", "data_type": 5, "info": "Indicate whether sql stmt hit right partition, readonly to user, modify by ob", "flags": 22} #sys_var_dict["ob_proxy_partition_hit"] = {"id": 10002, "name": "ob_proxy_partition_hit", "value": "1", "data_type": 5, "info": "Indicate whether sql stmt hit right partition, readonly to user, modify by ob", "flags": 22}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册