add error code, system variable placeholder
This commit is contained in:
@ -2347,6 +2347,7 @@ DEFINE_ERROR(OB_ERR_VALUES_CLAUSE_NEED_HAVE_COLUMN, -11000, ER_VALUES_CLAUSE_NEE
|
|||||||
DEFINE_ERROR(OB_ERR_VALUES_CLAUSE_CANNOT_USE_DEFAULT_VALUES, -11001, ER_VALUES_CLAUSE_CANNOT_USE_DEFAULT_VALUES, "HY000", "A VALUES clause cannot use DEFAULT values, unless used as a source in an INSERT statement.");
|
DEFINE_ERROR(OB_ERR_VALUES_CLAUSE_CANNOT_USE_DEFAULT_VALUES, -11001, ER_VALUES_CLAUSE_CANNOT_USE_DEFAULT_VALUES, "HY000", "A VALUES clause cannot use DEFAULT values, unless used as a source in an INSERT statement.");
|
||||||
DEFINE_ERROR_EXT(OB_WRONG_PARTITION_NAME, -11002, ER_WRONG_PARTITION_NAME, "HY000", "Incorrect partition name", "Incorrect partition name '%.*s'");
|
DEFINE_ERROR_EXT(OB_WRONG_PARTITION_NAME, -11002, ER_WRONG_PARTITION_NAME, "HY000", "Incorrect partition name", "Incorrect partition name '%.*s'");
|
||||||
DEFINE_ERROR_EXT(OB_ERR_PLUGIN_IS_NOT_LOADED, -11003, ER_PLUGIN_IS_NOT_LOADED, "HY000", "Plugin is not loaded", "Plugin '%.*s' is not loaded");
|
DEFINE_ERROR_EXT(OB_ERR_PLUGIN_IS_NOT_LOADED, -11003, ER_PLUGIN_IS_NOT_LOADED, "HY000", "Plugin is not loaded", "Plugin '%.*s' is not loaded");
|
||||||
|
//11004 : OB_EST_DEVIA_TOO_LARGE
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
// !!! text/blob || clob/blob erro code
|
// !!! text/blob || clob/blob erro code
|
||||||
|
|||||||
@ -262,6 +262,7 @@ enum ObSysVarClassType
|
|||||||
SYS_VAR__ENABLE_MYSQL_PL_PRIV_CHECK = 10156,
|
SYS_VAR__ENABLE_MYSQL_PL_PRIV_CHECK = 10156,
|
||||||
SYS_VAR_OB_ENABLE_PL_CACHE = 10157,
|
SYS_VAR_OB_ENABLE_PL_CACHE = 10157,
|
||||||
SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD = 10158,
|
SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD = 10158,
|
||||||
|
SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION = 10159,
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -257,6 +257,7 @@ namespace share
|
|||||||
static const char* const OB_SV__ENABLE_MYSQL_PL_PRIV_CHECK = "_enable_mysql_pl_priv_check";
|
static const char* const OB_SV__ENABLE_MYSQL_PL_PRIV_CHECK = "_enable_mysql_pl_priv_check";
|
||||||
static const char* const OB_SV_ENABLE_PL_CACHE = "ob_enable_pl_cache";
|
static const char* const OB_SV_ENABLE_PL_CACHE = "ob_enable_pl_cache";
|
||||||
static const char* const OB_SV_DEFAULT_LOB_INROW_THRESHOLD = "ob_default_lob_inrow_threshold";
|
static const char* const OB_SV_DEFAULT_LOB_INROW_THRESHOLD = "ob_default_lob_inrow_threshold";
|
||||||
|
static const char* const OB_SV__ENABLE_STORAGE_CARDINALITY_ESTIMATION = "_enable_storage_cardinality_estimation";
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -131,6 +131,7 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_NAME[] = {
|
|||||||
"_enable_parallel_ddl",
|
"_enable_parallel_ddl",
|
||||||
"_enable_parallel_dml",
|
"_enable_parallel_dml",
|
||||||
"_enable_parallel_query",
|
"_enable_parallel_query",
|
||||||
|
"_enable_storage_cardinality_estimation",
|
||||||
"_force_order_preserve_set",
|
"_force_order_preserve_set",
|
||||||
"_force_parallel_ddl_dop",
|
"_force_parallel_ddl_dop",
|
||||||
"_force_parallel_dml_dop",
|
"_force_parallel_dml_dop",
|
||||||
@ -375,6 +376,7 @@ const ObSysVarClassType ObSysVarFactory::SYS_VAR_IDS_SORTED_BY_NAME[] = {
|
|||||||
SYS_VAR__ENABLE_PARALLEL_DDL,
|
SYS_VAR__ENABLE_PARALLEL_DDL,
|
||||||
SYS_VAR__ENABLE_PARALLEL_DML,
|
SYS_VAR__ENABLE_PARALLEL_DML,
|
||||||
SYS_VAR__ENABLE_PARALLEL_QUERY,
|
SYS_VAR__ENABLE_PARALLEL_QUERY,
|
||||||
|
SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION,
|
||||||
SYS_VAR__FORCE_ORDER_PRESERVE_SET,
|
SYS_VAR__FORCE_ORDER_PRESERVE_SET,
|
||||||
SYS_VAR__FORCE_PARALLEL_DDL_DOP,
|
SYS_VAR__FORCE_PARALLEL_DDL_DOP,
|
||||||
SYS_VAR__FORCE_PARALLEL_DML_DOP,
|
SYS_VAR__FORCE_PARALLEL_DML_DOP,
|
||||||
@ -851,7 +853,8 @@ const char *ObSysVarFactory::SYS_VAR_NAMES_SORTED_BY_ID[] = {
|
|||||||
"_priv_control",
|
"_priv_control",
|
||||||
"_enable_mysql_pl_priv_check",
|
"_enable_mysql_pl_priv_check",
|
||||||
"ob_enable_pl_cache",
|
"ob_enable_pl_cache",
|
||||||
"ob_default_lob_inrow_threshold"
|
"ob_default_lob_inrow_threshold",
|
||||||
|
"_enable_storage_cardinality_estimation"
|
||||||
};
|
};
|
||||||
|
|
||||||
bool ObSysVarFactory::sys_var_name_case_cmp(const char *name1, const ObString &name2)
|
bool ObSysVarFactory::sys_var_name_case_cmp(const char *name1, const ObString &name2)
|
||||||
@ -1260,7 +1263,8 @@ int ObSysVarFactory::create_all_sys_vars()
|
|||||||
+ sizeof(ObSysVarPrivControl)
|
+ sizeof(ObSysVarPrivControl)
|
||||||
+ sizeof(ObSysVarEnableMysqlPlPrivCheck)
|
+ sizeof(ObSysVarEnableMysqlPlPrivCheck)
|
||||||
+ sizeof(ObSysVarObEnablePlCache)
|
+ sizeof(ObSysVarObEnablePlCache)
|
||||||
+ sizeof(ObSysVarDefaultLobInrowThreshold)
|
+ sizeof(ObSysVarObDefaultLobInrowThreshold)
|
||||||
|
+ sizeof(ObSysVarEnableStorageCardinalityEstimation)
|
||||||
;
|
;
|
||||||
void *ptr = NULL;
|
void *ptr = NULL;
|
||||||
if (OB_ISNULL(ptr = allocator_.alloc(total_mem_size))) {
|
if (OB_ISNULL(ptr = allocator_.alloc(total_mem_size))) {
|
||||||
@ -3430,12 +3434,21 @@ int ObSysVarFactory::create_all_sys_vars()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (OB_SUCC(ret)) {
|
if (OB_SUCC(ret)) {
|
||||||
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarDefaultLobInrowThreshold())) {
|
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarObDefaultLobInrowThreshold())) {
|
||||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||||
LOG_ERROR("fail to new ObSysVarDefaultLobInrowThreshold", K(ret));
|
LOG_ERROR("fail to new ObSysVarObDefaultLobInrowThreshold", K(ret));
|
||||||
} else {
|
} else {
|
||||||
store_buf_[ObSysVarsToIdxMap::get_store_idx(static_cast<int64_t>(SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD))] = sys_var_ptr;
|
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));
|
ptr = (void *)((char *)ptr + sizeof(ObSysVarObDefaultLobInrowThreshold));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (OB_SUCC(ret)) {
|
||||||
|
if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarEnableStorageCardinalityEstimation())) {
|
||||||
|
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||||
|
LOG_ERROR("fail to new ObSysVarEnableStorageCardinalityEstimation", K(ret));
|
||||||
|
} else {
|
||||||
|
store_buf_[ObSysVarsToIdxMap::get_store_idx(static_cast<int64_t>(SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION))] = sys_var_ptr;
|
||||||
|
ptr = (void *)((char *)ptr + sizeof(ObSysVarEnableStorageCardinalityEstimation));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6090,12 +6103,23 @@ int ObSysVarFactory::create_sys_var(ObIAllocator &allocator_, ObSysVarClassType
|
|||||||
}
|
}
|
||||||
case SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD: {
|
case SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD: {
|
||||||
void *ptr = NULL;
|
void *ptr = NULL;
|
||||||
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarDefaultLobInrowThreshold)))) {
|
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarObDefaultLobInrowThreshold)))) {
|
||||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||||
LOG_ERROR("fail to alloc memory", K(ret), K(sizeof(ObSysVarDefaultLobInrowThreshold)));
|
LOG_ERROR("fail to alloc memory", K(ret), K(sizeof(ObSysVarObDefaultLobInrowThreshold)));
|
||||||
} else if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarDefaultLobInrowThreshold())) {
|
} else if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarObDefaultLobInrowThreshold())) {
|
||||||
ret = OB_ALLOCATE_MEMORY_FAILED;
|
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||||
LOG_ERROR("fail to new ObSysVarDefaultLobInrowThreshold", K(ret));
|
LOG_ERROR("fail to new ObSysVarObDefaultLobInrowThreshold", K(ret));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION: {
|
||||||
|
void *ptr = NULL;
|
||||||
|
if (OB_ISNULL(ptr = allocator_.alloc(sizeof(ObSysVarEnableStorageCardinalityEstimation)))) {
|
||||||
|
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||||
|
LOG_ERROR("fail to alloc memory", K(ret), K(sizeof(ObSysVarEnableStorageCardinalityEstimation)));
|
||||||
|
} else if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarEnableStorageCardinalityEstimation())) {
|
||||||
|
ret = OB_ALLOCATE_MEMORY_FAILED;
|
||||||
|
LOG_ERROR("fail to new ObSysVarEnableStorageCardinalityEstimation", K(ret));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1733,14 +1733,21 @@ public:
|
|||||||
inline virtual ObSysVarClassType get_type() const { return SYS_VAR_OB_ENABLE_PL_CACHE; }
|
inline virtual ObSysVarClassType get_type() const { return SYS_VAR_OB_ENABLE_PL_CACHE; }
|
||||||
inline virtual const common::ObObj &get_global_default_value() const { return ObSysVariables::get_default_value(239); }
|
inline virtual const common::ObObj &get_global_default_value() const { return ObSysVariables::get_default_value(239); }
|
||||||
};
|
};
|
||||||
|
class ObSysVarObDefaultLobInrowThreshold : public ObIntSysVar
|
||||||
class ObSysVarDefaultLobInrowThreshold : public ObIntSysVar
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ObSysVarDefaultLobInrowThreshold() : ObIntSysVar(ObSysVarOnCheckFuncs::check_default_lob_inrow_threshold, NULL, NULL, NULL, NULL) {}
|
ObSysVarObDefaultLobInrowThreshold() : ObIntSysVar(ObSysVarOnCheckFuncs::check_default_lob_inrow_threshold, NULL, NULL, NULL, NULL) {}
|
||||||
inline virtual ObSysVarClassType get_type() const { return SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD; }
|
inline virtual ObSysVarClassType get_type() const { return SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD; }
|
||||||
inline virtual const common::ObObj &get_global_default_value() const { return ObSysVariables::get_default_value(240); }
|
inline virtual const common::ObObj &get_global_default_value() const { return ObSysVariables::get_default_value(240); }
|
||||||
};
|
};
|
||||||
|
class ObSysVarEnableStorageCardinalityEstimation : public ObBoolSysVar
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ObSysVarEnableStorageCardinalityEstimation() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {}
|
||||||
|
inline virtual ObSysVarClassType get_type() const { return SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION; }
|
||||||
|
inline virtual const common::ObObj &get_global_default_value() const { return ObSysVariables::get_default_value(241); }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
class ObSysVarFactory
|
class ObSysVarFactory
|
||||||
{
|
{
|
||||||
@ -1760,7 +1767,7 @@ public:
|
|||||||
static const common::ObString get_sys_var_name_by_id(ObSysVarClassType sys_var_id);
|
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 MYSQL_SYS_VARS_COUNT = 97;
|
||||||
const static int64_t OB_SYS_VARS_COUNT = 144;
|
const static int64_t OB_SYS_VARS_COUNT = 145;
|
||||||
const static int64_t ALL_SYS_VARS_COUNT = MYSQL_SYS_VARS_COUNT + OB_SYS_VARS_COUNT;
|
const static int64_t ALL_SYS_VARS_COUNT = MYSQL_SYS_VARS_COUNT + OB_SYS_VARS_COUNT;
|
||||||
const static int64_t INVALID_MAX_READ_STALE_TIME = -1;
|
const static int64_t INVALID_MAX_READ_STALE_TIME = -1;
|
||||||
|
|
||||||
|
|||||||
@ -3393,13 +3393,26 @@ static struct VarsInit{
|
|||||||
ObSysVars[240].info_ = "default lob inrow threshold config" ;
|
ObSysVars[240].info_ = "default lob inrow threshold config" ;
|
||||||
ObSysVars[240].name_ = "ob_default_lob_inrow_threshold" ;
|
ObSysVars[240].name_ = "ob_default_lob_inrow_threshold" ;
|
||||||
ObSysVars[240].data_type_ = ObIntType ;
|
ObSysVars[240].data_type_ = ObIntType ;
|
||||||
ObSysVars[240].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE;
|
ObSysVars[240].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ;
|
||||||
ObSysVars[240].on_check_and_convert_func_ = "ObSysVarOnCheckFuncs::check_default_lob_inrow_threshold" ;
|
ObSysVars[240].on_check_and_convert_func_ = "ObSysVarOnCheckFuncs::check_default_lob_inrow_threshold" ;
|
||||||
ObSysVars[240].id_ = SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD ;
|
ObSysVars[240].id_ = SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD ;
|
||||||
cur_max_var_id = MAX(cur_max_var_id, static_cast<int64_t>(SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD)) ;
|
cur_max_var_id = MAX(cur_max_var_id, static_cast<int64_t>(SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD)) ;
|
||||||
ObSysVarsIdToArrayIdx[SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD] = 240 ;
|
ObSysVarsIdToArrayIdx[SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD] = 240 ;
|
||||||
ObSysVars[240].base_value_ = "4096" ;
|
ObSysVars[240].base_value_ = "4096" ;
|
||||||
ObSysVars[240].alias_ = "OB_SV_DEFAULT_LOB_INROW_THRESHOLD" ;
|
ObSysVars[240].alias_ = "OB_SV_DEFAULT_LOB_INROW_THRESHOLD" ;
|
||||||
|
}();
|
||||||
|
|
||||||
|
[&] (){
|
||||||
|
ObSysVars[241].default_value_ = "1" ;
|
||||||
|
ObSysVars[241].info_ = "whether use storage cardinality estimation" ;
|
||||||
|
ObSysVars[241].name_ = "_enable_storage_cardinality_estimation" ;
|
||||||
|
ObSysVars[241].data_type_ = ObIntType ;
|
||||||
|
ObSysVars[241].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::NEED_SERIALIZE ;
|
||||||
|
ObSysVars[241].id_ = SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION ;
|
||||||
|
cur_max_var_id = MAX(cur_max_var_id, static_cast<int64_t>(SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION)) ;
|
||||||
|
ObSysVarsIdToArrayIdx[SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION] = 241 ;
|
||||||
|
ObSysVars[241].base_value_ = "1" ;
|
||||||
|
ObSysVars[241].alias_ = "OB_SV__ENABLE_STORAGE_CARDINALITY_ESTIMATION" ;
|
||||||
}();
|
}();
|
||||||
|
|
||||||
if (cur_max_var_id >= ObSysVarFactory::OB_MAX_SYS_VAR_ID) {
|
if (cur_max_var_id >= ObSysVarFactory::OB_MAX_SYS_VAR_ID) {
|
||||||
@ -3408,7 +3421,7 @@ static struct VarsInit{
|
|||||||
}
|
}
|
||||||
}vars_init;
|
}vars_init;
|
||||||
|
|
||||||
static int64_t var_amount = 241;
|
static int64_t var_amount = 242;
|
||||||
|
|
||||||
int64_t ObSysVariables::get_all_sys_var_count(){ return ObSysVarFactory::ALL_SYS_VARS_COUNT;}
|
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_;}
|
ObSysVarClassType ObSysVariables::get_sys_var_id(int64_t i){ return ObSysVars[i].id_;}
|
||||||
|
|||||||
@ -3432,5 +3432,18 @@
|
|||||||
"info_cn": "",
|
"info_cn": "",
|
||||||
"background_cn": "",
|
"background_cn": "",
|
||||||
"ref_url": ""
|
"ref_url": ""
|
||||||
|
},
|
||||||
|
"_enable_storage_cardinality_estimation": {
|
||||||
|
"id": 10159,
|
||||||
|
"name": "_enable_storage_cardinality_estimation",
|
||||||
|
"default_value": "1",
|
||||||
|
"base_value": "1",
|
||||||
|
"data_type": "bool",
|
||||||
|
"info": "whether use storage cardinality estimation",
|
||||||
|
"flags": "GLOBAL | SESSION | NEED_SERIALIZE",
|
||||||
|
"publish_version": "422",
|
||||||
|
"info_cn": "",
|
||||||
|
"background_cn": "",
|
||||||
|
"ref_url": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user