pre get a position for sys var: _force_order_preserve_set
This commit is contained in:
parent
5ac41d01f7
commit
378b220933
18
deps/easy/src/io/easy_negotiation.c
vendored
18
deps/easy/src/io/easy_negotiation.c
vendored
@ -16,9 +16,9 @@
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
|
||||
const uint64_t g_support_eio_maigc[] = {
|
||||
0x12567348667799aa,
|
||||
0x1237734866785431,
|
||||
const uint64_t g_support_eio_maigc[] = {
|
||||
0x12567348667799aa,
|
||||
0x1237734866785431,
|
||||
0x5933893228167181,
|
||||
0x6683221dd298cc23,
|
||||
};
|
||||
@ -212,9 +212,9 @@ int net_send_negotiate_message(uint8_t negotiation_enable, int fd, uint64_t magi
|
||||
return ret;
|
||||
}
|
||||
|
||||
if ((ret = easy_socket_error(fd) ) != 0) {
|
||||
easy_info_log("retry! socket status is abnormal yet, fd:%d, addr:%s, err:%d.", fd, addr_str, ret);
|
||||
if (conn_has_error) *conn_has_error = 1;
|
||||
if ((ret = easy_socket_error(fd) ) != 0) {
|
||||
easy_info_log("retry! socket status is abnormal yet, fd:%d, addr:%s, err:%d.", fd, addr_str, ret);
|
||||
if (conn_has_error) *conn_has_error = 1;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -228,9 +228,9 @@ int net_send_negotiate_message(uint8_t negotiation_enable, int fd, uint64_t magi
|
||||
ne_msg.msg_body.io_thread_index, encode_len, addr_str);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
easy_info_log("negotiation not enabled!(addr:%s)", addr_str);
|
||||
}
|
||||
} else {
|
||||
easy_info_log("negotiation not enabled!(addr:%s)", addr_str);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -244,6 +244,7 @@ enum ObSysVarClassType
|
||||
SYS_VAR__OPTIMIZER_GATHER_STATS_ON_LOAD = 10138,
|
||||
SYS_VAR__SET_REVERSE_DBLINK_INFOS = 10139,
|
||||
SYS_VAR__SHOW_DDL_IN_COMPAT_MODE = 10140,
|
||||
SYS_VAR__FORCE_ORDER_PRESERVE_SET = 10141,
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -239,6 +239,7 @@ namespace share
|
||||
static const char* const OB_SV__OPTIMIZER_GATHER_STATS_ON_LOAD = "_optimizer_gather_stats_on_load";
|
||||
static const char* const OB_SV__SET_REVERSE_DBLINK_INFOS = "_set_reverse_dblink_infos";
|
||||
static const char* const OB_SV__SHOW_DDL_IN_COMPAT_MODE = "_show_ddl_in_compat_mode";
|
||||
static const char* const OB_SV__FORCE_ORDER_PRESERVE_SET = "_force_order_preserve_set";
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -125,6 +125,7 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_NAME[] = {
|
||||
"_enable_parallel_ddl",
|
||||
"_enable_parallel_dml",
|
||||
"_enable_parallel_query",
|
||||
"_force_order_preserve_set",
|
||||
"_force_parallel_ddl_dop",
|
||||
"_force_parallel_dml_dop",
|
||||
"_force_parallel_query_dop",
|
||||
@ -351,6 +352,7 @@ const ObSysVarClassType ObSysVarFactory::SYS_VAR_IDS_SORTED_BY_NAME[] = {
|
||||
SYS_VAR__ENABLE_PARALLEL_DDL,
|
||||
SYS_VAR__ENABLE_PARALLEL_DML,
|
||||
SYS_VAR__ENABLE_PARALLEL_QUERY,
|
||||
SYS_VAR__FORCE_ORDER_PRESERVE_SET,
|
||||
SYS_VAR__FORCE_PARALLEL_DDL_DOP,
|
||||
SYS_VAR__FORCE_PARALLEL_DML_DOP,
|
||||
SYS_VAR__FORCE_PARALLEL_QUERY_DOP,
|
||||
@ -792,7 +794,8 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_ID[] = {
|
||||
"ob_max_read_stale_time",
|
||||
"_optimizer_gather_stats_on_load",
|
||||
"_set_reverse_dblink_infos",
|
||||
"_show_ddl_in_compat_mode"
|
||||
"_show_ddl_in_compat_mode",
|
||||
"_force_order_preserve_set"
|
||||
};
|
||||
|
||||
bool ObSysVarFactory::sys_var_name_case_cmp(const char *name1, const ObString &name2)
|
||||
@ -1183,6 +1186,7 @@ int ObSysVarFactory::create_all_sys_vars()
|
||||
+ sizeof(ObSysVarOptimizerGatherStatsOnLoad)
|
||||
+ sizeof(ObSysVarSetReverseDblinkInfos)
|
||||
+ sizeof(ObSysVarShowDdlInCompatMode)
|
||||
+ sizeof(ObSysVarForceOrderPreserveSet)
|
||||
;
|
||||
void *ptr = NULL;
|
||||
if (OB_ISNULL(ptr = allocator_.alloc(total_mem_size))) {
|
||||
@ -3198,6 +3202,15 @@ int ObSysVarFactory::create_all_sys_vars()
|
||||
ptr = (void *)((char *)ptr + sizeof(ObSysVarShowDdlInCompatMode));
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarForceOrderPreserveSet())) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to new ObSysVarForceOrderPreserveSet", K(ret));
|
||||
} else {
|
||||
store_buf_[ObSysVarsToIdxMap::get_store_idx(static_cast<int64_t>(SYS_VAR__FORCE_ORDER_PRESERVE_SET))] = sys_var_ptr;
|
||||
ptr = (void *)((char *)ptr + sizeof(ObSysVarForceOrderPreserveSet));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return ret;
|
||||
@ -5677,6 +5690,17 @@ int ObSysVarFactory::create_sys_var(ObSysVarClassType sys_var_id, ObBasicSysVar
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SYS_VAR__FORCE_ORDER_PRESERVE_SET: {
|
||||
void *ptr = NULL;
|
||||
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarForceOrderPreserveSet)))) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to alloc memory", K(ret), K(sizeof(ObSysVarForceOrderPreserveSet)));
|
||||
} else if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarForceOrderPreserveSet())) {
|
||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||
LOG_ERROR("fail to new ObSysVarForceOrderPreserveSet", K(ret));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
|
@ -1612,6 +1612,13 @@ public:
|
||||
inline virtual ObSysVarClassType get_type() const { return SYS_VAR__SHOW_DDL_IN_COMPAT_MODE; }
|
||||
inline virtual const common::ObObj &get_global_default_value() const { return ObSysVariables::get_default_value(222); }
|
||||
};
|
||||
class ObSysVarForceOrderPreserveSet : public ObBoolSysVar
|
||||
{
|
||||
public:
|
||||
ObSysVarForceOrderPreserveSet() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {}
|
||||
inline virtual ObSysVarClassType get_type() const { return SYS_VAR__FORCE_ORDER_PRESERVE_SET; }
|
||||
inline virtual const common::ObObj &get_global_default_value() const { return ObSysVariables::get_default_value(223); }
|
||||
};
|
||||
|
||||
|
||||
class ObSysVarFactory
|
||||
@ -1631,7 +1638,7 @@ public:
|
||||
static const common::ObString get_sys_var_name_by_id(ObSysVarClassType sys_var_id);
|
||||
|
||||
const static int64_t MYSQL_SYS_VARS_COUNT = 97;
|
||||
const static int64_t OB_SYS_VARS_COUNT = 126;
|
||||
const static int64_t OB_SYS_VARS_COUNT = 127;
|
||||
const static int64_t ALL_SYS_VARS_COUNT = MYSQL_SYS_VARS_COUNT + OB_SYS_VARS_COUNT;
|
||||
|
||||
const static int16_t OB_SPECIFIC_SYS_VAR_ID_OFFSET = 10000;
|
||||
|
@ -2927,13 +2927,25 @@ static struct VarsInit{
|
||||
ObSysVars[222].alias_ = "OB_SV__SHOW_DDL_IN_COMPAT_MODE" ;
|
||||
}();
|
||||
|
||||
[&] (){
|
||||
ObSysVars[223].info_ = "can control the behavior of set query, when true, set query will generate a serial plan, which ensure the output order of result set is ordered " ;
|
||||
ObSysVars[223].name_ = "_force_order_preserve_set" ;
|
||||
ObSysVars[223].data_type_ = ObIntType ;
|
||||
ObSysVars[223].value_ = "0" ;
|
||||
ObSysVars[223].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::INFLUENCE_PLAN | ObSysVarFlag::NEED_SERIALIZE | ObSysVarFlag::ORACLE_ONLY | ObSysVarFlag::INVISIBLE ;
|
||||
ObSysVars[223].id_ = SYS_VAR__FORCE_ORDER_PRESERVE_SET ;
|
||||
cur_max_var_id = MAX(cur_max_var_id, static_cast<int64_t>(SYS_VAR__FORCE_ORDER_PRESERVE_SET)) ;
|
||||
ObSysVarsIdToArrayIdx[SYS_VAR__FORCE_ORDER_PRESERVE_SET] = 223 ;
|
||||
ObSysVars[223].alias_ = "OB_SV__FORCE_ORDER_PRESERVE_SET" ;
|
||||
}();
|
||||
|
||||
if (cur_max_var_id >= ObSysVarFactory::OB_MAX_SYS_VAR_ID) {
|
||||
HasInvalidSysVar = true;
|
||||
}
|
||||
}
|
||||
}vars_init;
|
||||
|
||||
static int64_t var_amount = 223;
|
||||
static int64_t var_amount = 224;
|
||||
|
||||
int64_t ObSysVariables::get_all_sys_var_count(){ return ObSysVarFactory::ALL_SYS_VARS_COUNT;}
|
||||
ObSysVarClassType ObSysVariables::get_sys_var_id(int64_t i){ return ObSysVars[i].id_;}
|
||||
|
@ -2956,5 +2956,17 @@
|
||||
"info_cn": "启用后, show create table 将展示与兼容模式严格兼容的结果",
|
||||
"background_cn": "",
|
||||
"ref_url": "/"
|
||||
},
|
||||
"_force_order_preserve_set": {
|
||||
"id": 10141,
|
||||
"name": "_force_order_preserve_set",
|
||||
"value": "0",
|
||||
"data_type": "bool",
|
||||
"info": "can control the behavior of set query, when true, set query will generate a serial plan, which ensure the output order of result set is ordered ",
|
||||
"flags": "GLOBAL | SESSION | INFLUENCE_PLAN | NEED_SERIALIZE | ORACLE_ONLY | INVISIBLE",
|
||||
"publish_version": "420",
|
||||
"info_cn": "用于控制set query的改写行为和计划生成逻辑,保证分支串行执行和结果集顺序",
|
||||
"background_cn": "",
|
||||
"ref_url": ""
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user