diff --git a/cmake/module_check/module_layers.conf b/cmake/module_check/module_layers.conf index 0272d1125..078a1b9bd 100644 --- a/cmake/module_check/module_layers.conf +++ b/cmake/module_check/module_layers.conf @@ -55,7 +55,7 @@ src/storage/tx/ob_trans_id.h 2 # ai model pure value type, depends only on lib, logically marked L2 src/share/ai_service/ob_ai_model_info.h 2 # q module pure forward-declaration header (impl stays in quarantine), logically marked L2 -src/share/external_table/ob_external_file_location_basic.h 2 +src/share/vector/ob_vector_cmp_func_basic.h 2 # load data dedup-action pure enum, zero deps, logically marked L2 src/sql/resolver/cmd/ob_load_dup_action_type.h 2 # tablelock owner pure value type (enum+ID class), depends only on lib+def header, logically marked L2 diff --git a/deps/oblib/src/common/ob_common_types.h b/deps/oblib/src/common/ob_common_types.h index da0f69f38..cd2cb6c8a 100644 --- a/deps/oblib/src/common/ob_common_types.h +++ b/deps/oblib/src/common/ob_common_types.h @@ -53,6 +53,7 @@ struct ObQueryFlag #define OBSF_BIT_IS_LOOKUP_FOR_4377 1 #define OBSF_BIT_SKIP_4377_FOR_ASYNC_INDEX_LOOKUP 1 #define OBSF_BIT_FOREIGN_KEY_CHECK 1 +#define OBSF_BIT_ENABLE_RICH_FORMAT 1 #define OBSF_BIT_IS_MDS_QUERY 1 #define OBSF_BIT_IS_SELECT_FOLLOWER 1 #define OBSF_BIT_ENABLE_LOB_PREFETCH 1 @@ -79,6 +80,7 @@ struct ObQueryFlag static const uint64_t OBSF_MASK_IGNORE_TRANS_STAT = (0x1UL << OBSF_BIT_IGNORE_TRANS_STAT) - 1; static const uint64_t OBSF_MASK_IS_SSTABLE_CUT = (0x1UL << OBSF_BIT_IS_SSTABLE_CUT) - 1; static const uint64_t OBSF_MASK_SKIP_READ_LOB = (0x1UL << OBSF_BIT_SKIP_READ_LOB) - 1; + static const uint64_t OBSF_MASK_ENABLE_RICH_FORMAT = (0x1UL << OBSF_BIT_ENABLE_RICH_FORMAT) - 1; static const uint64_t OBSF_MASK_FOR_FOREIGN_KEY_CHECK = (0x1UL << OBSF_BIT_FOREIGN_KEY_CHECK) - 1; static const uint64_t OBSF_MASK_IS_MDS_QUERY = (0x1UL << OBSF_BIT_IS_MDS_QUERY) - 1; static const uint64_t OBSF_MASK_IS_SELECT_FOLLOWER = (0x1UL << OBSF_BIT_IS_SELECT_FOLLOWER) - 1; @@ -140,6 +142,7 @@ struct ObQueryFlag uint64_t skip_4377_for_async_index_lookup_ : OBSF_BIT_SKIP_4377_FOR_ASYNC_INDEX_LOOKUP; uint64_t for_foreign_key_check_ : OBSF_BIT_FOREIGN_KEY_CHECK; uint64_t is_select_follower_ : OBSF_BIT_IS_SELECT_FOLLOWER; + uint64_t enable_rich_format_ : OBSF_BIT_ENABLE_RICH_FORMAT; uint64_t is_mds_query_ : OBSF_BIT_IS_MDS_QUERY; uint64_t enable_lob_prefetch_ : OBSF_BIT_ENABLE_LOB_PREFETCH; uint64_t is_bare_row_scan_ : OBSF_BIT_IS_BARE_ROW_SCAN; // 1: to scan mult version row directly without compact. @@ -206,8 +209,10 @@ struct ObQueryFlag inline uint64_t get_join_type() const { return join_type_; } inline bool is_multi_version_minor_merge() const { return multi_version_minor_merge_; } inline bool is_need_feedback() const { return is_need_feedback_; } + inline bool is_enable_rich_format() const { return enable_rich_format_; } inline bool is_skip_running_tx() const { return skip_running_tx_; } inline void set_skip_running_tx(const bool skip) { skip_running_tx_ = skip ? 1 : 0; } + inline void set_enable_rich_format() { enable_rich_format_ = true; } inline void set_not_use_row_cache() { use_row_cache_ = DoNotUseCache; } inline void set_not_use_block_cache() { use_block_cache_ = DoNotUseCache; } inline void set_not_use_block_index_cache() { use_block_index_cache_ = DoNotUseCache; } @@ -266,6 +271,7 @@ struct ObQueryFlag "is_lookup_for_4377", is_lookup_for_4377_, "skip_4377_for_async_index_lookup", skip_4377_for_async_index_lookup_, "is_bare_row_scan", is_bare_row_scan_, + "enable_rich_format", enable_rich_format_, "is_for_foreign_key_check", for_foreign_key_check_, "is_mds_query", is_mds_query_, "is_select_follower", is_select_follower_, diff --git a/deps/oblib/src/lib/utility/ob_tracepoint_def.h b/deps/oblib/src/lib/utility/ob_tracepoint_def.h index 87cf10ab2..be2430b0a 100644 --- a/deps/oblib/src/lib/utility/ob_tracepoint_def.h +++ b/deps/oblib/src/lib/utility/ob_tracepoint_def.h @@ -176,6 +176,7 @@ GLOBAL_ERRSIM_POINT_DEF(319, EN_DAS_SIMULATE_INDEX_MERGE_MODE, ""); GLOBAL_ERRSIM_POINT_DEF(351, EN_REPLAY_STORAGE_SCHEMA_FAILURE, ""); GLOBAL_ERRSIM_POINT_DEF(352, EN_SKIP_GET_STORAGE_SCHEMA, ""); +GLOBAL_ERRSIM_POINT_DEF(353, EN_DISABLE_RICH_FORMAT_IN_STORAGE, ""); GLOBAL_ERRSIM_POINT_DEF(360, EN_PREVENT_SYNC_REPORT, ""); GLOBAL_ERRSIM_POINT_DEF(361, EN_PREVENT_ASYNC_REPORT, ""); @@ -373,16 +374,29 @@ GLOBAL_ERRSIM_POINT_DEF(2104, EN_ENABLE_ORA_DECINT_CONST, "wether to parse const GLOBAL_ERRSIM_POINT_DEF(2105, EN_ENABLE_CLEAN_INTERM_RES, "Used to control whether interm results are cleaned up in exceptional circumstances."); GLOBAL_ERRSIM_POINT_DEF(2106, EN_UNIQ_TASK_QUEUE_GET_GROUP_FAIL, ""); +GLOBAL_ERRSIM_POINT_DEF(2200, EN_DISABLE_VEC_SORT, "Used to control whether to turn off the vectorization 2.0 sort operator. It is turned on by default."); +GLOBAL_ERRSIM_POINT_DEF(2201, EN_DISABLE_VEC_HASH_DISTINCT, "Used to control whether to turn off the vectorization 2.0 hash distinct operator. It is turned on by default."); +GLOBAL_ERRSIM_POINT_DEF(2202, EN_DISABLE_VEC_HASH_JOIN, "Used to control whether to turn off the vectorization 2.0 when use Hash Join Operator"); +GLOBAL_ERRSIM_POINT_DEF(2203, EN_DISABLE_VEC_HASH_GROUP_BY, "Used to control whether to turn off the vectorization 2.0 when use Hash Group By Operator"); +GLOBAL_ERRSIM_POINT_DEF(2204, EN_DISABLE_VEC_SCALAR_GROUP_BY, "wether to use scalar groupby operator of vectorization 2.0"); +GLOBAL_ERRSIM_POINT_DEF(2205, EN_DTL_OPTION, "Control DTL Vectorization 2.0 format"); GLOBAL_ERRSIM_POINT_DEF(2206, EN_ENABLE_RANDOM_BATCH_SIZE, "Used to random batch size in vectorization"); +GLOBAL_ERRSIM_POINT_DEF(2207, EN_ENABLE_VECTOR_CAST, "wether to use casting functions of vectorization 2.0"); GLOBAL_ERRSIM_POINT_DEF(2208, EN_DISABLE_SORTKEY_SEPARATELY, "Used to control whether to turn off the separate storage of sort keys and addon fields. It is enabled by default."); +GLOBAL_ERRSIM_POINT_DEF(2209, EN_ENABLE_VECTOR_IN, "Used to control whether the capability for in-expr vectorization 2.0 is enabled."); GLOBAL_ERRSIM_POINT_DEF(2210, EN_SQL_MEMORY_MRG_OPTION, "Control automatic memory management global bound size"); GLOBAL_ERRSIM_POINT_DEF(2211, EN_ENABLE_RANDOM_TSC, "wether to randomize batch_size & skips of table scan's output "); +GLOBAL_ERRSIM_POINT_DEF(2213, EN_DISABLE_VEC_MERGE_GBY, "Used to control whether to turn off the vectorization 2.0 merge group by operator. It is turned on by default."); +GLOBAL_ERRSIM_POINT_DEF(2214, EN_DISABLE_VEC_MERGE_JOIN, "Used to control whether to turn off the vectorization 2.0 when use Merge Join Operator"); GLOBAL_ERRSIM_POINT_DEF(2302, EN_DISABLE_HASH_BASE_DISTINCT, ""); +GLOBAL_ERRSIM_POINT_DEF(2303, EN_DISABLE_VEC_WINDOW_FUNCTION, "Disable window function operator of vectorization 2.0"); GLOBAL_ERRSIM_POINT_DEF(2304, EN_FORCE_WINFUNC_STORE_DUMP, "Force to dump row store of window function operator"); GLOBAL_ERRSIM_POINT_DEF(2305, EN_TRACEPOINT_TEST, "For testing new versions of tracepoint"); +GLOBAL_ERRSIM_POINT_DEF(2306, EN_DISABLE_VEC_MERGE_DISTINCT, "Used to control whether to turn off the vectorization 2.0 merge distinct operator. It is turned on by default."); // force dump GLOBAL_ERRSIM_POINT_DEF(2400, EN_SQL_FORCE_DUMP, "For testing force dump once"); +GLOBAL_ERRSIM_POINT_DEF(2401, EN_TEST_FOR_HASH_UNION, "Used to control whether to turn off the vectorization 2.0 hash set operator. It is turned on by default."); GLOBAL_ERRSIM_POINT_DEF(2501, EN_CHECK_SORT_CMP, "Used to check the legality of the compare method for std::sort"); // PL begin 2550 - 2600 diff --git a/src/observer/dbms_scheduler/ob_dbms_sched_job_executor.cpp b/src/observer/dbms_scheduler/ob_dbms_sched_job_executor.cpp index da6fa3ec2..4c0d94ad8 100644 --- a/src/observer/dbms_scheduler/ob_dbms_sched_job_executor.cpp +++ b/src/observer/dbms_scheduler/ob_dbms_sched_job_executor.cpp @@ -93,6 +93,7 @@ int ObDBMSSchedJobExecutor::init_session( user_info->get_user_name(), user_info->get_host_name_str(), user_info->get_user_id())); OX (session.set_priv_user_id(user_info->get_user_id())); OX (session.set_user_priv_set(user_info->get_priv_set())); + OX (session.init_use_rich_format()); OZ (schema_guard.get_db_priv_set(user_info->get_user_id(), database_name, db_priv_set)); OX (session.set_db_priv_set(db_priv_set)); OX (session.get_enable_role_array().reuse()); diff --git a/src/observer/mysql/obmp_connect.cpp b/src/observer/mysql/obmp_connect.cpp index eea23575e..de608a52b 100644 --- a/src/observer/mysql/obmp_connect.cpp +++ b/src/observer/mysql/obmp_connect.cpp @@ -122,6 +122,7 @@ int ObMPConnect::init_process_single_stmt(const ObMultiStmtItem &multi_stmt_item ObArenaAllocator allocator(ObModIds::OB_SQL_SESSION); ObSqlCtx ctx; ctx.exec_type_ = MpQuery; + session.init_use_rich_format(); if (OB_FAIL(init_process_var(ctx, multi_stmt_item, session))) { LOG_WARN("init process var failed.", K(ret), K(multi_stmt_item)); } else if (OB_FAIL(gctx_.schema_service_->get_runtime_schema_guard( diff --git a/src/observer/mysql/obmp_query.cpp b/src/observer/mysql/obmp_query.cpp index 71f213616..a7a57ecce 100644 --- a/src/observer/mysql/obmp_query.cpp +++ b/src/observer/mysql/obmp_query.cpp @@ -85,6 +85,7 @@ int ObMPQuery::process() ObSQLSessionInfo &session = *sess; ObSQLSessionInfo::LockGuard lock_guard(session.get_query_lock()); session.set_current_trace_id(ObCurTraceId::get_trace_id()); + session.init_use_rich_format(); if (OB_SUCC(ret)) { int64_t database_schema_version = 0; session.set_thread_id(GETTID()); diff --git a/src/observer/mysql/obmp_stmt_close.cpp b/src/observer/mysql/obmp_stmt_close.cpp index e5e81d717..32062f396 100644 --- a/src/observer/mysql/obmp_stmt_close.cpp +++ b/src/observer/mysql/obmp_stmt_close.cpp @@ -67,6 +67,7 @@ int ObMPStmtClose::process() } else { const ObMySQLRawPacket &pkt = reinterpret_cast(req_->get_packet()); ObSQLSessionInfo::LockGuard lock_guard(session->get_query_lock()); + session->init_use_rich_format(); LOG_TRACE("close ps stmt or cursor", K_(stmt_id), K(session->get_server_sid())); if (is_cursor_close()) { if (OB_FAIL(session->close_cursor(stmt_id_))) { diff --git a/src/observer/mysql/obmp_stmt_execute.cpp b/src/observer/mysql/obmp_stmt_execute.cpp index ba5a4626d..66088f336 100644 --- a/src/observer/mysql/obmp_stmt_execute.cpp +++ b/src/observer/mysql/obmp_stmt_execute.cpp @@ -25,7 +25,6 @@ #include "rpc/obmysql/packet/ompk_field.h" #include "rpc/obmysql/packet/ompk_row.h" #include "observer/mysql/obsm_row.h" -#include "share/ob_lob_access_utils.h" #include "share/ob_time_utility2.h" #include "sql/ob_sql.h" #include "observer/omt/ob_server_runtime.h" @@ -1635,6 +1634,7 @@ int ObMPStmtExecute::process() ObSQLSessionInfo::LockGuard lock_guard(session.get_query_lock()); SQL_INFO_GUARD(ctx_.cur_sql_, ObString(ctx_.sql_id_)); session.set_current_trace_id(ObCurTraceId::get_trace_id()); + session.init_use_rich_format(); session.get_raw_audit_record().request_memory_used_ = 0; observer::ObProcessMallocCallback pmcb(0, session.get_raw_audit_record().request_memory_used_); diff --git a/src/observer/mysql/obmp_stmt_fetch.cpp b/src/observer/mysql/obmp_stmt_fetch.cpp index a2faf0a0c..99aab5f59 100644 --- a/src/observer/mysql/obmp_stmt_fetch.cpp +++ b/src/observer/mysql/obmp_stmt_fetch.cpp @@ -17,7 +17,6 @@ #define USING_LOG_PREFIX SERVER #include "observer/mysql/obmp_stmt_fetch.h" #include "observer/mysql/obsm_utils.h" -#include "share/ob_lob_access_utils.h" #include "sql/ob_sql.h" #include "observer/omt/ob_server_runtime.h" #include "observer/mysql/ob_sync_plan_driver.h" @@ -560,6 +559,7 @@ int ObMPStmtFetch::process() THIS_WORKER.set_session(sess); ObSQLSessionInfo::LockGuard lock_guard(session.get_query_lock()); session.set_current_trace_id(ObCurTraceId::get_trace_id()); + session.init_use_rich_format(); session.get_raw_audit_record().request_memory_used_ = 0; observer::ObProcessMallocCallback pmcb(0, session.get_raw_audit_record().request_memory_used_); diff --git a/src/observer/mysql/obmp_stmt_prepare.cpp b/src/observer/mysql/obmp_stmt_prepare.cpp index b2688e27f..2aabffd5b 100644 --- a/src/observer/mysql/obmp_stmt_prepare.cpp +++ b/src/observer/mysql/obmp_stmt_prepare.cpp @@ -151,6 +151,7 @@ int ObMPStmtPrepare::process() ObSQLSessionInfo::LockGuard lock_guard(session.get_query_lock()); SQL_INFO_GUARD(ctx_.cur_sql_, ObString(ctx_.sql_id_)); session.set_current_trace_id(ObCurTraceId::get_trace_id()); + session.init_use_rich_format(); session.get_raw_audit_record().request_memory_used_ = 0; observer::ObProcessMallocCallback pmcb(0, session.get_raw_audit_record().request_memory_used_); diff --git a/src/observer/mysql/obmp_stmt_send_long_data.cpp b/src/observer/mysql/obmp_stmt_send_long_data.cpp index dcc61a714..7b8d77bbb 100644 --- a/src/observer/mysql/obmp_stmt_send_long_data.cpp +++ b/src/observer/mysql/obmp_stmt_send_long_data.cpp @@ -119,6 +119,7 @@ int ObMPStmtSendLongData::process() THIS_WORKER.set_session(sess); ObSQLSessionInfo::LockGuard lock_guard(session.get_query_lock()); session.set_current_trace_id(ObCurTraceId::get_trace_id()); + session.init_use_rich_format(); session.get_raw_audit_record().request_memory_used_ = 0; observer::ObProcessMallocCallback pmcb(0, session.get_raw_audit_record().request_memory_used_); diff --git a/src/observer/ob_inner_sql_connection.cpp b/src/observer/ob_inner_sql_connection.cpp index c176ff26a..925cc383f 100644 --- a/src/observer/ob_inner_sql_connection.cpp +++ b/src/observer/ob_inner_sql_connection.cpp @@ -369,6 +369,7 @@ int ObInnerSQLConnection::init_session_info( //TODO shengle ? session->get_ddl_info().set_is_ddl(is_ddl); session->reset_timezone(); + session->init_use_rich_format(); } } } diff --git a/src/observer/scheduler/ob_dag_scheduler.cpp b/src/observer/scheduler/ob_dag_scheduler.cpp index 4ff3fc596..c8f58c038 100644 --- a/src/observer/scheduler/ob_dag_scheduler.cpp +++ b/src/observer/scheduler/ob_dag_scheduler.cpp @@ -2281,9 +2281,7 @@ int ObDagPrioScheduler::sys_task_start(ObIDag &dag) sys_task_status.task_type_ = OB_DAG_TYPES[dag.get_type()].sys_task_type_; // allow comment truncation, no need to set ret - char comment[OB_MAX_TASK_COMMENT_LENGTH] = ""; - (void) dag.fill_comment(comment, sizeof(comment)); - sys_task_status.comment_.assign_ptr(comment, strlen(comment)); + (void) dag.fill_comment(sys_task_status.comment_,sizeof(sys_task_status.comment_)); if (OB_SUCCESS != (ret = ObSysTaskStatMgr::get_instance().add_task(sys_task_status))) { COMMON_LOG(WARN, "failed to add sys task", K(ret), K(sys_task_status)); } else if (OB_SUCCESS != (ret = dag.set_dag_id(sys_task_status.task_id_))) { // may generate task_id in ObSysTaskStatMgr::add_task diff --git a/src/pl/sys_package/ob_dbms_xplan.cpp b/src/pl/sys_package/ob_dbms_xplan.cpp index 69fbe596f..dffac3dfd 100644 --- a/src/pl/sys_package/ob_dbms_xplan.cpp +++ b/src/pl/sys_package/ob_dbms_xplan.cpp @@ -17,7 +17,6 @@ #define USING_LOG_PREFIX SQL_ENG #include "ob_dbms_xplan.h" #include "observer/ob_inner_sql_connection_pool.h" -#include "share/ob_lob_access_utils.h" #include "sql/ob_spi.h" #include "sql/resolver/ddl/ob_explain_stmt.h" // ObExplainDisplayOpt diff --git a/src/share/datum/ob_datum_funcs.cpp b/src/share/datum/ob_datum_funcs.cpp index d414e0a4e..3fd847f1b 100644 --- a/src/share/datum/ob_datum_funcs.cpp +++ b/src/share/datum/ob_datum_funcs.cpp @@ -21,6 +21,7 @@ #include "common/object/ob_obj_funcs.h" #include "share/ob_version_parser.h" #include "sql/engine/expr/ob_expr_basic_funcs.h" +#include "share/vector/ob_vector_cmp_func_basic.h" namespace oceanbase { namespace common { @@ -211,6 +212,11 @@ ObExprBasicFuncs* ObDatumFuncs::get_basic_func(const ObObjType type, // set row cmp funcs // FIXME: add precision here } + NullSafeRowCmpFunc null_first_cmp = nullptr, null_last_cmp = nullptr; + // for inner enum, cmp function is null(through pure forwarding,avoids depending on sql headers) + common::ob_vector_cmp_get_cmp_set(type, cs_type, scale, precision, null_first_cmp, null_last_cmp); + res->row_null_first_cmp_ = null_first_cmp; + res->row_null_last_cmp_ = null_last_cmp; } else { LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid obj type", K(type)); } diff --git a/src/share/object/ob_obj_cast.cpp b/src/share/object/ob_obj_cast.cpp index 1f9c57fd4..54147ba57 100644 --- a/src/share/object/ob_obj_cast.cpp +++ b/src/share/object/ob_obj_cast.cpp @@ -23,7 +23,6 @@ #include "ob_obj_cast.h" #include "common/json_type/ob_json_parse.h" // ObJsonParser, previously hidden behind the exec_ctx include chain(free within lib) #include "share/object/ob_obj_cast_util.h" -#include "share/ob_lob_access_utils.h" #include "share/ob_json_access_utils.h" #include "share/object/ob_obj_cast_hooks.h" #include "share/object/ob_array_cast.h" diff --git a/src/share/system_variable/ob_sys_var_class_type.h b/src/share/system_variable/ob_sys_var_class_type.h index ed8d26e91..2fe7726b9 100644 --- a/src/share/system_variable/ob_sys_var_class_type.h +++ b/src/share/system_variable/ob_sys_var_class_type.h @@ -191,6 +191,7 @@ enum ObSysVarClassType SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION = 10159, SYS_VAR_LC_TIME_NAMES = 10160, SYS_VAR_ACTIVATE_ALL_ROLES_ON_LOGIN = 10161, + SYS_VAR__ENABLE_RICH_VECTOR_FORMAT = 10162, SYS_VAR_INNODB_STATS_PERSISTENT = 10163, SYS_VAR_DEBUG = 10164, SYS_VAR_INNODB_CHANGE_BUFFERING_DEBUG = 10165, diff --git a/src/share/system_variable/ob_sys_var_meta.cpp b/src/share/system_variable/ob_sys_var_meta.cpp index e23512830..e0fa12e4f 100644 --- a/src/share/system_variable/ob_sys_var_meta.cpp +++ b/src/share/system_variable/ob_sys_var_meta.cpp @@ -30,6 +30,7 @@ const char *ObSysVarMeta::SYS_VAR_NAMES_SORTED_BY_NAME[] = { "_enable_parallel_ddl", "_enable_parallel_dml", "_enable_parallel_query", + "_enable_rich_vector_format", "_enable_storage_cardinality_estimation", "_force_parallel_ddl_dop", "_force_parallel_dml_dop", @@ -752,6 +753,7 @@ const ObSysVarClassType ObSysVarMeta::SYS_VAR_IDS_SORTED_BY_NAME[] = { SYS_VAR__ENABLE_PARALLEL_DDL, SYS_VAR__ENABLE_PARALLEL_DML, SYS_VAR__ENABLE_PARALLEL_QUERY, + SYS_VAR__ENABLE_RICH_VECTOR_FORMAT, SYS_VAR__ENABLE_STORAGE_CARDINALITY_ESTIMATION, SYS_VAR__FORCE_PARALLEL_DDL_DOP, SYS_VAR__FORCE_PARALLEL_DML_DOP, @@ -1636,6 +1638,7 @@ const char *ObSysVarMeta::SYS_VAR_NAMES_SORTED_BY_ID[] = { "_enable_storage_cardinality_estimation", "lc_time_names", "activate_all_roles_on_login", + "_enable_rich_vector_format", "innodb_stats_persistent", "debug", "innodb_change_buffering_debug", diff --git a/src/share/system_variable/ob_sys_var_meta.h b/src/share/system_variable/ob_sys_var_meta.h index ce2c3f5ff..b571a3133 100644 --- a/src/share/system_variable/ob_sys_var_meta.h +++ b/src/share/system_variable/ob_sys_var_meta.h @@ -29,7 +29,7 @@ class ObSysVarMeta { public: const static int64_t MYSQL_SYS_VARS_COUNT = 99; - const static int64_t OB_SYS_VARS_COUNT = 620; + const static int64_t OB_SYS_VARS_COUNT = 621; 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; diff --git a/src/share/system_variable/ob_system_variable_alias.h b/src/share/system_variable/ob_system_variable_alias.h index 7f9eee9b5..2b0d232ee 100644 --- a/src/share/system_variable/ob_system_variable_alias.h +++ b/src/share/system_variable/ob_system_variable_alias.h @@ -186,6 +186,7 @@ namespace share static const char* const OB_SV__ENABLE_STORAGE_CARDINALITY_ESTIMATION = "_enable_storage_cardinality_estimation"; static const char* const OB_SV_LC_TIME_NAMES = "lc_time_names"; static const char* const OB_SV_ACTIVATE_ALL_ROLES_ON_LOGIN = "activate_all_roles_on_login"; + static const char* const OB_SV__ENABLE_RICH_VECTOR_FORMAT = "_enable_rich_vector_format"; static const char* const OB_SV_INNODB_STATS_PERSISTENT = "innodb_stats_persistent"; static const char* const OB_SV_DEBUG = "debug"; static const char* const OB_SV_INNODB_CHANGE_BUFFERING_DEBUG = "innodb_change_buffering_debug"; diff --git a/src/share/system_variable/ob_system_variable_init.cpp b/src/share/system_variable/ob_system_variable_init.cpp index 4d6d72f06..881c8ad83 100644 --- a/src/share/system_variable/ob_system_variable_init.cpp +++ b/src/share/system_variable/ob_system_variable_init.cpp @@ -71,6 +71,7 @@ const ObSysVarClassType ESSENTIAL_SYS_VARS[] = { SYS_VAR_PARALLEL_DEGREE_LIMIT, // parallel_degree_limit SYS_VAR_PARALLEL_MIN_SCAN_TIME_THRESHOLD, // parallel_min_scan_time_threshold SYS_VAR_RUNTIME_FILTER_TYPE, // runtime_filter_type + SYS_VAR__ENABLE_RICH_VECTOR_FORMAT, // _enable_rich_vector_format SYS_VAR_CARDINALITY_ESTIMATION_MODEL, // cardinality_estimation_model SYS_VAR_DEFAULT_COLLATION_FOR_UTF8MB4, // default_collation_for_utf8mb4 SYS_VAR__PUSH_JOIN_PREDICATE, // _push_join_predicate @@ -2440,7475 +2441,7488 @@ static struct VarsInit{ [&] (){ ObSysVars[166].default_value_ = "1" ; - ObSysVars[166].info_ = "Specifies whether InnoDB index statistics are persisted to disk." ; - ObSysVars[166].name_ = "innodb_stats_persistent" ; + ObSysVars[166].info_ = "whether use rich vector format in vectorized execution engine" ; + ObSysVars[166].name_ = "_enable_rich_vector_format" ; ObSysVars[166].data_type_ = ObIntType ; - ObSysVars[166].enum_names_ = "[u'OFF', u'ON']" ; - ObSysVars[166].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[166].id_ = SYS_VAR_INNODB_STATS_PERSISTENT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_PERSISTENT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_PERSISTENT] = 166 ; + ObSysVars[166].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::INFLUENCE_PLAN | ObSysVarFlag::NEED_SERIALIZE | ObSysVarFlag::INVISIBLE ; + ObSysVars[166].id_ = SYS_VAR__ENABLE_RICH_VECTOR_FORMAT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR__ENABLE_RICH_VECTOR_FORMAT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR__ENABLE_RICH_VECTOR_FORMAT] = 166 ; ObSysVars[166].base_value_ = "1" ; - ObSysVars[166].alias_ = "OB_SV_INNODB_STATS_PERSISTENT" ; + ObSysVars[166].alias_ = "OB_SV__ENABLE_RICH_VECTOR_FORMAT" ; }(); [&] (){ - ObSysVars[167].default_value_ = "d:t:i:o,/tmp/mysqld.trace" ; - ObSysVars[167].info_ = "This variable indicates the current debugging settings" ; - ObSysVars[167].name_ = "debug" ; - ObSysVars[167].data_type_ = ObVarcharType ; - ObSysVars[167].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[167].id_ = SYS_VAR_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DEBUG] = 167 ; - ObSysVars[167].base_value_ = "d:t:i:o,/tmp/mysqld.trace" ; - ObSysVars[167].alias_ = "OB_SV_DEBUG" ; + ObSysVars[167].default_value_ = "1" ; + ObSysVars[167].info_ = "Specifies whether InnoDB index statistics are persisted to disk." ; + ObSysVars[167].name_ = "innodb_stats_persistent" ; + ObSysVars[167].data_type_ = ObIntType ; + ObSysVars[167].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[167].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[167].id_ = SYS_VAR_INNODB_STATS_PERSISTENT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_PERSISTENT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_PERSISTENT] = 167 ; + ObSysVars[167].base_value_ = "1" ; + ObSysVars[167].alias_ = "OB_SV_INNODB_STATS_PERSISTENT" ; }(); [&] (){ - ObSysVars[168].default_value_ = "0" ; - ObSysVars[168].info_ = "Sets a debug flag for InnoDB change buffering. " ; - ObSysVars[168].name_ = "innodb_change_buffering_debug" ; - ObSysVars[168].data_type_ = ObIntType ; - ObSysVars[168].min_val_ = "0" ; - ObSysVars[168].max_val_ = "2" ; - ObSysVars[168].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[168].id_ = SYS_VAR_INNODB_CHANGE_BUFFERING_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHANGE_BUFFERING_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHANGE_BUFFERING_DEBUG] = 168 ; - ObSysVars[168].base_value_ = "0" ; - ObSysVars[168].alias_ = "OB_SV_INNODB_CHANGE_BUFFERING_DEBUG" ; + ObSysVars[168].default_value_ = "d:t:i:o,/tmp/mysqld.trace" ; + ObSysVars[168].info_ = "This variable indicates the current debugging settings" ; + ObSysVars[168].name_ = "debug" ; + ObSysVars[168].data_type_ = ObVarcharType ; + ObSysVars[168].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[168].id_ = SYS_VAR_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DEBUG] = 168 ; + ObSysVars[168].base_value_ = "d:t:i:o,/tmp/mysqld.trace" ; + ObSysVars[168].alias_ = "OB_SV_DEBUG" ; }(); [&] (){ - ObSysVars[169].default_value_ = "1" ; - ObSysVars[169].info_ = "Disables resizing of the InnoDB buffer pool" ; - ObSysVars[169].name_ = "innodb_disable_resize_buffer_pool_debug" ; + ObSysVars[169].default_value_ = "0" ; + ObSysVars[169].info_ = "Sets a debug flag for InnoDB change buffering. " ; + ObSysVars[169].name_ = "innodb_change_buffering_debug" ; ObSysVars[169].data_type_ = ObIntType ; + ObSysVars[169].min_val_ = "0" ; + ObSysVars[169].max_val_ = "2" ; ObSysVars[169].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[169].id_ = SYS_VAR_INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG] = 169 ; - ObSysVars[169].base_value_ = "1" ; - ObSysVars[169].alias_ = "OB_SV_INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG" ; + ObSysVars[169].id_ = SYS_VAR_INNODB_CHANGE_BUFFERING_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHANGE_BUFFERING_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHANGE_BUFFERING_DEBUG] = 169 ; + ObSysVars[169].base_value_ = "0" ; + ObSysVars[169].alias_ = "OB_SV_INNODB_CHANGE_BUFFERING_DEBUG" ; }(); [&] (){ - ObSysVars[170].default_value_ = "0" ; - ObSysVars[170].info_ = "set to 1 (the default by MySQL), foreign key constraints are checked. If set to 0, foreign key constraints are ignored" ; - ObSysVars[170].name_ = "innodb_fil_make_page_dirty_debug" ; + ObSysVars[170].default_value_ = "1" ; + ObSysVars[170].info_ = "Disables resizing of the InnoDB buffer pool" ; + ObSysVars[170].name_ = "innodb_disable_resize_buffer_pool_debug" ; ObSysVars[170].data_type_ = ObIntType ; - ObSysVars[170].min_val_ = "0" ; - ObSysVars[170].max_val_ = "4294967295" ; ObSysVars[170].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[170].id_ = SYS_VAR_INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG] = 170 ; - ObSysVars[170].base_value_ = "0" ; - ObSysVars[170].alias_ = "OB_SV_INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG" ; + ObSysVars[170].id_ = SYS_VAR_INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG] = 170 ; + ObSysVars[170].base_value_ = "1" ; + ObSysVars[170].alias_ = "OB_SV_INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG" ; }(); [&] (){ ObSysVars[171].default_value_ = "0" ; - ObSysVars[171].info_ = "Limits the number of records per B-tree page" ; - ObSysVars[171].name_ = "innodb_limit_optimistic_insert_debug" ; + ObSysVars[171].info_ = "set to 1 (the default by MySQL), foreign key constraints are checked. If set to 0, foreign key constraints are ignored" ; + ObSysVars[171].name_ = "innodb_fil_make_page_dirty_debug" ; ObSysVars[171].data_type_ = ObIntType ; ObSysVars[171].min_val_ = "0" ; ObSysVars[171].max_val_ = "4294967295" ; ObSysVars[171].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[171].id_ = SYS_VAR_INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG] = 171 ; + ObSysVars[171].id_ = SYS_VAR_INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG] = 171 ; ObSysVars[171].base_value_ = "0" ; - ObSysVars[171].alias_ = "OB_SV_INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG" ; + ObSysVars[171].alias_ = "OB_SV_INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG" ; }(); [&] (){ - ObSysVars[172].default_value_ = "50" ; - ObSysVars[172].info_ = "Defines a page-full percentage value for index pages that overrides the current MERGE_THRESHOLD setting for all indexes that are currently in the dictionary cache" ; - ObSysVars[172].name_ = "innodb_merge_threshold_set_all_debug" ; + ObSysVars[172].default_value_ = "0" ; + ObSysVars[172].info_ = "Limits the number of records per B-tree page" ; + ObSysVars[172].name_ = "innodb_limit_optimistic_insert_debug" ; ObSysVars[172].data_type_ = ObIntType ; - ObSysVars[172].min_val_ = "1" ; - ObSysVars[172].max_val_ = "50" ; + ObSysVars[172].min_val_ = "0" ; + ObSysVars[172].max_val_ = "4294967295" ; ObSysVars[172].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[172].id_ = SYS_VAR_INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG] = 172 ; - ObSysVars[172].base_value_ = "50" ; - ObSysVars[172].alias_ = "OB_SV_INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG" ; + ObSysVars[172].id_ = SYS_VAR_INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG] = 172 ; + ObSysVars[172].base_value_ = "0" ; + ObSysVars[172].alias_ = "OB_SV_INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG" ; }(); [&] (){ - ObSysVars[173].default_value_ = "0" ; - ObSysVars[173].info_ = "Saves a page number. Setting the innodb_fil_make_page_dirty_debug option dirties the page defined by innodb_saved_page_number_debug" ; - ObSysVars[173].name_ = "innodb_saved_page_number_debug" ; + ObSysVars[173].default_value_ = "50" ; + ObSysVars[173].info_ = "Defines a page-full percentage value for index pages that overrides the current MERGE_THRESHOLD setting for all indexes that are currently in the dictionary cache" ; + ObSysVars[173].name_ = "innodb_merge_threshold_set_all_debug" ; ObSysVars[173].data_type_ = ObIntType ; - ObSysVars[173].min_val_ = "0" ; - ObSysVars[173].max_val_ = "4294967295" ; + ObSysVars[173].min_val_ = "1" ; + ObSysVars[173].max_val_ = "50" ; ObSysVars[173].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[173].id_ = SYS_VAR_INNODB_SAVED_PAGE_NUMBER_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SAVED_PAGE_NUMBER_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SAVED_PAGE_NUMBER_DEBUG] = 173 ; - ObSysVars[173].base_value_ = "0" ; - ObSysVars[173].alias_ = "OB_SV_INNODB_SAVED_PAGE_NUMBER_DEBUG" ; + ObSysVars[173].id_ = SYS_VAR_INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG] = 173 ; + ObSysVars[173].base_value_ = "50" ; + ObSysVars[173].alias_ = "OB_SV_INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG" ; }(); [&] (){ ObSysVars[174].default_value_ = "0" ; - ObSysVars[174].info_ = "Pauses purging of delete-marked records while allowing the purge view to be updated" ; - ObSysVars[174].name_ = "innodb_trx_purge_view_update_only_debug" ; + ObSysVars[174].info_ = "Saves a page number. Setting the innodb_fil_make_page_dirty_debug option dirties the page defined by innodb_saved_page_number_debug" ; + ObSysVars[174].name_ = "innodb_saved_page_number_debug" ; ObSysVars[174].data_type_ = ObIntType ; + ObSysVars[174].min_val_ = "0" ; + ObSysVars[174].max_val_ = "4294967295" ; ObSysVars[174].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[174].id_ = SYS_VAR_INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG] = 174 ; + ObSysVars[174].id_ = SYS_VAR_INNODB_SAVED_PAGE_NUMBER_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SAVED_PAGE_NUMBER_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SAVED_PAGE_NUMBER_DEBUG] = 174 ; ObSysVars[174].base_value_ = "0" ; - ObSysVars[174].alias_ = "OB_SV_INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG" ; + ObSysVars[174].alias_ = "OB_SV_INNODB_SAVED_PAGE_NUMBER_DEBUG" ; }(); [&] (){ ObSysVars[175].default_value_ = "0" ; - ObSysVars[175].info_ = "Sets a debug flag that limits TRX_RSEG_N_SLOTS to a given value for the trx_rsegf_undo_find_free function that looks for free slots for undo log segments" ; - ObSysVars[175].name_ = "innodb_trx_rseg_n_slots_debug" ; + ObSysVars[175].info_ = "Pauses purging of delete-marked records while allowing the purge view to be updated" ; + ObSysVars[175].name_ = "innodb_trx_purge_view_update_only_debug" ; ObSysVars[175].data_type_ = ObIntType ; - ObSysVars[175].min_val_ = "0" ; - ObSysVars[175].max_val_ = "1024" ; ObSysVars[175].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[175].id_ = SYS_VAR_INNODB_TRX_RSEG_N_SLOTS_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TRX_RSEG_N_SLOTS_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TRX_RSEG_N_SLOTS_DEBUG] = 175 ; + ObSysVars[175].id_ = SYS_VAR_INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG] = 175 ; ObSysVars[175].base_value_ = "0" ; - ObSysVars[175].alias_ = "OB_SV_INNODB_TRX_RSEG_N_SLOTS_DEBUG" ; + ObSysVars[175].alias_ = "OB_SV_INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG" ; }(); [&] (){ - ObSysVars[176].default_value_ = "256" ; - ObSysVars[176].info_ = "Sets a soft upper limit for the number of cached stored routines per connection" ; - ObSysVars[176].name_ = "stored_program_cache" ; + ObSysVars[176].default_value_ = "0" ; + ObSysVars[176].info_ = "Sets a debug flag that limits TRX_RSEG_N_SLOTS to a given value for the trx_rsegf_undo_find_free function that looks for free slots for undo log segments" ; + ObSysVars[176].name_ = "innodb_trx_rseg_n_slots_debug" ; ObSysVars[176].data_type_ = ObIntType ; - ObSysVars[176].min_val_ = "16" ; - ObSysVars[176].max_val_ = "524288" ; + ObSysVars[176].min_val_ = "0" ; + ObSysVars[176].max_val_ = "1024" ; ObSysVars[176].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[176].id_ = SYS_VAR_STORED_PROGRAM_CACHE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_STORED_PROGRAM_CACHE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_STORED_PROGRAM_CACHE] = 176 ; - ObSysVars[176].base_value_ = "256" ; - ObSysVars[176].alias_ = "OB_SV_STORED_PROGRAM_CACHE" ; + ObSysVars[176].id_ = SYS_VAR_INNODB_TRX_RSEG_N_SLOTS_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TRX_RSEG_N_SLOTS_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TRX_RSEG_N_SLOTS_DEBUG] = 176 ; + ObSysVars[176].base_value_ = "0" ; + ObSysVars[176].alias_ = "OB_SV_INNODB_TRX_RSEG_N_SLOTS_DEBUG" ; }(); [&] (){ - ObSysVars[177].default_value_ = "1" ; - ObSysVars[177].info_ = "Specifies the correlation model when the optimizer estimates cardinality" ; - ObSysVars[177].name_ = "cardinality_estimation_model" ; + ObSysVars[177].default_value_ = "256" ; + ObSysVars[177].info_ = "Sets a soft upper limit for the number of cached stored routines per connection" ; + ObSysVars[177].name_ = "stored_program_cache" ; ObSysVars[177].data_type_ = ObIntType ; - ObSysVars[177].enum_names_ = "[u'INDEPENDENT', u'PARTIAL', u'FULL']" ; - ObSysVars[177].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::INFLUENCE_PLAN ; - ObSysVars[177].id_ = SYS_VAR_CARDINALITY_ESTIMATION_MODEL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_CARDINALITY_ESTIMATION_MODEL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_CARDINALITY_ESTIMATION_MODEL] = 177 ; - ObSysVars[177].base_value_ = "1" ; - ObSysVars[177].alias_ = "OB_SV_CARDINALITY_ESTIMATION_MODEL" ; + ObSysVars[177].min_val_ = "16" ; + ObSysVars[177].max_val_ = "524288" ; + ObSysVars[177].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[177].id_ = SYS_VAR_STORED_PROGRAM_CACHE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_STORED_PROGRAM_CACHE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_STORED_PROGRAM_CACHE] = 177 ; + ObSysVars[177].base_value_ = "256" ; + ObSysVars[177].alias_ = "OB_SV_STORED_PROGRAM_CACHE" ; }(); [&] (){ - ObSysVars[178].default_value_ = "0" ; - ObSysVars[178].info_ = "If ON, the server flushes (synchronizes) all changes to disk after each SQL statement" ; - ObSysVars[178].name_ = "flush" ; + ObSysVars[178].default_value_ = "1" ; + ObSysVars[178].info_ = "Specifies the correlation model when the optimizer estimates cardinality" ; + ObSysVars[178].name_ = "cardinality_estimation_model" ; ObSysVars[178].data_type_ = ObIntType ; - ObSysVars[178].enum_names_ = "[u'OFF', u'ON']" ; - ObSysVars[178].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[178].id_ = SYS_VAR_FLUSH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_FLUSH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_FLUSH] = 178 ; - ObSysVars[178].base_value_ = "0" ; - ObSysVars[178].alias_ = "OB_SV_FLUSH" ; + ObSysVars[178].enum_names_ = "[u'INDEPENDENT', u'PARTIAL', u'FULL']" ; + ObSysVars[178].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::INFLUENCE_PLAN ; + ObSysVars[178].id_ = SYS_VAR_CARDINALITY_ESTIMATION_MODEL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_CARDINALITY_ESTIMATION_MODEL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_CARDINALITY_ESTIMATION_MODEL] = 178 ; + ObSysVars[178].base_value_ = "1" ; + ObSysVars[178].alias_ = "OB_SV_CARDINALITY_ESTIMATION_MODEL" ; }(); [&] (){ ObSysVars[179].default_value_ = "0" ; - ObSysVars[179].info_ = "if this is set to a nonzero value, all tables are closed every flush_time seconds to free up resources and synchronize unflushed data to disk" ; - ObSysVars[179].name_ = "flush_time" ; + ObSysVars[179].info_ = "If ON, the server flushes (synchronizes) all changes to disk after each SQL statement" ; + ObSysVars[179].name_ = "flush" ; ObSysVars[179].data_type_ = ObIntType ; - ObSysVars[179].min_val_ = "0" ; - ObSysVars[179].max_val_ = "31536000" ; + ObSysVars[179].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[179].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[179].id_ = SYS_VAR_FLUSH_TIME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_FLUSH_TIME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_FLUSH_TIME] = 179 ; + ObSysVars[179].id_ = SYS_VAR_FLUSH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_FLUSH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_FLUSH] = 179 ; ObSysVars[179].base_value_ = "0" ; - ObSysVars[179].alias_ = "OB_SV_FLUSH_TIME" ; + ObSysVars[179].alias_ = "OB_SV_FLUSH" ; }(); [&] (){ - ObSysVars[180].default_value_ = "1" ; - ObSysVars[180].info_ = "specifies whether to dynamically adjust the rate of flushing dirty pages in the InnoDB buffer pool based on the workload" ; - ObSysVars[180].name_ = "innodb_adaptive_flushing" ; + ObSysVars[180].default_value_ = "0" ; + ObSysVars[180].info_ = "if this is set to a nonzero value, all tables are closed every flush_time seconds to free up resources and synchronize unflushed data to disk" ; + ObSysVars[180].name_ = "flush_time" ; ObSysVars[180].data_type_ = ObIntType ; - ObSysVars[180].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[180].min_val_ = "0" ; + ObSysVars[180].max_val_ = "31536000" ; ObSysVars[180].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[180].id_ = SYS_VAR_INNODB_ADAPTIVE_FLUSHING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_FLUSHING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_FLUSHING] = 180 ; - ObSysVars[180].base_value_ = "1" ; - ObSysVars[180].alias_ = "OB_SV_INNODB_ADAPTIVE_FLUSHING" ; + ObSysVars[180].id_ = SYS_VAR_FLUSH_TIME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_FLUSH_TIME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_FLUSH_TIME] = 180 ; + ObSysVars[180].base_value_ = "0" ; + ObSysVars[180].alias_ = "OB_SV_FLUSH_TIME" ; }(); [&] (){ - ObSysVars[181].default_value_ = "10" ; - ObSysVars[181].info_ = "Defines the low water mark representing percentage of redo log capacity at which adaptive flushing is enabled" ; - ObSysVars[181].name_ = "innodb_adaptive_flushing_lwm" ; + ObSysVars[181].default_value_ = "1" ; + ObSysVars[181].info_ = "specifies whether to dynamically adjust the rate of flushing dirty pages in the InnoDB buffer pool based on the workload" ; + ObSysVars[181].name_ = "innodb_adaptive_flushing" ; ObSysVars[181].data_type_ = ObIntType ; - ObSysVars[181].min_val_ = "0" ; - ObSysVars[181].max_val_ = "70" ; + ObSysVars[181].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[181].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[181].id_ = SYS_VAR_INNODB_ADAPTIVE_FLUSHING_LWM ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_FLUSHING_LWM)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_FLUSHING_LWM] = 181 ; - ObSysVars[181].base_value_ = "10" ; - ObSysVars[181].alias_ = "OB_SV_INNODB_ADAPTIVE_FLUSHING_LWM" ; + ObSysVars[181].id_ = SYS_VAR_INNODB_ADAPTIVE_FLUSHING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_FLUSHING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_FLUSHING] = 181 ; + ObSysVars[181].base_value_ = "1" ; + ObSysVars[181].alias_ = "OB_SV_INNODB_ADAPTIVE_FLUSHING" ; }(); [&] (){ - ObSysVars[182].default_value_ = "1" ; - ObSysVars[182].info_ = "Whether the InnoDB adaptive hash index is enabled or disabled. It may be desirable, depending on your workload, to dynamically enable or disable adaptive hash indexing to improve query performance" ; - ObSysVars[182].name_ = "innodb_adaptive_hash_index" ; + ObSysVars[182].default_value_ = "10" ; + ObSysVars[182].info_ = "Defines the low water mark representing percentage of redo log capacity at which adaptive flushing is enabled" ; + ObSysVars[182].name_ = "innodb_adaptive_flushing_lwm" ; ObSysVars[182].data_type_ = ObIntType ; - ObSysVars[182].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[182].min_val_ = "0" ; + ObSysVars[182].max_val_ = "70" ; ObSysVars[182].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[182].id_ = SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX] = 182 ; - ObSysVars[182].base_value_ = "1" ; - ObSysVars[182].alias_ = "OB_SV_INNODB_ADAPTIVE_HASH_INDEX" ; + ObSysVars[182].id_ = SYS_VAR_INNODB_ADAPTIVE_FLUSHING_LWM ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_FLUSHING_LWM)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_FLUSHING_LWM] = 182 ; + ObSysVars[182].base_value_ = "10" ; + ObSysVars[182].alias_ = "OB_SV_INNODB_ADAPTIVE_FLUSHING_LWM" ; }(); [&] (){ - ObSysVars[183].default_value_ = "8" ; - ObSysVars[183].info_ = "Partitions the adaptive hash index search system. Each index is bound to a specific partition, with each partition protected by a separate latch." ; - ObSysVars[183].name_ = "innodb_adaptive_hash_index_parts" ; + ObSysVars[183].default_value_ = "1" ; + ObSysVars[183].info_ = "Whether the InnoDB adaptive hash index is enabled or disabled. It may be desirable, depending on your workload, to dynamically enable or disable adaptive hash indexing to improve query performance" ; + ObSysVars[183].name_ = "innodb_adaptive_hash_index" ; ObSysVars[183].data_type_ = ObIntType ; - ObSysVars[183].min_val_ = "1" ; - ObSysVars[183].max_val_ = "512" ; + ObSysVars[183].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[183].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[183].id_ = SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX_PARTS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX_PARTS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX_PARTS] = 183 ; - ObSysVars[183].base_value_ = "8" ; - ObSysVars[183].alias_ = "OB_SV_INNODB_ADAPTIVE_HASH_INDEX_PARTS" ; + ObSysVars[183].id_ = SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX] = 183 ; + ObSysVars[183].base_value_ = "1" ; + ObSysVars[183].alias_ = "OB_SV_INNODB_ADAPTIVE_HASH_INDEX" ; }(); [&] (){ - ObSysVars[184].default_value_ = "150000" ; - ObSysVars[184].info_ = "Permits InnoDB to automatically adjust the value of innodb_thread_sleep_delay up or down according to the current workload" ; - ObSysVars[184].name_ = "innodb_adaptive_max_sleep_delay" ; + ObSysVars[184].default_value_ = "8" ; + ObSysVars[184].info_ = "Partitions the adaptive hash index search system. Each index is bound to a specific partition, with each partition protected by a separate latch." ; + ObSysVars[184].name_ = "innodb_adaptive_hash_index_parts" ; ObSysVars[184].data_type_ = ObIntType ; - ObSysVars[184].min_val_ = "0" ; - ObSysVars[184].max_val_ = "1000000" ; + ObSysVars[184].min_val_ = "1" ; + ObSysVars[184].max_val_ = "512" ; ObSysVars[184].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[184].id_ = SYS_VAR_INNODB_ADAPTIVE_MAX_SLEEP_DELAY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_MAX_SLEEP_DELAY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_MAX_SLEEP_DELAY] = 184 ; - ObSysVars[184].base_value_ = "150000" ; - ObSysVars[184].alias_ = "OB_SV_INNODB_ADAPTIVE_MAX_SLEEP_DELAY" ; + ObSysVars[184].id_ = SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX_PARTS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX_PARTS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX_PARTS] = 184 ; + ObSysVars[184].base_value_ = "8" ; + ObSysVars[184].alias_ = "OB_SV_INNODB_ADAPTIVE_HASH_INDEX_PARTS" ; }(); [&] (){ - ObSysVars[185].default_value_ = "64" ; - ObSysVars[185].info_ = "The increment size (in megabytes) for extending the size of an auto-extending InnoDB system tablespace file when it becomes full" ; - ObSysVars[185].name_ = "innodb_autoextend_increment" ; + ObSysVars[185].default_value_ = "150000" ; + ObSysVars[185].info_ = "Permits InnoDB to automatically adjust the value of innodb_thread_sleep_delay up or down according to the current workload" ; + ObSysVars[185].name_ = "innodb_adaptive_max_sleep_delay" ; ObSysVars[185].data_type_ = ObIntType ; - ObSysVars[185].min_val_ = "1" ; - ObSysVars[185].max_val_ = "1000" ; + ObSysVars[185].min_val_ = "0" ; + ObSysVars[185].max_val_ = "1000000" ; ObSysVars[185].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[185].id_ = SYS_VAR_INNODB_AUTOEXTEND_INCREMENT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_AUTOEXTEND_INCREMENT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_AUTOEXTEND_INCREMENT] = 185 ; - ObSysVars[185].base_value_ = "64" ; - ObSysVars[185].alias_ = "OB_SV_INNODB_AUTOEXTEND_INCREMENT" ; + ObSysVars[185].id_ = SYS_VAR_INNODB_ADAPTIVE_MAX_SLEEP_DELAY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ADAPTIVE_MAX_SLEEP_DELAY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ADAPTIVE_MAX_SLEEP_DELAY] = 185 ; + ObSysVars[185].base_value_ = "150000" ; + ObSysVars[185].alias_ = "OB_SV_INNODB_ADAPTIVE_MAX_SLEEP_DELAY" ; }(); [&] (){ - ObSysVars[186].default_value_ = "0" ; - ObSysVars[186].info_ = "Enabling the innodb_background_drop_list_empty debug option helps avoid test case failures by delaying table creation until the background drop list is empty" ; - ObSysVars[186].name_ = "innodb_background_drop_list_empty" ; + ObSysVars[186].default_value_ = "64" ; + ObSysVars[186].info_ = "The increment size (in megabytes) for extending the size of an auto-extending InnoDB system tablespace file when it becomes full" ; + ObSysVars[186].name_ = "innodb_autoextend_increment" ; ObSysVars[186].data_type_ = ObIntType ; - ObSysVars[186].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[186].min_val_ = "1" ; + ObSysVars[186].max_val_ = "1000" ; ObSysVars[186].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[186].id_ = SYS_VAR_INNODB_BACKGROUND_DROP_LIST_EMPTY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BACKGROUND_DROP_LIST_EMPTY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BACKGROUND_DROP_LIST_EMPTY] = 186 ; - ObSysVars[186].base_value_ = "0" ; - ObSysVars[186].alias_ = "OB_SV_INNODB_BACKGROUND_DROP_LIST_EMPTY" ; + ObSysVars[186].id_ = SYS_VAR_INNODB_AUTOEXTEND_INCREMENT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_AUTOEXTEND_INCREMENT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_AUTOEXTEND_INCREMENT] = 186 ; + ObSysVars[186].base_value_ = "64" ; + ObSysVars[186].alias_ = "OB_SV_INNODB_AUTOEXTEND_INCREMENT" ; }(); [&] (){ - ObSysVars[187].default_value_ = "1" ; - ObSysVars[187].info_ = "Specifies whether to record the pages cached in the InnoDB buffer pool when the MySQL server is shut down, to shorten the warmup process at the next restart" ; - ObSysVars[187].name_ = "innodb_buffer_pool_dump_at_shutdown" ; + ObSysVars[187].default_value_ = "0" ; + ObSysVars[187].info_ = "Enabling the innodb_background_drop_list_empty debug option helps avoid test case failures by delaying table creation until the background drop list is empty" ; + ObSysVars[187].name_ = "innodb_background_drop_list_empty" ; ObSysVars[187].data_type_ = ObIntType ; ObSysVars[187].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[187].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[187].id_ = SYS_VAR_INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN] = 187 ; - ObSysVars[187].base_value_ = "1" ; - ObSysVars[187].alias_ = "OB_SV_INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN" ; + ObSysVars[187].id_ = SYS_VAR_INNODB_BACKGROUND_DROP_LIST_EMPTY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BACKGROUND_DROP_LIST_EMPTY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BACKGROUND_DROP_LIST_EMPTY] = 187 ; + ObSysVars[187].base_value_ = "0" ; + ObSysVars[187].alias_ = "OB_SV_INNODB_BACKGROUND_DROP_LIST_EMPTY" ; }(); [&] (){ - ObSysVars[188].default_value_ = "0" ; - ObSysVars[188].info_ = "Immediately makes a record of pages cached in the InnoDB buffer pool" ; - ObSysVars[188].name_ = "innodb_buffer_pool_dump_now" ; + ObSysVars[188].default_value_ = "1" ; + ObSysVars[188].info_ = "Specifies whether to record the pages cached in the InnoDB buffer pool when the MySQL server is shut down, to shorten the warmup process at the next restart" ; + ObSysVars[188].name_ = "innodb_buffer_pool_dump_at_shutdown" ; ObSysVars[188].data_type_ = ObIntType ; ObSysVars[188].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[188].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[188].id_ = SYS_VAR_INNODB_BUFFER_POOL_DUMP_NOW ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_DUMP_NOW)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_DUMP_NOW] = 188 ; - ObSysVars[188].base_value_ = "0" ; - ObSysVars[188].alias_ = "OB_SV_INNODB_BUFFER_POOL_DUMP_NOW" ; + ObSysVars[188].id_ = SYS_VAR_INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN] = 188 ; + ObSysVars[188].base_value_ = "1" ; + ObSysVars[188].alias_ = "OB_SV_INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN" ; }(); [&] (){ - ObSysVars[189].default_value_ = "25" ; - ObSysVars[189].info_ = "Specifies the percentage of the most recently used pages for each buffer pool to read out and dump" ; - ObSysVars[189].name_ = "innodb_buffer_pool_dump_pct" ; + ObSysVars[189].default_value_ = "0" ; + ObSysVars[189].info_ = "Immediately makes a record of pages cached in the InnoDB buffer pool" ; + ObSysVars[189].name_ = "innodb_buffer_pool_dump_now" ; ObSysVars[189].data_type_ = ObIntType ; - ObSysVars[189].min_val_ = "1" ; - ObSysVars[189].max_val_ = "100" ; + ObSysVars[189].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[189].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[189].id_ = SYS_VAR_INNODB_BUFFER_POOL_DUMP_PCT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_DUMP_PCT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_DUMP_PCT] = 189 ; - ObSysVars[189].base_value_ = "25" ; - ObSysVars[189].alias_ = "OB_SV_INNODB_BUFFER_POOL_DUMP_PCT" ; + ObSysVars[189].id_ = SYS_VAR_INNODB_BUFFER_POOL_DUMP_NOW ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_DUMP_NOW)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_DUMP_NOW] = 189 ; + ObSysVars[189].base_value_ = "0" ; + ObSysVars[189].alias_ = "OB_SV_INNODB_BUFFER_POOL_DUMP_NOW" ; }(); [&] (){ - ObSysVars[190].default_value_ = "ib_buffer_pool" ; - ObSysVars[190].info_ = "Specifies the name of the file that holds the list of tablespace IDs and page IDs produced by innodb_buffer_pool_dump_at_shutdown or innodb_buffer_pool_dump_now" ; - ObSysVars[190].name_ = "innodb_buffer_pool_filename" ; - ObSysVars[190].data_type_ = ObVarcharType ; + ObSysVars[190].default_value_ = "25" ; + ObSysVars[190].info_ = "Specifies the percentage of the most recently used pages for each buffer pool to read out and dump" ; + ObSysVars[190].name_ = "innodb_buffer_pool_dump_pct" ; + ObSysVars[190].data_type_ = ObIntType ; + ObSysVars[190].min_val_ = "1" ; + ObSysVars[190].max_val_ = "100" ; ObSysVars[190].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[190].id_ = SYS_VAR_INNODB_BUFFER_POOL_FILENAME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_FILENAME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_FILENAME] = 190 ; - ObSysVars[190].base_value_ = "" ; - ObSysVars[190].alias_ = "OB_SV_INNODB_BUFFER_POOL_FILENAME" ; + ObSysVars[190].id_ = SYS_VAR_INNODB_BUFFER_POOL_DUMP_PCT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_DUMP_PCT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_DUMP_PCT] = 190 ; + ObSysVars[190].base_value_ = "25" ; + ObSysVars[190].alias_ = "OB_SV_INNODB_BUFFER_POOL_DUMP_PCT" ; }(); [&] (){ - ObSysVars[191].default_value_ = "0" ; - ObSysVars[191].info_ = "Interrupts the process of restoring InnoDB buffer pool contents triggered by innodb_buffer_pool_load_at_startup or innodb_buffer_pool_load_now" ; - ObSysVars[191].name_ = "innodb_buffer_pool_load_abort" ; - ObSysVars[191].data_type_ = ObIntType ; - ObSysVars[191].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[191].default_value_ = "ib_buffer_pool" ; + ObSysVars[191].info_ = "Specifies the name of the file that holds the list of tablespace IDs and page IDs produced by innodb_buffer_pool_dump_at_shutdown or innodb_buffer_pool_dump_now" ; + ObSysVars[191].name_ = "innodb_buffer_pool_filename" ; + ObSysVars[191].data_type_ = ObVarcharType ; ObSysVars[191].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[191].id_ = SYS_VAR_INNODB_BUFFER_POOL_LOAD_ABORT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_LOAD_ABORT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_LOAD_ABORT] = 191 ; - ObSysVars[191].base_value_ = "0" ; - ObSysVars[191].alias_ = "OB_SV_INNODB_BUFFER_POOL_LOAD_ABORT" ; + ObSysVars[191].id_ = SYS_VAR_INNODB_BUFFER_POOL_FILENAME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_FILENAME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_FILENAME] = 191 ; + ObSysVars[191].base_value_ = "" ; + ObSysVars[191].alias_ = "OB_SV_INNODB_BUFFER_POOL_FILENAME" ; }(); [&] (){ ObSysVars[192].default_value_ = "0" ; - ObSysVars[192].info_ = "Immediately warms up the InnoDB buffer pool by loading data pages without waiting for a server restart" ; - ObSysVars[192].name_ = "innodb_buffer_pool_load_now" ; + ObSysVars[192].info_ = "Interrupts the process of restoring InnoDB buffer pool contents triggered by innodb_buffer_pool_load_at_startup or innodb_buffer_pool_load_now" ; + ObSysVars[192].name_ = "innodb_buffer_pool_load_abort" ; ObSysVars[192].data_type_ = ObIntType ; ObSysVars[192].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[192].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[192].id_ = SYS_VAR_INNODB_BUFFER_POOL_LOAD_NOW ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_LOAD_NOW)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_LOAD_NOW] = 192 ; + ObSysVars[192].id_ = SYS_VAR_INNODB_BUFFER_POOL_LOAD_ABORT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_LOAD_ABORT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_LOAD_ABORT] = 192 ; ObSysVars[192].base_value_ = "0" ; - ObSysVars[192].alias_ = "OB_SV_INNODB_BUFFER_POOL_LOAD_NOW" ; + ObSysVars[192].alias_ = "OB_SV_INNODB_BUFFER_POOL_LOAD_ABORT" ; }(); [&] (){ - ObSysVars[193].default_value_ = "134217728" ; - ObSysVars[193].info_ = "The size in bytes of the buffer pool, the memory area where InnoDB caches table and index data" ; - ObSysVars[193].name_ = "innodb_buffer_pool_size" ; - ObSysVars[193].data_type_ = ObUInt64Type ; - ObSysVars[193].min_val_ = "5242880" ; - ObSysVars[193].max_val_ = "18446744073709551615" ; + ObSysVars[193].default_value_ = "0" ; + ObSysVars[193].info_ = "Immediately warms up the InnoDB buffer pool by loading data pages without waiting for a server restart" ; + ObSysVars[193].name_ = "innodb_buffer_pool_load_now" ; + ObSysVars[193].data_type_ = ObIntType ; + ObSysVars[193].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[193].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[193].id_ = SYS_VAR_INNODB_BUFFER_POOL_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_SIZE] = 193 ; - ObSysVars[193].base_value_ = "134217728" ; - ObSysVars[193].alias_ = "OB_SV_INNODB_BUFFER_POOL_SIZE" ; + ObSysVars[193].id_ = SYS_VAR_INNODB_BUFFER_POOL_LOAD_NOW ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_LOAD_NOW)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_LOAD_NOW] = 193 ; + ObSysVars[193].base_value_ = "0" ; + ObSysVars[193].alias_ = "OB_SV_INNODB_BUFFER_POOL_LOAD_NOW" ; }(); [&] (){ - ObSysVars[194].default_value_ = "25" ; - ObSysVars[194].info_ = "Maximum size for the InnoDB change buffer, as a percentage of the total size of the buffer pool." ; - ObSysVars[194].name_ = "innodb_change_buffer_max_size" ; - ObSysVars[194].data_type_ = ObIntType ; - ObSysVars[194].min_val_ = "0" ; - ObSysVars[194].max_val_ = "50" ; + ObSysVars[194].default_value_ = "134217728" ; + ObSysVars[194].info_ = "The size in bytes of the buffer pool, the memory area where InnoDB caches table and index data" ; + ObSysVars[194].name_ = "innodb_buffer_pool_size" ; + ObSysVars[194].data_type_ = ObUInt64Type ; + ObSysVars[194].min_val_ = "5242880" ; + ObSysVars[194].max_val_ = "18446744073709551615" ; ObSysVars[194].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[194].id_ = SYS_VAR_INNODB_CHANGE_BUFFER_MAX_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHANGE_BUFFER_MAX_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHANGE_BUFFER_MAX_SIZE] = 194 ; - ObSysVars[194].base_value_ = "25" ; - ObSysVars[194].alias_ = "OB_SV_INNODB_CHANGE_BUFFER_MAX_SIZE" ; + ObSysVars[194].id_ = SYS_VAR_INNODB_BUFFER_POOL_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_SIZE] = 194 ; + ObSysVars[194].base_value_ = "134217728" ; + ObSysVars[194].alias_ = "OB_SV_INNODB_BUFFER_POOL_SIZE" ; }(); [&] (){ - ObSysVars[195].default_value_ = "5" ; - ObSysVars[195].info_ = "Whether InnoDB performs change buffering, an optimization that delays write operations to secondary indexes so that the I/O operations can be performed sequentially" ; - ObSysVars[195].name_ = "innodb_change_buffering" ; + ObSysVars[195].default_value_ = "25" ; + ObSysVars[195].info_ = "Maximum size for the InnoDB change buffer, as a percentage of the total size of the buffer pool." ; + ObSysVars[195].name_ = "innodb_change_buffer_max_size" ; ObSysVars[195].data_type_ = ObIntType ; - ObSysVars[195].enum_names_ = "[u'none', u'inserts', u'deletes', u'changes', u'purges', u'all']" ; + ObSysVars[195].min_val_ = "0" ; + ObSysVars[195].max_val_ = "50" ; ObSysVars[195].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[195].id_ = SYS_VAR_INNODB_CHANGE_BUFFERING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHANGE_BUFFERING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHANGE_BUFFERING] = 195 ; - ObSysVars[195].base_value_ = "5" ; - ObSysVars[195].alias_ = "OB_SV_INNODB_CHANGE_BUFFERING" ; + ObSysVars[195].id_ = SYS_VAR_INNODB_CHANGE_BUFFER_MAX_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHANGE_BUFFER_MAX_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHANGE_BUFFER_MAX_SIZE] = 195 ; + ObSysVars[195].base_value_ = "25" ; + ObSysVars[195].alias_ = "OB_SV_INNODB_CHANGE_BUFFER_MAX_SIZE" ; }(); [&] (){ - ObSysVars[196].default_value_ = "0" ; - ObSysVars[196].info_ = "Specifies how to generate and verify the checksum stored in the disk blocks of InnoDB tablespaces" ; - ObSysVars[196].name_ = "innodb_checksum_algorithm" ; + ObSysVars[196].default_value_ = "5" ; + ObSysVars[196].info_ = "Whether InnoDB performs change buffering, an optimization that delays write operations to secondary indexes so that the I/O operations can be performed sequentially" ; + ObSysVars[196].name_ = "innodb_change_buffering" ; ObSysVars[196].data_type_ = ObIntType ; - ObSysVars[196].enum_names_ = "[u'crc32', u'strict_crc32', u'innodb', u'strict_innodb', u'none', u'strict_none']" ; + ObSysVars[196].enum_names_ = "[u'none', u'inserts', u'deletes', u'changes', u'purges', u'all']" ; ObSysVars[196].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[196].id_ = SYS_VAR_INNODB_CHECKSUM_ALGORITHM ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHECKSUM_ALGORITHM)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHECKSUM_ALGORITHM] = 196 ; - ObSysVars[196].base_value_ = "0" ; - ObSysVars[196].alias_ = "OB_SV_INNODB_CHECKSUM_ALGORITHM" ; + ObSysVars[196].id_ = SYS_VAR_INNODB_CHANGE_BUFFERING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHANGE_BUFFERING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHANGE_BUFFERING] = 196 ; + ObSysVars[196].base_value_ = "5" ; + ObSysVars[196].alias_ = "OB_SV_INNODB_CHANGE_BUFFERING" ; }(); [&] (){ ObSysVars[197].default_value_ = "0" ; - ObSysVars[197].info_ = "Enables per-index compression-related statistics in the Information Schema INNODB_CMP_PER_INDEX table" ; - ObSysVars[197].name_ = "innodb_cmp_per_index_enabled" ; + ObSysVars[197].info_ = "Specifies how to generate and verify the checksum stored in the disk blocks of InnoDB tablespaces" ; + ObSysVars[197].name_ = "innodb_checksum_algorithm" ; ObSysVars[197].data_type_ = ObIntType ; - ObSysVars[197].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[197].enum_names_ = "[u'crc32', u'strict_crc32', u'innodb', u'strict_innodb', u'none', u'strict_none']" ; ObSysVars[197].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[197].id_ = SYS_VAR_INNODB_CMP_PER_INDEX_ENABLED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CMP_PER_INDEX_ENABLED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CMP_PER_INDEX_ENABLED] = 197 ; + ObSysVars[197].id_ = SYS_VAR_INNODB_CHECKSUM_ALGORITHM ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHECKSUM_ALGORITHM)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHECKSUM_ALGORITHM] = 197 ; ObSysVars[197].base_value_ = "0" ; - ObSysVars[197].alias_ = "OB_SV_INNODB_CMP_PER_INDEX_ENABLED" ; + ObSysVars[197].alias_ = "OB_SV_INNODB_CHECKSUM_ALGORITHM" ; }(); [&] (){ ObSysVars[198].default_value_ = "0" ; - ObSysVars[198].info_ = "The number of threads that can commit at the same time. A value of 0 (the default) permits any number of transactions to commit simultaneously" ; - ObSysVars[198].name_ = "innodb_commit_concurrency" ; + ObSysVars[198].info_ = "Enables per-index compression-related statistics in the Information Schema INNODB_CMP_PER_INDEX table" ; + ObSysVars[198].name_ = "innodb_cmp_per_index_enabled" ; ObSysVars[198].data_type_ = ObIntType ; - ObSysVars[198].min_val_ = "0" ; - ObSysVars[198].max_val_ = "100" ; + ObSysVars[198].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[198].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[198].id_ = SYS_VAR_INNODB_COMMIT_CONCURRENCY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_COMMIT_CONCURRENCY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_COMMIT_CONCURRENCY] = 198 ; + ObSysVars[198].id_ = SYS_VAR_INNODB_CMP_PER_INDEX_ENABLED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CMP_PER_INDEX_ENABLED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CMP_PER_INDEX_ENABLED] = 198 ; ObSysVars[198].base_value_ = "0" ; - ObSysVars[198].alias_ = "OB_SV_INNODB_COMMIT_CONCURRENCY" ; + ObSysVars[198].alias_ = "OB_SV_INNODB_CMP_PER_INDEX_ENABLED" ; }(); [&] (){ - ObSysVars[199].default_value_ = "5" ; - ObSysVars[199].info_ = "Defines the compression failure rate threshold for a table, as a percentage, at which point MySQL begins adding padding within compressed pages to avoid expensive compression failures" ; - ObSysVars[199].name_ = "innodb_compression_failure_threshold_pct" ; + ObSysVars[199].default_value_ = "0" ; + ObSysVars[199].info_ = "The number of threads that can commit at the same time. A value of 0 (the default) permits any number of transactions to commit simultaneously" ; + ObSysVars[199].name_ = "innodb_commit_concurrency" ; ObSysVars[199].data_type_ = ObIntType ; ObSysVars[199].min_val_ = "0" ; ObSysVars[199].max_val_ = "100" ; ObSysVars[199].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[199].id_ = SYS_VAR_INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT] = 199 ; - ObSysVars[199].base_value_ = "5" ; - ObSysVars[199].alias_ = "OB_SV_INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT" ; + ObSysVars[199].id_ = SYS_VAR_INNODB_COMMIT_CONCURRENCY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_COMMIT_CONCURRENCY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_COMMIT_CONCURRENCY] = 199 ; + ObSysVars[199].base_value_ = "0" ; + ObSysVars[199].alias_ = "OB_SV_INNODB_COMMIT_CONCURRENCY" ; }(); [&] (){ - ObSysVars[200].default_value_ = "6" ; - ObSysVars[200].info_ = "Specifies the level of zlib compression to use for InnoDB compressed tables and indexes" ; - ObSysVars[200].name_ = "innodb_compression_level" ; + ObSysVars[200].default_value_ = "5" ; + ObSysVars[200].info_ = "Defines the compression failure rate threshold for a table, as a percentage, at which point MySQL begins adding padding within compressed pages to avoid expensive compression failures" ; + ObSysVars[200].name_ = "innodb_compression_failure_threshold_pct" ; ObSysVars[200].data_type_ = ObIntType ; ObSysVars[200].min_val_ = "0" ; - ObSysVars[200].max_val_ = "9" ; + ObSysVars[200].max_val_ = "100" ; ObSysVars[200].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[200].id_ = SYS_VAR_INNODB_COMPRESSION_LEVEL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_COMPRESSION_LEVEL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_COMPRESSION_LEVEL] = 200 ; - ObSysVars[200].base_value_ = "6" ; - ObSysVars[200].alias_ = "OB_SV_INNODB_COMPRESSION_LEVEL" ; + ObSysVars[200].id_ = SYS_VAR_INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT] = 200 ; + ObSysVars[200].base_value_ = "5" ; + ObSysVars[200].alias_ = "OB_SV_INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT" ; }(); [&] (){ - ObSysVars[201].default_value_ = "50" ; - ObSysVars[201].info_ = "Specifies the maximum percentage that can be reserved as free space within each compressed page, allowing room to reorganize the data and modification log within the page when a compressed table or index is updated and the data might be recompressed" ; - ObSysVars[201].name_ = "innodb_compression_pad_pct_max" ; + ObSysVars[201].default_value_ = "6" ; + ObSysVars[201].info_ = "Specifies the level of zlib compression to use for InnoDB compressed tables and indexes" ; + ObSysVars[201].name_ = "innodb_compression_level" ; ObSysVars[201].data_type_ = ObIntType ; ObSysVars[201].min_val_ = "0" ; - ObSysVars[201].max_val_ = "75" ; + ObSysVars[201].max_val_ = "9" ; ObSysVars[201].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[201].id_ = SYS_VAR_INNODB_COMPRESSION_PAD_PCT_MAX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_COMPRESSION_PAD_PCT_MAX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_COMPRESSION_PAD_PCT_MAX] = 201 ; - ObSysVars[201].base_value_ = "50" ; - ObSysVars[201].alias_ = "OB_SV_INNODB_COMPRESSION_PAD_PCT_MAX" ; + ObSysVars[201].id_ = SYS_VAR_INNODB_COMPRESSION_LEVEL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_COMPRESSION_LEVEL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_COMPRESSION_LEVEL] = 201 ; + ObSysVars[201].base_value_ = "6" ; + ObSysVars[201].alias_ = "OB_SV_INNODB_COMPRESSION_LEVEL" ; }(); [&] (){ - ObSysVars[202].default_value_ = "5000" ; - ObSysVars[202].info_ = "Determines the number of threads that can enter InnoDB concurrently" ; - ObSysVars[202].name_ = "innodb_concurrency_tickets" ; + ObSysVars[202].default_value_ = "50" ; + ObSysVars[202].info_ = "Specifies the maximum percentage that can be reserved as free space within each compressed page, allowing room to reorganize the data and modification log within the page when a compressed table or index is updated and the data might be recompressed" ; + ObSysVars[202].name_ = "innodb_compression_pad_pct_max" ; ObSysVars[202].data_type_ = ObIntType ; - ObSysVars[202].min_val_ = "1" ; - ObSysVars[202].max_val_ = "4294967295" ; + ObSysVars[202].min_val_ = "0" ; + ObSysVars[202].max_val_ = "75" ; ObSysVars[202].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[202].id_ = SYS_VAR_INNODB_CONCURRENCY_TICKETS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CONCURRENCY_TICKETS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CONCURRENCY_TICKETS] = 202 ; - ObSysVars[202].base_value_ = "5000" ; - ObSysVars[202].alias_ = "OB_SV_INNODB_CONCURRENCY_TICKETS" ; + ObSysVars[202].id_ = SYS_VAR_INNODB_COMPRESSION_PAD_PCT_MAX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_COMPRESSION_PAD_PCT_MAX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_COMPRESSION_PAD_PCT_MAX] = 202 ; + ObSysVars[202].base_value_ = "50" ; + ObSysVars[202].alias_ = "OB_SV_INNODB_COMPRESSION_PAD_PCT_MAX" ; }(); [&] (){ - ObSysVars[203].default_value_ = "2" ; - ObSysVars[203].info_ = "The innodb_default_row_format option defines the default row format for InnoDB tables and user-created temporary tables" ; - ObSysVars[203].name_ = "innodb_default_row_format" ; + ObSysVars[203].default_value_ = "5000" ; + ObSysVars[203].info_ = "Determines the number of threads that can enter InnoDB concurrently" ; + ObSysVars[203].name_ = "innodb_concurrency_tickets" ; ObSysVars[203].data_type_ = ObIntType ; - ObSysVars[203].enum_names_ = "[u'REDUNDANT', u'COMPACT', u'DYNAMIC']" ; + ObSysVars[203].min_val_ = "1" ; + ObSysVars[203].max_val_ = "4294967295" ; ObSysVars[203].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[203].id_ = SYS_VAR_INNODB_DEFAULT_ROW_FORMAT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DEFAULT_ROW_FORMAT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DEFAULT_ROW_FORMAT] = 203 ; - ObSysVars[203].base_value_ = "2" ; - ObSysVars[203].alias_ = "OB_SV_INNODB_DEFAULT_ROW_FORMAT" ; + ObSysVars[203].id_ = SYS_VAR_INNODB_CONCURRENCY_TICKETS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CONCURRENCY_TICKETS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CONCURRENCY_TICKETS] = 203 ; + ObSysVars[203].base_value_ = "5000" ; + ObSysVars[203].alias_ = "OB_SV_INNODB_CONCURRENCY_TICKETS" ; }(); [&] (){ - ObSysVars[204].default_value_ = "0" ; - ObSysVars[204].info_ = "Disables the operating system file system cache for merge-sort temporary files. The effect is to open such files with the equivalent of O_DIRECT" ; - ObSysVars[204].name_ = "innodb_disable_sort_file_cache" ; + ObSysVars[204].default_value_ = "2" ; + ObSysVars[204].info_ = "The innodb_default_row_format option defines the default row format for InnoDB tables and user-created temporary tables" ; + ObSysVars[204].name_ = "innodb_default_row_format" ; ObSysVars[204].data_type_ = ObIntType ; - ObSysVars[204].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[204].enum_names_ = "[u'REDUNDANT', u'COMPACT', u'DYNAMIC']" ; ObSysVars[204].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[204].id_ = SYS_VAR_INNODB_DISABLE_SORT_FILE_CACHE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DISABLE_SORT_FILE_CACHE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DISABLE_SORT_FILE_CACHE] = 204 ; - ObSysVars[204].base_value_ = "0" ; - ObSysVars[204].alias_ = "OB_SV_INNODB_DISABLE_SORT_FILE_CACHE" ; + ObSysVars[204].id_ = SYS_VAR_INNODB_DEFAULT_ROW_FORMAT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DEFAULT_ROW_FORMAT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DEFAULT_ROW_FORMAT] = 204 ; + ObSysVars[204].base_value_ = "2" ; + ObSysVars[204].alias_ = "OB_SV_INNODB_DEFAULT_ROW_FORMAT" ; }(); [&] (){ - ObSysVars[205].default_value_ = "1" ; - ObSysVars[205].info_ = "Enables an InnoDB file format for file-per-table tablespaces" ; - ObSysVars[205].name_ = "innodb_file_format" ; + ObSysVars[205].default_value_ = "0" ; + ObSysVars[205].info_ = "Disables the operating system file system cache for merge-sort temporary files. The effect is to open such files with the equivalent of O_DIRECT" ; + ObSysVars[205].name_ = "innodb_disable_sort_file_cache" ; ObSysVars[205].data_type_ = ObIntType ; - ObSysVars[205].enum_names_ = "[u'Antelope', u'Barracuda']" ; + ObSysVars[205].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[205].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[205].id_ = SYS_VAR_INNODB_FILE_FORMAT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILE_FORMAT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILE_FORMAT] = 205 ; - ObSysVars[205].base_value_ = "1" ; - ObSysVars[205].alias_ = "OB_SV_INNODB_FILE_FORMAT" ; + ObSysVars[205].id_ = SYS_VAR_INNODB_DISABLE_SORT_FILE_CACHE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DISABLE_SORT_FILE_CACHE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DISABLE_SORT_FILE_CACHE] = 205 ; + ObSysVars[205].base_value_ = "0" ; + ObSysVars[205].alias_ = "OB_SV_INNODB_DISABLE_SORT_FILE_CACHE" ; }(); [&] (){ ObSysVars[206].default_value_ = "1" ; - ObSysVars[206].info_ = "At server startup, InnoDB sets the value of this variable to the file format tag in the system tablespace (for example, Antelope or Barracuda)" ; - ObSysVars[206].name_ = "innodb_file_format_max" ; + ObSysVars[206].info_ = "Enables an InnoDB file format for file-per-table tablespaces" ; + ObSysVars[206].name_ = "innodb_file_format" ; ObSysVars[206].data_type_ = ObIntType ; ObSysVars[206].enum_names_ = "[u'Antelope', u'Barracuda']" ; ObSysVars[206].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[206].id_ = SYS_VAR_INNODB_FILE_FORMAT_MAX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILE_FORMAT_MAX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILE_FORMAT_MAX] = 206 ; + ObSysVars[206].id_ = SYS_VAR_INNODB_FILE_FORMAT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILE_FORMAT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILE_FORMAT] = 206 ; ObSysVars[206].base_value_ = "1" ; - ObSysVars[206].alias_ = "OB_SV_INNODB_FILE_FORMAT_MAX" ; + ObSysVars[206].alias_ = "OB_SV_INNODB_FILE_FORMAT" ; }(); [&] (){ ObSysVars[207].default_value_ = "1" ; - ObSysVars[207].info_ = "When innodb_file_per_table is enabled, tables are created in file-per-table tablespaces by default" ; - ObSysVars[207].name_ = "innodb_file_per_table" ; + ObSysVars[207].info_ = "At server startup, InnoDB sets the value of this variable to the file format tag in the system tablespace (for example, Antelope or Barracuda)" ; + ObSysVars[207].name_ = "innodb_file_format_max" ; ObSysVars[207].data_type_ = ObIntType ; - ObSysVars[207].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[207].enum_names_ = "[u'Antelope', u'Barracuda']" ; ObSysVars[207].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[207].id_ = SYS_VAR_INNODB_FILE_PER_TABLE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILE_PER_TABLE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILE_PER_TABLE] = 207 ; + ObSysVars[207].id_ = SYS_VAR_INNODB_FILE_FORMAT_MAX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILE_FORMAT_MAX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILE_FORMAT_MAX] = 207 ; ObSysVars[207].base_value_ = "1" ; - ObSysVars[207].alias_ = "OB_SV_INNODB_FILE_PER_TABLE" ; + ObSysVars[207].alias_ = "OB_SV_INNODB_FILE_FORMAT_MAX" ; }(); [&] (){ - ObSysVars[208].default_value_ = "100" ; - ObSysVars[208].info_ = "InnoDB performs a bulk load when creating or rebuilding indexes" ; - ObSysVars[208].name_ = "innodb_fill_factor" ; + ObSysVars[208].default_value_ = "1" ; + ObSysVars[208].info_ = "When innodb_file_per_table is enabled, tables are created in file-per-table tablespaces by default" ; + ObSysVars[208].name_ = "innodb_file_per_table" ; ObSysVars[208].data_type_ = ObIntType ; - ObSysVars[208].min_val_ = "10" ; - ObSysVars[208].max_val_ = "100" ; + ObSysVars[208].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[208].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[208].id_ = SYS_VAR_INNODB_FILL_FACTOR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILL_FACTOR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILL_FACTOR] = 208 ; - ObSysVars[208].base_value_ = "100" ; - ObSysVars[208].alias_ = "OB_SV_INNODB_FILL_FACTOR" ; + ObSysVars[208].id_ = SYS_VAR_INNODB_FILE_PER_TABLE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILE_PER_TABLE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILE_PER_TABLE] = 208 ; + ObSysVars[208].base_value_ = "1" ; + ObSysVars[208].alias_ = "OB_SV_INNODB_FILE_PER_TABLE" ; }(); [&] (){ - ObSysVars[209].default_value_ = "1" ; - ObSysVars[209].info_ = "Specifies whether flushing a page from the InnoDB buffer pool also flushes other dirty pages in the same extent" ; - ObSysVars[209].name_ = "innodb_flush_neighbors" ; + ObSysVars[209].default_value_ = "100" ; + ObSysVars[209].info_ = "InnoDB performs a bulk load when creating or rebuilding indexes" ; + ObSysVars[209].name_ = "innodb_fill_factor" ; ObSysVars[209].data_type_ = ObIntType ; - ObSysVars[209].enum_names_ = "[u'0', u'1', u'2']" ; + ObSysVars[209].min_val_ = "10" ; + ObSysVars[209].max_val_ = "100" ; ObSysVars[209].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[209].id_ = SYS_VAR_INNODB_FLUSH_NEIGHBORS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_NEIGHBORS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_NEIGHBORS] = 209 ; - ObSysVars[209].base_value_ = "1" ; - ObSysVars[209].alias_ = "OB_SV_INNODB_FLUSH_NEIGHBORS" ; + ObSysVars[209].id_ = SYS_VAR_INNODB_FILL_FACTOR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILL_FACTOR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILL_FACTOR] = 209 ; + ObSysVars[209].base_value_ = "100" ; + ObSysVars[209].alias_ = "OB_SV_INNODB_FILL_FACTOR" ; }(); [&] (){ ObSysVars[210].default_value_ = "1" ; - ObSysVars[210].info_ = "The innodb_flush_sync variable, which is enabled by default, causes the innodb_io_capacity setting to be ignored during bursts of I/O activity that occur at checkpoints" ; - ObSysVars[210].name_ = "innodb_flush_sync" ; + ObSysVars[210].info_ = "Specifies whether flushing a page from the InnoDB buffer pool also flushes other dirty pages in the same extent" ; + ObSysVars[210].name_ = "innodb_flush_neighbors" ; ObSysVars[210].data_type_ = ObIntType ; - ObSysVars[210].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[210].enum_names_ = "[u'0', u'1', u'2']" ; ObSysVars[210].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[210].id_ = SYS_VAR_INNODB_FLUSH_SYNC ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_SYNC)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_SYNC] = 210 ; + ObSysVars[210].id_ = SYS_VAR_INNODB_FLUSH_NEIGHBORS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_NEIGHBORS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_NEIGHBORS] = 210 ; ObSysVars[210].base_value_ = "1" ; - ObSysVars[210].alias_ = "OB_SV_INNODB_FLUSH_SYNC" ; + ObSysVars[210].alias_ = "OB_SV_INNODB_FLUSH_NEIGHBORS" ; }(); [&] (){ - ObSysVars[211].default_value_ = "30" ; - ObSysVars[211].info_ = "Number of iterations for which InnoDB keeps the previously calculated snapshot of the flushing state, controlling how quickly adaptive flushing responds to changing workloads" ; - ObSysVars[211].name_ = "innodb_flushing_avg_loops" ; + ObSysVars[211].default_value_ = "1" ; + ObSysVars[211].info_ = "The innodb_flush_sync variable, which is enabled by default, causes the innodb_io_capacity setting to be ignored during bursts of I/O activity that occur at checkpoints" ; + ObSysVars[211].name_ = "innodb_flush_sync" ; ObSysVars[211].data_type_ = ObIntType ; - ObSysVars[211].min_val_ = "1" ; - ObSysVars[211].max_val_ = "1000" ; + ObSysVars[211].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[211].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[211].id_ = SYS_VAR_INNODB_FLUSHING_AVG_LOOPS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSHING_AVG_LOOPS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSHING_AVG_LOOPS] = 211 ; - ObSysVars[211].base_value_ = "30" ; - ObSysVars[211].alias_ = "OB_SV_INNODB_FLUSHING_AVG_LOOPS" ; + ObSysVars[211].id_ = SYS_VAR_INNODB_FLUSH_SYNC ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_SYNC)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_SYNC] = 211 ; + ObSysVars[211].base_value_ = "1" ; + ObSysVars[211].alias_ = "OB_SV_INNODB_FLUSH_SYNC" ; }(); [&] (){ - ObSysVars[212].default_value_ = "1024" ; - ObSysVars[212].info_ = "A parameter that influences the algorithms and heuristics for the flush operation for the InnoDB buffer pool. Primarily of interest to performance experts tuning I/O-intensive workloads" ; - ObSysVars[212].name_ = "innodb_lru_scan_depth" ; - ObSysVars[212].data_type_ = ObUInt64Type ; - ObSysVars[212].min_val_ = "100" ; - ObSysVars[212].max_val_ = "18446744073709551615" ; + ObSysVars[212].default_value_ = "30" ; + ObSysVars[212].info_ = "Number of iterations for which InnoDB keeps the previously calculated snapshot of the flushing state, controlling how quickly adaptive flushing responds to changing workloads" ; + ObSysVars[212].name_ = "innodb_flushing_avg_loops" ; + ObSysVars[212].data_type_ = ObIntType ; + ObSysVars[212].min_val_ = "1" ; + ObSysVars[212].max_val_ = "1000" ; ObSysVars[212].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[212].id_ = SYS_VAR_INNODB_LRU_SCAN_DEPTH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LRU_SCAN_DEPTH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LRU_SCAN_DEPTH] = 212 ; - ObSysVars[212].base_value_ = "1024" ; - ObSysVars[212].alias_ = "OB_SV_INNODB_LRU_SCAN_DEPTH" ; + ObSysVars[212].id_ = SYS_VAR_INNODB_FLUSHING_AVG_LOOPS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSHING_AVG_LOOPS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSHING_AVG_LOOPS] = 212 ; + ObSysVars[212].base_value_ = "30" ; + ObSysVars[212].alias_ = "OB_SV_INNODB_FLUSHING_AVG_LOOPS" ; }(); [&] (){ - ObSysVars[213].default_value_ = "75" ; - ObSysVars[213].info_ = "InnoDB tries to flush data from the buffer pool so that the percentage of dirty pages does not exceed this value" ; - ObSysVars[213].name_ = "innodb_max_dirty_pages_pct" ; - ObSysVars[213].data_type_ = ObNumberType ; - ObSysVars[213].min_val_ = "0" ; - ObSysVars[213].max_val_ = "99.999" ; + ObSysVars[213].default_value_ = "1024" ; + ObSysVars[213].info_ = "A parameter that influences the algorithms and heuristics for the flush operation for the InnoDB buffer pool. Primarily of interest to performance experts tuning I/O-intensive workloads" ; + ObSysVars[213].name_ = "innodb_lru_scan_depth" ; + ObSysVars[213].data_type_ = ObUInt64Type ; + ObSysVars[213].min_val_ = "100" ; + ObSysVars[213].max_val_ = "18446744073709551615" ; ObSysVars[213].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[213].id_ = SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT] = 213 ; - ObSysVars[213].base_value_ = "75" ; - ObSysVars[213].alias_ = "OB_SV_INNODB_MAX_DIRTY_PAGES_PCT" ; + ObSysVars[213].id_ = SYS_VAR_INNODB_LRU_SCAN_DEPTH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LRU_SCAN_DEPTH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LRU_SCAN_DEPTH] = 213 ; + ObSysVars[213].base_value_ = "1024" ; + ObSysVars[213].alias_ = "OB_SV_INNODB_LRU_SCAN_DEPTH" ; }(); [&] (){ - ObSysVars[214].default_value_ = "0" ; - ObSysVars[214].info_ = "Defines a low water mark representing the percentage of dirty pages at which preflushing is enabled to control the dirty page ratio" ; - ObSysVars[214].name_ = "innodb_max_dirty_pages_pct_lwm" ; + ObSysVars[214].default_value_ = "75" ; + ObSysVars[214].info_ = "InnoDB tries to flush data from the buffer pool so that the percentage of dirty pages does not exceed this value" ; + ObSysVars[214].name_ = "innodb_max_dirty_pages_pct" ; ObSysVars[214].data_type_ = ObNumberType ; ObSysVars[214].min_val_ = "0" ; ObSysVars[214].max_val_ = "99.999" ; ObSysVars[214].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[214].id_ = SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT_LWM ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT_LWM)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT_LWM] = 214 ; - ObSysVars[214].base_value_ = "0" ; - ObSysVars[214].alias_ = "OB_SV_INNODB_MAX_DIRTY_PAGES_PCT_LWM" ; + ObSysVars[214].id_ = SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT] = 214 ; + ObSysVars[214].base_value_ = "75" ; + ObSysVars[214].alias_ = "OB_SV_INNODB_MAX_DIRTY_PAGES_PCT" ; }(); [&] (){ ObSysVars[215].default_value_ = "0" ; - ObSysVars[215].info_ = "Defines the desired maximum purge lag. If this value is exceeded, a delay is imposed on INSERT, UPDATE, and DELETE operations to allow time for purge to catch up" ; - ObSysVars[215].name_ = "innodb_max_purge_lag" ; - ObSysVars[215].data_type_ = ObIntType ; + ObSysVars[215].info_ = "Defines a low water mark representing the percentage of dirty pages at which preflushing is enabled to control the dirty page ratio" ; + ObSysVars[215].name_ = "innodb_max_dirty_pages_pct_lwm" ; + ObSysVars[215].data_type_ = ObNumberType ; ObSysVars[215].min_val_ = "0" ; - ObSysVars[215].max_val_ = "4294967295" ; + ObSysVars[215].max_val_ = "99.999" ; ObSysVars[215].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[215].id_ = SYS_VAR_INNODB_MAX_PURGE_LAG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_PURGE_LAG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_PURGE_LAG] = 215 ; + ObSysVars[215].id_ = SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT_LWM ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT_LWM)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT_LWM] = 215 ; ObSysVars[215].base_value_ = "0" ; - ObSysVars[215].alias_ = "OB_SV_INNODB_MAX_PURGE_LAG" ; + ObSysVars[215].alias_ = "OB_SV_INNODB_MAX_DIRTY_PAGES_PCT_LWM" ; }(); [&] (){ ObSysVars[216].default_value_ = "0" ; - ObSysVars[216].info_ = "Specifies the maximum delay in microseconds for the delay imposed when the innodb_max_purge_lag threshold is exceeded" ; - ObSysVars[216].name_ = "innodb_max_purge_lag_delay" ; + ObSysVars[216].info_ = "Defines the desired maximum purge lag. If this value is exceeded, a delay is imposed on INSERT, UPDATE, and DELETE operations to allow time for purge to catch up" ; + ObSysVars[216].name_ = "innodb_max_purge_lag" ; ObSysVars[216].data_type_ = ObIntType ; ObSysVars[216].min_val_ = "0" ; - ObSysVars[216].max_val_ = "10000000" ; + ObSysVars[216].max_val_ = "4294967295" ; ObSysVars[216].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[216].id_ = SYS_VAR_INNODB_MAX_PURGE_LAG_DELAY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_PURGE_LAG_DELAY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_PURGE_LAG_DELAY] = 216 ; + ObSysVars[216].id_ = SYS_VAR_INNODB_MAX_PURGE_LAG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_PURGE_LAG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_PURGE_LAG] = 216 ; ObSysVars[216].base_value_ = "0" ; - ObSysVars[216].alias_ = "OB_SV_INNODB_MAX_PURGE_LAG_DELAY" ; + ObSysVars[216].alias_ = "OB_SV_INNODB_MAX_PURGE_LAG" ; }(); [&] (){ - ObSysVars[217].default_value_ = "1" ; - ObSysVars[217].info_ = "This is required on Unix for support of the DATA DIRECTORY and INDEX DIRECTORY table options" ; - ObSysVars[217].name_ = "have_symlink" ; + ObSysVars[217].default_value_ = "0" ; + ObSysVars[217].info_ = "Specifies the maximum delay in microseconds for the delay imposed when the innodb_max_purge_lag threshold is exceeded" ; + ObSysVars[217].name_ = "innodb_max_purge_lag_delay" ; ObSysVars[217].data_type_ = ObIntType ; - ObSysVars[217].enum_names_ = "[u'NO', u'YES']" ; - ObSysVars[217].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[217].id_ = SYS_VAR_HAVE_SYMLINK ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HAVE_SYMLINK)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_HAVE_SYMLINK] = 217 ; - ObSysVars[217].base_value_ = "1" ; - ObSysVars[217].alias_ = "OB_SV_HAVE_SYMLINK" ; + ObSysVars[217].min_val_ = "0" ; + ObSysVars[217].max_val_ = "10000000" ; + ObSysVars[217].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[217].id_ = SYS_VAR_INNODB_MAX_PURGE_LAG_DELAY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_PURGE_LAG_DELAY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_PURGE_LAG_DELAY] = 217 ; + ObSysVars[217].base_value_ = "0" ; + ObSysVars[217].alias_ = "OB_SV_INNODB_MAX_PURGE_LAG_DELAY" ; }(); [&] (){ - ObSysVars[218].default_value_ = "0" ; - ObSysVars[218].info_ = "In earlier versions of MySQL, enabling this variable caused the server to behave as if the built-in InnoDB were not present, which enabled the InnoDB Plugin to be used instead" ; - ObSysVars[218].name_ = "ignore_builtin_innodb" ; + ObSysVars[218].default_value_ = "1" ; + ObSysVars[218].info_ = "This is required on Unix for support of the DATA DIRECTORY and INDEX DIRECTORY table options" ; + ObSysVars[218].name_ = "have_symlink" ; ObSysVars[218].data_type_ = ObIntType ; ObSysVars[218].enum_names_ = "[u'NO', u'YES']" ; ObSysVars[218].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[218].id_ = SYS_VAR_IGNORE_BUILTIN_INNODB ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_IGNORE_BUILTIN_INNODB)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_IGNORE_BUILTIN_INNODB] = 218 ; - ObSysVars[218].base_value_ = "0" ; - ObSysVars[218].alias_ = "OB_SV_IGNORE_BUILTIN_INNODB" ; + ObSysVars[218].id_ = SYS_VAR_HAVE_SYMLINK ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HAVE_SYMLINK)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_HAVE_SYMLINK] = 218 ; + ObSysVars[218].base_value_ = "1" ; + ObSysVars[218].alias_ = "OB_SV_HAVE_SYMLINK" ; }(); [&] (){ - ObSysVars[219].default_value_ = "134217728" ; - ObSysVars[219].info_ = "defines the chunk size for InnoDB buffer pool resizing operations" ; - ObSysVars[219].name_ = "innodb_buffer_pool_chunk_size" ; + ObSysVars[219].default_value_ = "0" ; + ObSysVars[219].info_ = "In earlier versions of MySQL, enabling this variable caused the server to behave as if the built-in InnoDB were not present, which enabled the InnoDB Plugin to be used instead" ; + ObSysVars[219].name_ = "ignore_builtin_innodb" ; ObSysVars[219].data_type_ = ObIntType ; - ObSysVars[219].min_val_ = "1048576" ; + ObSysVars[219].enum_names_ = "[u'NO', u'YES']" ; ObSysVars[219].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[219].id_ = SYS_VAR_INNODB_BUFFER_POOL_CHUNK_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_CHUNK_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_CHUNK_SIZE] = 219 ; - ObSysVars[219].base_value_ = "134217728" ; - ObSysVars[219].alias_ = "OB_SV_INNODB_BUFFER_POOL_CHUNK_SIZE" ; + ObSysVars[219].id_ = SYS_VAR_IGNORE_BUILTIN_INNODB ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_IGNORE_BUILTIN_INNODB)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_IGNORE_BUILTIN_INNODB] = 219 ; + ObSysVars[219].base_value_ = "0" ; + ObSysVars[219].alias_ = "OB_SV_IGNORE_BUILTIN_INNODB" ; }(); [&] (){ - ObSysVars[220].default_value_ = "8" ; + ObSysVars[220].default_value_ = "134217728" ; ObSysVars[220].info_ = "defines the chunk size for InnoDB buffer pool resizing operations" ; - ObSysVars[220].name_ = "innodb_buffer_pool_instances" ; + ObSysVars[220].name_ = "innodb_buffer_pool_chunk_size" ; ObSysVars[220].data_type_ = ObIntType ; - ObSysVars[220].min_val_ = "1" ; - ObSysVars[220].max_val_ = "64" ; + ObSysVars[220].min_val_ = "1048576" ; ObSysVars[220].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[220].id_ = SYS_VAR_INNODB_BUFFER_POOL_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_INSTANCES] = 220 ; - ObSysVars[220].base_value_ = "8" ; - ObSysVars[220].alias_ = "OB_SV_INNODB_BUFFER_POOL_INSTANCES" ; + ObSysVars[220].id_ = SYS_VAR_INNODB_BUFFER_POOL_CHUNK_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_CHUNK_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_CHUNK_SIZE] = 220 ; + ObSysVars[220].base_value_ = "134217728" ; + ObSysVars[220].alias_ = "OB_SV_INNODB_BUFFER_POOL_CHUNK_SIZE" ; }(); [&] (){ - ObSysVars[221].default_value_ = "1" ; - ObSysVars[221].info_ = "Specifies that, on MySQL server startup, the InnoDB buffer pool is automatically warmed up by loading the same pages it held at an earlier time" ; - ObSysVars[221].name_ = "innodb_buffer_pool_load_at_startup" ; + ObSysVars[221].default_value_ = "8" ; + ObSysVars[221].info_ = "defines the chunk size for InnoDB buffer pool resizing operations" ; + ObSysVars[221].name_ = "innodb_buffer_pool_instances" ; ObSysVars[221].data_type_ = ObIntType ; - ObSysVars[221].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[221].min_val_ = "1" ; + ObSysVars[221].max_val_ = "64" ; ObSysVars[221].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[221].id_ = SYS_VAR_INNODB_BUFFER_POOL_LOAD_AT_STARTUP ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_LOAD_AT_STARTUP)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_LOAD_AT_STARTUP] = 221 ; - ObSysVars[221].base_value_ = "1" ; - ObSysVars[221].alias_ = "OB_SV_INNODB_BUFFER_POOL_LOAD_AT_STARTUP" ; + ObSysVars[221].id_ = SYS_VAR_INNODB_BUFFER_POOL_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_INSTANCES] = 221 ; + ObSysVars[221].base_value_ = "8" ; + ObSysVars[221].alias_ = "OB_SV_INNODB_BUFFER_POOL_INSTANCES" ; }(); [&] (){ ObSysVars[222].default_value_ = "1" ; - ObSysVars[222].info_ = "InnoDB can use checksum validation on all tablespace pages read from disk to ensure extra fault tolerance against hardware faults or corrupted data files" ; - ObSysVars[222].name_ = "innodb_checksums" ; + ObSysVars[222].info_ = "Specifies that, on MySQL server startup, the InnoDB buffer pool is automatically warmed up by loading the same pages it held at an earlier time" ; + ObSysVars[222].name_ = "innodb_buffer_pool_load_at_startup" ; ObSysVars[222].data_type_ = ObIntType ; ObSysVars[222].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[222].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[222].id_ = SYS_VAR_INNODB_CHECKSUMS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHECKSUMS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHECKSUMS] = 222 ; + ObSysVars[222].id_ = SYS_VAR_INNODB_BUFFER_POOL_LOAD_AT_STARTUP ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_BUFFER_POOL_LOAD_AT_STARTUP)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_BUFFER_POOL_LOAD_AT_STARTUP] = 222 ; ObSysVars[222].base_value_ = "1" ; - ObSysVars[222].alias_ = "OB_SV_INNODB_CHECKSUMS" ; + ObSysVars[222].alias_ = "OB_SV_INNODB_BUFFER_POOL_LOAD_AT_STARTUP" ; }(); [&] (){ ObSysVars[223].default_value_ = "1" ; - ObSysVars[223].info_ = "When enabled (the default), InnoDB stores all data twice, first to the doublewrite buffer, then to the actual data files" ; - ObSysVars[223].name_ = "innodb_doublewrite" ; + ObSysVars[223].info_ = "InnoDB can use checksum validation on all tablespace pages read from disk to ensure extra fault tolerance against hardware faults or corrupted data files" ; + ObSysVars[223].name_ = "innodb_checksums" ; ObSysVars[223].data_type_ = ObIntType ; ObSysVars[223].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[223].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[223].id_ = SYS_VAR_INNODB_DOUBLEWRITE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DOUBLEWRITE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DOUBLEWRITE] = 223 ; + ObSysVars[223].id_ = SYS_VAR_INNODB_CHECKSUMS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_CHECKSUMS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_CHECKSUMS] = 223 ; ObSysVars[223].base_value_ = "1" ; - ObSysVars[223].alias_ = "OB_SV_INNODB_DOUBLEWRITE" ; + ObSysVars[223].alias_ = "OB_SV_INNODB_CHECKSUMS" ; }(); [&] (){ ObSysVars[224].default_value_ = "1" ; - ObSysVars[224].info_ = "This variable can be set to 1 or 0 at server startup to enable or disable whether InnoDB checks the file format tag in the system tablespace (for example, Antelope or Barracuda)" ; - ObSysVars[224].name_ = "innodb_file_format_check" ; + ObSysVars[224].info_ = "When enabled (the default), InnoDB stores all data twice, first to the doublewrite buffer, then to the actual data files" ; + ObSysVars[224].name_ = "innodb_doublewrite" ; ObSysVars[224].data_type_ = ObIntType ; ObSysVars[224].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[224].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[224].id_ = SYS_VAR_INNODB_FILE_FORMAT_CHECK ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILE_FORMAT_CHECK)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILE_FORMAT_CHECK] = 224 ; + ObSysVars[224].id_ = SYS_VAR_INNODB_DOUBLEWRITE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DOUBLEWRITE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DOUBLEWRITE] = 224 ; ObSysVars[224].base_value_ = "1" ; - ObSysVars[224].alias_ = "OB_SV_INNODB_FILE_FORMAT_CHECK" ; + ObSysVars[224].alias_ = "OB_SV_INNODB_DOUBLEWRITE" ; }(); [&] (){ - ObSysVars[225].default_value_ = "0" ; - ObSysVars[225].info_ = "Defines the method used to flush data to InnoDB data files and log files, which can affect I/O throughput" ; - ObSysVars[225].name_ = "innodb_flush_method" ; + ObSysVars[225].default_value_ = "1" ; + ObSysVars[225].info_ = "This variable can be set to 1 or 0 at server startup to enable or disable whether InnoDB checks the file format tag in the system tablespace (for example, Antelope or Barracuda)" ; + ObSysVars[225].name_ = "innodb_file_format_check" ; ObSysVars[225].data_type_ = ObIntType ; - ObSysVars[225].enum_names_ = "[u'null', u'fsync', u'O_DSYNC', u'littlesync', u'nosync', u'O_DIRECT', u'O_DIRECT_NO_FSYNC']" ; + ObSysVars[225].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[225].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[225].id_ = SYS_VAR_INNODB_FLUSH_METHOD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_METHOD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_METHOD] = 225 ; - ObSysVars[225].base_value_ = "0" ; - ObSysVars[225].alias_ = "OB_SV_INNODB_FLUSH_METHOD" ; + ObSysVars[225].id_ = SYS_VAR_INNODB_FILE_FORMAT_CHECK ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FILE_FORMAT_CHECK)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FILE_FORMAT_CHECK] = 225 ; + ObSysVars[225].base_value_ = "1" ; + ObSysVars[225].alias_ = "OB_SV_INNODB_FILE_FORMAT_CHECK" ; }(); [&] (){ ObSysVars[226].default_value_ = "0" ; - ObSysVars[226].info_ = "Permits InnoDB to load tables at startup that are marked as corrupted" ; - ObSysVars[226].name_ = "innodb_force_load_corrupted" ; + ObSysVars[226].info_ = "Defines the method used to flush data to InnoDB data files and log files, which can affect I/O throughput" ; + ObSysVars[226].name_ = "innodb_flush_method" ; ObSysVars[226].data_type_ = ObIntType ; - ObSysVars[226].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[226].enum_names_ = "[u'null', u'fsync', u'O_DSYNC', u'littlesync', u'nosync', u'O_DIRECT', u'O_DIRECT_NO_FSYNC']" ; ObSysVars[226].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[226].id_ = SYS_VAR_INNODB_FORCE_LOAD_CORRUPTED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FORCE_LOAD_CORRUPTED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FORCE_LOAD_CORRUPTED] = 226 ; + ObSysVars[226].id_ = SYS_VAR_INNODB_FLUSH_METHOD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_METHOD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_METHOD] = 226 ; ObSysVars[226].base_value_ = "0" ; - ObSysVars[226].alias_ = "OB_SV_INNODB_FORCE_LOAD_CORRUPTED" ; + ObSysVars[226].alias_ = "OB_SV_INNODB_FLUSH_METHOD" ; }(); [&] (){ - ObSysVars[227].default_value_ = "2" ; - ObSysVars[227].info_ = "Specifies the page size for InnoDB tablespaces. Values can be specified in bytes or kilobytes" ; - ObSysVars[227].name_ = "innodb_page_size" ; + ObSysVars[227].default_value_ = "0" ; + ObSysVars[227].info_ = "Permits InnoDB to load tables at startup that are marked as corrupted" ; + ObSysVars[227].name_ = "innodb_force_load_corrupted" ; ObSysVars[227].data_type_ = ObIntType ; - ObSysVars[227].enum_names_ = "[u'4096', u'8192', u'16384', u'32768', u'65536']" ; + ObSysVars[227].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[227].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[227].id_ = SYS_VAR_INNODB_PAGE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PAGE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PAGE_SIZE] = 227 ; - ObSysVars[227].base_value_ = "2" ; - ObSysVars[227].alias_ = "OB_SV_INNODB_PAGE_SIZE" ; + ObSysVars[227].id_ = SYS_VAR_INNODB_FORCE_LOAD_CORRUPTED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FORCE_LOAD_CORRUPTED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FORCE_LOAD_CORRUPTED] = 227 ; + ObSysVars[227].base_value_ = "0" ; + ObSysVars[227].alias_ = "OB_SV_INNODB_FORCE_LOAD_CORRUPTED" ; }(); [&] (){ - ObSysVars[228].default_value_ = "0" ; - ObSysVars[228].info_ = "The InnoDB version number" ; - ObSysVars[228].name_ = "innodb_version" ; + ObSysVars[228].default_value_ = "2" ; + ObSysVars[228].info_ = "Specifies the page size for InnoDB tablespaces. Values can be specified in bytes or kilobytes" ; + ObSysVars[228].name_ = "innodb_page_size" ; ObSysVars[228].data_type_ = ObIntType ; - ObSysVars[228].enum_names_ = "[u'5.7.38']" ; + ObSysVars[228].enum_names_ = "[u'4096', u'8192', u'16384', u'32768', u'65536']" ; ObSysVars[228].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[228].id_ = SYS_VAR_INNODB_VERSION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_VERSION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_VERSION] = 228 ; - ObSysVars[228].base_value_ = "0" ; - ObSysVars[228].alias_ = "OB_SV_INNODB_VERSION" ; + ObSysVars[228].id_ = SYS_VAR_INNODB_PAGE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PAGE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PAGE_SIZE] = 228 ; + ObSysVars[228].base_value_ = "2" ; + ObSysVars[228].alias_ = "OB_SV_INNODB_PAGE_SIZE" ; }(); [&] (){ - ObSysVars[229].default_value_ = "18446744073709551615" ; - ObSysVars[229].info_ = "The maximum amount of memory to use for memory mapping compressed MyISAM files" ; - ObSysVars[229].name_ = "myisam_mmap_size" ; - ObSysVars[229].data_type_ = ObUInt64Type ; - ObSysVars[229].min_val_ = "7" ; - ObSysVars[229].max_val_ = "18446744073709551615" ; + ObSysVars[229].default_value_ = "0" ; + ObSysVars[229].info_ = "The InnoDB version number" ; + ObSysVars[229].name_ = "innodb_version" ; + ObSysVars[229].data_type_ = ObIntType ; + ObSysVars[229].enum_names_ = "[u'5.7.38']" ; ObSysVars[229].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[229].id_ = SYS_VAR_MYISAM_MMAP_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_MMAP_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_MMAP_SIZE] = 229 ; - ObSysVars[229].base_value_ = "18446744073709551615" ; - ObSysVars[229].alias_ = "OB_SV_MYISAM_MMAP_SIZE" ; + ObSysVars[229].id_ = SYS_VAR_INNODB_VERSION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_VERSION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_VERSION] = 229 ; + ObSysVars[229].base_value_ = "0" ; + ObSysVars[229].alias_ = "OB_SV_INNODB_VERSION" ; }(); [&] (){ - ObSysVars[230].default_value_ = "16" ; + ObSysVars[230].default_value_ = "18446744073709551615" ; ObSysVars[230].info_ = "The maximum amount of memory to use for memory mapping compressed MyISAM files" ; - ObSysVars[230].name_ = "table_open_cache_instances" ; - ObSysVars[230].data_type_ = ObIntType ; - ObSysVars[230].min_val_ = "1" ; - ObSysVars[230].max_val_ = "64" ; + ObSysVars[230].name_ = "myisam_mmap_size" ; + ObSysVars[230].data_type_ = ObUInt64Type ; + ObSysVars[230].min_val_ = "7" ; + ObSysVars[230].max_val_ = "18446744073709551615" ; ObSysVars[230].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[230].id_ = SYS_VAR_TABLE_OPEN_CACHE_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TABLE_OPEN_CACHE_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_TABLE_OPEN_CACHE_INSTANCES] = 230 ; - ObSysVars[230].base_value_ = "16" ; - ObSysVars[230].alias_ = "OB_SV_TABLE_OPEN_CACHE_INSTANCES" ; + ObSysVars[230].id_ = SYS_VAR_MYISAM_MMAP_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_MMAP_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_MMAP_SIZE] = 230 ; + ObSysVars[230].base_value_ = "18446744073709551615" ; + ObSysVars[230].alias_ = "OB_SV_MYISAM_MMAP_SIZE" ; }(); [&] (){ - ObSysVars[231].default_value_ = "" ; - ObSysVars[231].info_ = "When used with global scope, this variable contains a representation of the set of all transactions executed on the server and GTIDs that have been set by a SET gtid_purged statement, merely simulates MySQL 5.7" ; - ObSysVars[231].name_ = "gtid_executed" ; - ObSysVars[231].data_type_ = ObVarcharType ; - ObSysVars[231].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[231].id_ = SYS_VAR_GTID_EXECUTED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_EXECUTED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GTID_EXECUTED] = 231 ; - ObSysVars[231].base_value_ = "" ; - ObSysVars[231].alias_ = "OB_SV_GTID_EXECUTED" ; + ObSysVars[231].default_value_ = "16" ; + ObSysVars[231].info_ = "The maximum amount of memory to use for memory mapping compressed MyISAM files" ; + ObSysVars[231].name_ = "table_open_cache_instances" ; + ObSysVars[231].data_type_ = ObIntType ; + ObSysVars[231].min_val_ = "1" ; + ObSysVars[231].max_val_ = "64" ; + ObSysVars[231].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[231].id_ = SYS_VAR_TABLE_OPEN_CACHE_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TABLE_OPEN_CACHE_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_TABLE_OPEN_CACHE_INSTANCES] = 231 ; + ObSysVars[231].base_value_ = "16" ; + ObSysVars[231].alias_ = "OB_SV_TABLE_OPEN_CACHE_INSTANCES" ; }(); [&] (){ ObSysVars[232].default_value_ = "" ; - ObSysVars[232].info_ = "When used with global scope, gtid_owned holds a list of all the GTIDs that are currently in use on the server, with the IDs of the threads that own them. When used with session scope, gtid_owned holds a single GTID that is currently in use by and owned by this session, merely simulates MySQL 5.7" ; - ObSysVars[232].name_ = "gtid_owned" ; + ObSysVars[232].info_ = "When used with global scope, this variable contains a representation of the set of all transactions executed on the server and GTIDs that have been set by a SET gtid_purged statement, merely simulates MySQL 5.7" ; + ObSysVars[232].name_ = "gtid_executed" ; ObSysVars[232].data_type_ = ObVarcharType ; - ObSysVars[232].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[232].id_ = SYS_VAR_GTID_OWNED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_OWNED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GTID_OWNED] = 232 ; + ObSysVars[232].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[232].id_ = SYS_VAR_GTID_EXECUTED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_EXECUTED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GTID_EXECUTED] = 232 ; ObSysVars[232].base_value_ = "" ; - ObSysVars[232].alias_ = "OB_SV_GTID_OWNED" ; + ObSysVars[232].alias_ = "OB_SV_GTID_EXECUTED" ; }(); [&] (){ - ObSysVars[233].default_value_ = "0" ; - ObSysVars[233].info_ = "InnoDB rolls back only the last statement on a transaction timeout by default. If --innodb-rollback-on-timeout is specified, a transaction timeout causes InnoDB to abort and roll back the entire transaction, merely simulates MySQL 5.7" ; - ObSysVars[233].name_ = "innodb_rollback_on_timeout" ; - ObSysVars[233].data_type_ = ObIntType ; - ObSysVars[233].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[233].id_ = SYS_VAR_INNODB_ROLLBACK_ON_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ROLLBACK_ON_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ROLLBACK_ON_TIMEOUT] = 233 ; - ObSysVars[233].base_value_ = "0" ; - ObSysVars[233].alias_ = "OB_SV_INNODB_ROLLBACK_ON_TIMEOUT" ; + ObSysVars[233].default_value_ = "" ; + ObSysVars[233].info_ = "When used with global scope, gtid_owned holds a list of all the GTIDs that are currently in use on the server, with the IDs of the threads that own them. When used with session scope, gtid_owned holds a single GTID that is currently in use by and owned by this session, merely simulates MySQL 5.7" ; + ObSysVars[233].name_ = "gtid_owned" ; + ObSysVars[233].data_type_ = ObVarcharType ; + ObSysVars[233].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[233].id_ = SYS_VAR_GTID_OWNED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_OWNED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GTID_OWNED] = 233 ; + ObSysVars[233].base_value_ = "" ; + ObSysVars[233].alias_ = "OB_SV_GTID_OWNED" ; }(); [&] (){ ObSysVars[234].default_value_ = "0" ; - ObSysVars[234].info_ = "completion_type affects transactions that begin with START TRANSACTION or BEGIN and end with COMMIT or ROLLBACK. It does not apply when autocommit=1, merely simulates MySQL 5.7" ; - ObSysVars[234].name_ = "completion_type" ; + ObSysVars[234].info_ = "InnoDB rolls back only the last statement on a transaction timeout by default. If --innodb-rollback-on-timeout is specified, a transaction timeout causes InnoDB to abort and roll back the entire transaction, merely simulates MySQL 5.7" ; + ObSysVars[234].name_ = "innodb_rollback_on_timeout" ; ObSysVars[234].data_type_ = ObIntType ; - ObSysVars[234].enum_names_ = "[u'NO_CHAIN', u'CHAIN', u'RELEASE']" ; - ObSysVars[234].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[234].id_ = SYS_VAR_COMPLETION_TYPE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_COMPLETION_TYPE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_COMPLETION_TYPE] = 234 ; + ObSysVars[234].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[234].id_ = SYS_VAR_INNODB_ROLLBACK_ON_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ROLLBACK_ON_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ROLLBACK_ON_TIMEOUT] = 234 ; ObSysVars[234].base_value_ = "0" ; - ObSysVars[234].alias_ = "OB_SV_COMPLETION_TYPE" ; + ObSysVars[234].alias_ = "OB_SV_INNODB_ROLLBACK_ON_TIMEOUT" ; }(); [&] (){ ObSysVars[235].default_value_ = "0" ; - ObSysVars[235].info_ = "Depending on the value of this variable, the server enforces GTID consistency by allowing execution of only statements that can be safely logged using a GTID. You must set this variable to ON before enabling GTID based replication, merely simulates MySQL 5.7" ; - ObSysVars[235].name_ = "enforce_gtid_consistency" ; + ObSysVars[235].info_ = "completion_type affects transactions that begin with START TRANSACTION or BEGIN and end with COMMIT or ROLLBACK. It does not apply when autocommit=1, merely simulates MySQL 5.7" ; + ObSysVars[235].name_ = "completion_type" ; ObSysVars[235].data_type_ = ObIntType ; - ObSysVars[235].enum_names_ = "[u'OFF', u'ON', u'WARN']" ; - ObSysVars[235].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[235].id_ = SYS_VAR_ENFORCE_GTID_CONSISTENCY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_ENFORCE_GTID_CONSISTENCY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_ENFORCE_GTID_CONSISTENCY] = 235 ; + ObSysVars[235].enum_names_ = "[u'NO_CHAIN', u'CHAIN', u'RELEASE']" ; + ObSysVars[235].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[235].id_ = SYS_VAR_COMPLETION_TYPE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_COMPLETION_TYPE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_COMPLETION_TYPE] = 235 ; ObSysVars[235].base_value_ = "0" ; - ObSysVars[235].alias_ = "OB_SV_ENFORCE_GTID_CONSISTENCY" ; + ObSysVars[235].alias_ = "OB_SV_COMPLETION_TYPE" ; }(); [&] (){ - ObSysVars[236].default_value_ = "1000" ; - ObSysVars[236].info_ = "Compress the mysql.gtid_executed table each time this many transactions have been processed, merely simulates MySQL 5.7" ; - ObSysVars[236].name_ = "gtid_executed_compression_period" ; + ObSysVars[236].default_value_ = "0" ; + ObSysVars[236].info_ = "Depending on the value of this variable, the server enforces GTID consistency by allowing execution of only statements that can be safely logged using a GTID. You must set this variable to ON before enabling GTID based replication, merely simulates MySQL 5.7" ; + ObSysVars[236].name_ = "enforce_gtid_consistency" ; ObSysVars[236].data_type_ = ObIntType ; - ObSysVars[236].min_val_ = "0" ; - ObSysVars[236].max_val_ = "4294967295" ; + ObSysVars[236].enum_names_ = "[u'OFF', u'ON', u'WARN']" ; ObSysVars[236].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[236].id_ = SYS_VAR_GTID_EXECUTED_COMPRESSION_PERIOD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_EXECUTED_COMPRESSION_PERIOD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GTID_EXECUTED_COMPRESSION_PERIOD] = 236 ; - ObSysVars[236].base_value_ = "1000" ; - ObSysVars[236].alias_ = "OB_SV_GTID_EXECUTED_COMPRESSION_PERIOD" ; + ObSysVars[236].id_ = SYS_VAR_ENFORCE_GTID_CONSISTENCY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_ENFORCE_GTID_CONSISTENCY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_ENFORCE_GTID_CONSISTENCY] = 236 ; + ObSysVars[236].base_value_ = "0" ; + ObSysVars[236].alias_ = "OB_SV_ENFORCE_GTID_CONSISTENCY" ; }(); [&] (){ - ObSysVars[237].default_value_ = "0" ; - ObSysVars[237].info_ = "Controls whether GTID based logging is enabled and what type of transactions the logs can contain, merely simulates MySQL 5.7" ; - ObSysVars[237].name_ = "gtid_mode" ; + ObSysVars[237].default_value_ = "1000" ; + ObSysVars[237].info_ = "Compress the mysql.gtid_executed table each time this many transactions have been processed, merely simulates MySQL 5.7" ; + ObSysVars[237].name_ = "gtid_executed_compression_period" ; ObSysVars[237].data_type_ = ObIntType ; - ObSysVars[237].enum_names_ = "[u'OFF', u'OFF_PERMISSIVE', u'ON_PERMISSIVE', u'ON']" ; + ObSysVars[237].min_val_ = "0" ; + ObSysVars[237].max_val_ = "4294967295" ; ObSysVars[237].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[237].id_ = SYS_VAR_GTID_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GTID_MODE] = 237 ; - ObSysVars[237].base_value_ = "0" ; - ObSysVars[237].alias_ = "OB_SV_GTID_MODE" ; + ObSysVars[237].id_ = SYS_VAR_GTID_EXECUTED_COMPRESSION_PERIOD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_EXECUTED_COMPRESSION_PERIOD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GTID_EXECUTED_COMPRESSION_PERIOD] = 237 ; + ObSysVars[237].base_value_ = "1000" ; + ObSysVars[237].alias_ = "OB_SV_GTID_EXECUTED_COMPRESSION_PERIOD" ; }(); [&] (){ ObSysVars[238].default_value_ = "0" ; - ObSysVars[238].info_ = "This variable is used to specify whether and how the next GTID is obtained, merely simulates MySQL 5.7" ; - ObSysVars[238].name_ = "gtid_next" ; + ObSysVars[238].info_ = "Controls whether GTID based logging is enabled and what type of transactions the logs can contain, merely simulates MySQL 5.7" ; + ObSysVars[238].name_ = "gtid_mode" ; ObSysVars[238].data_type_ = ObIntType ; - ObSysVars[238].enum_names_ = "[u'AUTOMATIC', u'ANONYMOUS']" ; - ObSysVars[238].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[238].id_ = SYS_VAR_GTID_NEXT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_NEXT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GTID_NEXT] = 238 ; + ObSysVars[238].enum_names_ = "[u'OFF', u'OFF_PERMISSIVE', u'ON_PERMISSIVE', u'ON']" ; + ObSysVars[238].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[238].id_ = SYS_VAR_GTID_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GTID_MODE] = 238 ; ObSysVars[238].base_value_ = "0" ; - ObSysVars[238].alias_ = "OB_SV_GTID_NEXT" ; + ObSysVars[238].alias_ = "OB_SV_GTID_MODE" ; }(); [&] (){ - ObSysVars[239].default_value_ = "" ; - ObSysVars[239].info_ = "The global value of the gtid_purged system variable is a GTID set consisting of the GTIDs of all the transactions that have been committed on the server, but do not exist in any binary log file on the server. gtid_purged is a subset of gtid_executed, merely simulates MySQL 5.7" ; - ObSysVars[239].name_ = "gtid_purged" ; - ObSysVars[239].data_type_ = ObVarcharType ; - ObSysVars[239].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[239].id_ = SYS_VAR_GTID_PURGED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_PURGED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GTID_PURGED] = 239 ; - ObSysVars[239].base_value_ = "" ; - ObSysVars[239].alias_ = "OB_SV_GTID_PURGED" ; + ObSysVars[239].default_value_ = "0" ; + ObSysVars[239].info_ = "This variable is used to specify whether and how the next GTID is obtained, merely simulates MySQL 5.7" ; + ObSysVars[239].name_ = "gtid_next" ; + ObSysVars[239].data_type_ = ObIntType ; + ObSysVars[239].enum_names_ = "[u'AUTOMATIC', u'ANONYMOUS']" ; + ObSysVars[239].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[239].id_ = SYS_VAR_GTID_NEXT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_NEXT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GTID_NEXT] = 239 ; + ObSysVars[239].base_value_ = "0" ; + ObSysVars[239].alias_ = "OB_SV_GTID_NEXT" ; }(); [&] (){ - ObSysVars[240].default_value_ = "5" ; - ObSysVars[240].info_ = "How often to auto-commit idle connections that use the InnoDB memcached interface, in seconds, merely simulates MySQL 5.7" ; - ObSysVars[240].name_ = "innodb_api_bk_commit_interval" ; - ObSysVars[240].data_type_ = ObIntType ; - ObSysVars[240].min_val_ = "1" ; - ObSysVars[240].max_val_ = "1073741824" ; + ObSysVars[240].default_value_ = "" ; + ObSysVars[240].info_ = "The global value of the gtid_purged system variable is a GTID set consisting of the GTIDs of all the transactions that have been committed on the server, but do not exist in any binary log file on the server. gtid_purged is a subset of gtid_executed, merely simulates MySQL 5.7" ; + ObSysVars[240].name_ = "gtid_purged" ; + ObSysVars[240].data_type_ = ObVarcharType ; ObSysVars[240].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[240].id_ = SYS_VAR_INNODB_API_BK_COMMIT_INTERVAL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_API_BK_COMMIT_INTERVAL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_API_BK_COMMIT_INTERVAL] = 240 ; - ObSysVars[240].base_value_ = "5" ; - ObSysVars[240].alias_ = "OB_SV_INNODB_API_BK_COMMIT_INTERVAL" ; + ObSysVars[240].id_ = SYS_VAR_GTID_PURGED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GTID_PURGED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GTID_PURGED] = 240 ; + ObSysVars[240].base_value_ = "" ; + ObSysVars[240].alias_ = "OB_SV_GTID_PURGED" ; }(); [&] (){ - ObSysVars[241].default_value_ = "0" ; - ObSysVars[241].info_ = "Controls the transaction isolation level on queries processed by the memcached interface, merely simulates MySQL 5.7" ; - ObSysVars[241].name_ = "innodb_api_trx_level" ; + ObSysVars[241].default_value_ = "5" ; + ObSysVars[241].info_ = "How often to auto-commit idle connections that use the InnoDB memcached interface, in seconds, merely simulates MySQL 5.7" ; + ObSysVars[241].name_ = "innodb_api_bk_commit_interval" ; ObSysVars[241].data_type_ = ObIntType ; - ObSysVars[241].min_val_ = "0" ; - ObSysVars[241].max_val_ = "3" ; + ObSysVars[241].min_val_ = "1" ; + ObSysVars[241].max_val_ = "1073741824" ; ObSysVars[241].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[241].id_ = SYS_VAR_INNODB_API_TRX_LEVEL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_API_TRX_LEVEL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_API_TRX_LEVEL] = 241 ; - ObSysVars[241].base_value_ = "0" ; - ObSysVars[241].alias_ = "OB_SV_INNODB_API_TRX_LEVEL" ; + ObSysVars[241].id_ = SYS_VAR_INNODB_API_BK_COMMIT_INTERVAL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_API_BK_COMMIT_INTERVAL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_API_BK_COMMIT_INTERVAL] = 241 ; + ObSysVars[241].base_value_ = "5" ; + ObSysVars[241].alias_ = "OB_SV_INNODB_API_BK_COMMIT_INTERVAL" ; }(); [&] (){ ObSysVars[242].default_value_ = "0" ; - ObSysVars[242].info_ = "Controls whether the server returns GTIDs to the client, enabling the client to use them to track the server state, merely simulates MySQL 5.7" ; - ObSysVars[242].name_ = "session_track_gtids" ; + ObSysVars[242].info_ = "Controls the transaction isolation level on queries processed by the memcached interface, merely simulates MySQL 5.7" ; + ObSysVars[242].name_ = "innodb_api_trx_level" ; ObSysVars[242].data_type_ = ObIntType ; - ObSysVars[242].enum_names_ = "[u'OFF', u'OWN_GTID', u'ALL_GTIDS']" ; - ObSysVars[242].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[242].id_ = SYS_VAR_SESSION_TRACK_GTIDS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SESSION_TRACK_GTIDS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SESSION_TRACK_GTIDS] = 242 ; + ObSysVars[242].min_val_ = "0" ; + ObSysVars[242].max_val_ = "3" ; + ObSysVars[242].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[242].id_ = SYS_VAR_INNODB_API_TRX_LEVEL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_API_TRX_LEVEL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_API_TRX_LEVEL] = 242 ; ObSysVars[242].base_value_ = "0" ; - ObSysVars[242].alias_ = "OB_SV_SESSION_TRACK_GTIDS" ; + ObSysVars[242].alias_ = "OB_SV_INNODB_API_TRX_LEVEL" ; }(); [&] (){ ObSysVars[243].default_value_ = "0" ; - ObSysVars[243].info_ = "Controls whether the server tracks the state and characteristics of transactions within the current session and notifies the client to make this information available, merely simulates MySQL 5.7" ; - ObSysVars[243].name_ = "session_track_transaction_info" ; + ObSysVars[243].info_ = "Controls whether the server returns GTIDs to the client, enabling the client to use them to track the server state, merely simulates MySQL 5.7" ; + ObSysVars[243].name_ = "session_track_gtids" ; ObSysVars[243].data_type_ = ObIntType ; - ObSysVars[243].enum_names_ = "[u'OFF', u'STATE', u'CHARACTERISTICS']" ; + ObSysVars[243].enum_names_ = "[u'OFF', u'OWN_GTID', u'ALL_GTIDS']" ; ObSysVars[243].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[243].id_ = SYS_VAR_SESSION_TRACK_TRANSACTION_INFO ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SESSION_TRACK_TRANSACTION_INFO)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SESSION_TRACK_TRANSACTION_INFO] = 243 ; + ObSysVars[243].id_ = SYS_VAR_SESSION_TRACK_GTIDS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SESSION_TRACK_GTIDS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SESSION_TRACK_GTIDS] = 243 ; ObSysVars[243].base_value_ = "0" ; - ObSysVars[243].alias_ = "OB_SV_SESSION_TRACK_TRANSACTION_INFO" ; + ObSysVars[243].alias_ = "OB_SV_SESSION_TRACK_GTIDS" ; }(); [&] (){ - ObSysVars[244].default_value_ = "8192" ; - ObSysVars[244].info_ = "The amount in bytes by which to increase a per-transaction memory pool which needs memory, merely simulates MySQL 5.7" ; - ObSysVars[244].name_ = "transaction_alloc_block_size" ; + ObSysVars[244].default_value_ = "0" ; + ObSysVars[244].info_ = "Controls whether the server tracks the state and characteristics of transactions within the current session and notifies the client to make this information available, merely simulates MySQL 5.7" ; + ObSysVars[244].name_ = "session_track_transaction_info" ; ObSysVars[244].data_type_ = ObIntType ; - ObSysVars[244].min_val_ = "1024" ; - ObSysVars[244].max_val_ = "131072" ; + ObSysVars[244].enum_names_ = "[u'OFF', u'STATE', u'CHARACTERISTICS']" ; ObSysVars[244].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[244].id_ = SYS_VAR_TRANSACTION_ALLOC_BLOCK_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TRANSACTION_ALLOC_BLOCK_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_TRANSACTION_ALLOC_BLOCK_SIZE] = 244 ; - ObSysVars[244].base_value_ = "8192" ; - ObSysVars[244].alias_ = "OB_SV_TRANSACTION_ALLOC_BLOCK_SIZE" ; + ObSysVars[244].id_ = SYS_VAR_SESSION_TRACK_TRANSACTION_INFO ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SESSION_TRACK_TRANSACTION_INFO)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SESSION_TRACK_TRANSACTION_INFO] = 244 ; + ObSysVars[244].base_value_ = "0" ; + ObSysVars[244].alias_ = "OB_SV_SESSION_TRACK_TRANSACTION_INFO" ; }(); [&] (){ - ObSysVars[245].default_value_ = "0" ; - ObSysVars[245].info_ = "When set to 1 or ON, this variable enables batching of statements within the same transaction. To use this variable, autocommit must first be disabled by setting it to 0 or OFF; otherwise, setting transaction_allow_batching has no effect, merely simulates MySQL 5.7" ; - ObSysVars[245].name_ = "transaction_allow_batching" ; + ObSysVars[245].default_value_ = "8192" ; + ObSysVars[245].info_ = "The amount in bytes by which to increase a per-transaction memory pool which needs memory, merely simulates MySQL 5.7" ; + ObSysVars[245].name_ = "transaction_alloc_block_size" ; ObSysVars[245].data_type_ = ObIntType ; - ObSysVars[245].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[245].id_ = SYS_VAR_TRANSACTION_ALLOW_BATCHING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TRANSACTION_ALLOW_BATCHING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_TRANSACTION_ALLOW_BATCHING] = 245 ; - ObSysVars[245].base_value_ = "0" ; - ObSysVars[245].alias_ = "OB_SV_TRANSACTION_ALLOW_BATCHING" ; + ObSysVars[245].min_val_ = "1024" ; + ObSysVars[245].max_val_ = "131072" ; + ObSysVars[245].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[245].id_ = SYS_VAR_TRANSACTION_ALLOC_BLOCK_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TRANSACTION_ALLOC_BLOCK_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_TRANSACTION_ALLOC_BLOCK_SIZE] = 245 ; + ObSysVars[245].base_value_ = "8192" ; + ObSysVars[245].alias_ = "OB_SV_TRANSACTION_ALLOC_BLOCK_SIZE" ; }(); [&] (){ - ObSysVars[246].default_value_ = "4096" ; - ObSysVars[246].info_ = "There is a per-transaction memory pool from which various transaction-related allocations take memory. The initial size of the pool in bytes is transaction_prealloc_size, merely simulates MySQL 5.7" ; - ObSysVars[246].name_ = "transaction_prealloc_size" ; + ObSysVars[246].default_value_ = "0" ; + ObSysVars[246].info_ = "When set to 1 or ON, this variable enables batching of statements within the same transaction. To use this variable, autocommit must first be disabled by setting it to 0 or OFF; otherwise, setting transaction_allow_batching has no effect, merely simulates MySQL 5.7" ; + ObSysVars[246].name_ = "transaction_allow_batching" ; ObSysVars[246].data_type_ = ObIntType ; - ObSysVars[246].min_val_ = "1024" ; - ObSysVars[246].max_val_ = "131072" ; - ObSysVars[246].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[246].id_ = SYS_VAR_TRANSACTION_PREALLOC_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TRANSACTION_PREALLOC_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_TRANSACTION_PREALLOC_SIZE] = 246 ; - ObSysVars[246].base_value_ = "4096" ; - ObSysVars[246].alias_ = "OB_SV_TRANSACTION_PREALLOC_SIZE" ; + ObSysVars[246].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[246].id_ = SYS_VAR_TRANSACTION_ALLOW_BATCHING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TRANSACTION_ALLOW_BATCHING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_TRANSACTION_ALLOW_BATCHING] = 246 ; + ObSysVars[246].base_value_ = "0" ; + ObSysVars[246].alias_ = "OB_SV_TRANSACTION_ALLOW_BATCHING" ; }(); [&] (){ - ObSysVars[247].default_value_ = "0" ; - ObSysVars[247].info_ = "Defines the algorithm used to generate a hash identifying the writes associated with a transaction, merely simulates MySQL 5.7" ; - ObSysVars[247].name_ = "transaction_write_set_extraction" ; + ObSysVars[247].default_value_ = "4096" ; + ObSysVars[247].info_ = "There is a per-transaction memory pool from which various transaction-related allocations take memory. The initial size of the pool in bytes is transaction_prealloc_size, merely simulates MySQL 5.7" ; + ObSysVars[247].name_ = "transaction_prealloc_size" ; ObSysVars[247].data_type_ = ObIntType ; - ObSysVars[247].enum_names_ = "[u'OFF', u'MURMUR32', u'XXHASH64']" ; + ObSysVars[247].min_val_ = "1024" ; + ObSysVars[247].max_val_ = "131072" ; ObSysVars[247].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[247].id_ = SYS_VAR_TRANSACTION_WRITE_SET_EXTRACTION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TRANSACTION_WRITE_SET_EXTRACTION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_TRANSACTION_WRITE_SET_EXTRACTION] = 247 ; - ObSysVars[247].base_value_ = "0" ; - ObSysVars[247].alias_ = "OB_SV_TRANSACTION_WRITE_SET_EXTRACTION" ; + ObSysVars[247].id_ = SYS_VAR_TRANSACTION_PREALLOC_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TRANSACTION_PREALLOC_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_TRANSACTION_PREALLOC_SIZE] = 247 ; + ObSysVars[247].base_value_ = "4096" ; + ObSysVars[247].alias_ = "OB_SV_TRANSACTION_PREALLOC_SIZE" ; }(); [&] (){ - ObSysVars[248].default_value_ = "86400" ; - ObSysVars[248].info_ = "The number of seconds after which the server will fetch data from storage engine and replace the data in cache." ; - ObSysVars[248].name_ = "information_schema_stats_expiry" ; - ObSysVars[248].data_type_ = ObUInt64Type ; - ObSysVars[248].min_val_ = "0" ; - ObSysVars[248].max_val_ = "31536000" ; + ObSysVars[248].default_value_ = "0" ; + ObSysVars[248].info_ = "Defines the algorithm used to generate a hash identifying the writes associated with a transaction, merely simulates MySQL 5.7" ; + ObSysVars[248].name_ = "transaction_write_set_extraction" ; + ObSysVars[248].data_type_ = ObIntType ; + ObSysVars[248].enum_names_ = "[u'OFF', u'MURMUR32', u'XXHASH64']" ; ObSysVars[248].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[248].id_ = SYS_VAR_INFORMATION_SCHEMA_STATS_EXPIRY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INFORMATION_SCHEMA_STATS_EXPIRY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INFORMATION_SCHEMA_STATS_EXPIRY] = 248 ; - ObSysVars[248].base_value_ = "86400" ; - ObSysVars[248].alias_ = "OB_SV_INFORMATION_SCHEMA_STATS_EXPIRY" ; + ObSysVars[248].id_ = SYS_VAR_TRANSACTION_WRITE_SET_EXTRACTION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TRANSACTION_WRITE_SET_EXTRACTION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_TRANSACTION_WRITE_SET_EXTRACTION] = 248 ; + ObSysVars[248].base_value_ = "0" ; + ObSysVars[248].alias_ = "OB_SV_TRANSACTION_WRITE_SET_EXTRACTION" ; }(); [&] (){ - ObSysVars[249].default_value_ = "0" ; - ObSysVars[249].info_ = "Allows the server to join the group even if it has local transactions that are not present in the group" ; - ObSysVars[249].name_ = "group_replication_allow_local_disjoint_gtids_join" ; - ObSysVars[249].data_type_ = ObIntType ; - ObSysVars[249].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[249].id_ = SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_DISJOINT_GTIDS_JOIN ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_DISJOINT_GTIDS_JOIN)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_DISJOINT_GTIDS_JOIN] = 249 ; - ObSysVars[249].base_value_ = "0" ; - ObSysVars[249].alias_ = "OB_SV_GROUP_REPLICATION_ALLOW_LOCAL_DISJOINT_GTIDS_JOIN" ; + ObSysVars[249].default_value_ = "86400" ; + ObSysVars[249].info_ = "The number of seconds after which the server will fetch data from storage engine and replace the data in cache." ; + ObSysVars[249].name_ = "information_schema_stats_expiry" ; + ObSysVars[249].data_type_ = ObUInt64Type ; + ObSysVars[249].min_val_ = "0" ; + ObSysVars[249].max_val_ = "31536000" ; + ObSysVars[249].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[249].id_ = SYS_VAR_INFORMATION_SCHEMA_STATS_EXPIRY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INFORMATION_SCHEMA_STATS_EXPIRY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INFORMATION_SCHEMA_STATS_EXPIRY] = 249 ; + ObSysVars[249].base_value_ = "86400" ; + ObSysVars[249].alias_ = "OB_SV_INFORMATION_SCHEMA_STATS_EXPIRY" ; }(); [&] (){ ObSysVars[250].default_value_ = "0" ; - ObSysVars[250].info_ = "Allows the current server to join the group even if it has a lower major version than the group" ; - ObSysVars[250].name_ = "group_replication_allow_local_lower_version_join" ; + ObSysVars[250].info_ = "Allows the server to join the group even if it has local transactions that are not present in the group" ; + ObSysVars[250].name_ = "group_replication_allow_local_disjoint_gtids_join" ; ObSysVars[250].data_type_ = ObIntType ; ObSysVars[250].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[250].id_ = SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_LOWER_VERSION_JOIN ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_LOWER_VERSION_JOIN)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_LOWER_VERSION_JOIN] = 250 ; + ObSysVars[250].id_ = SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_DISJOINT_GTIDS_JOIN ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_DISJOINT_GTIDS_JOIN)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_DISJOINT_GTIDS_JOIN] = 250 ; ObSysVars[250].base_value_ = "0" ; - ObSysVars[250].alias_ = "OB_SV_GROUP_REPLICATION_ALLOW_LOCAL_LOWER_VERSION_JOIN" ; + ObSysVars[250].alias_ = "OB_SV_GROUP_REPLICATION_ALLOW_LOCAL_DISJOINT_GTIDS_JOIN" ; }(); [&] (){ - ObSysVars[251].default_value_ = "7" ; - ObSysVars[251].info_ = "Determines the interval between successive column values for transactions that execute on this server instance" ; - ObSysVars[251].name_ = "group_replication_auto_increment_increment" ; + ObSysVars[251].default_value_ = "0" ; + ObSysVars[251].info_ = "Allows the current server to join the group even if it has a lower major version than the group" ; + ObSysVars[251].name_ = "group_replication_allow_local_lower_version_join" ; ObSysVars[251].data_type_ = ObIntType ; - ObSysVars[251].min_val_ = "1" ; - ObSysVars[251].max_val_ = "65535" ; ObSysVars[251].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[251].id_ = SYS_VAR_GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT] = 251 ; - ObSysVars[251].base_value_ = "7" ; - ObSysVars[251].alias_ = "OB_SV_GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT" ; + ObSysVars[251].id_ = SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_LOWER_VERSION_JOIN ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_LOWER_VERSION_JOIN)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_LOWER_VERSION_JOIN] = 251 ; + ObSysVars[251].base_value_ = "0" ; + ObSysVars[251].alias_ = "OB_SV_GROUP_REPLICATION_ALLOW_LOCAL_LOWER_VERSION_JOIN" ; }(); [&] (){ - ObSysVars[252].default_value_ = "0" ; - ObSysVars[252].info_ = "Configure this server to bootstrap the group" ; - ObSysVars[252].name_ = "group_replication_bootstrap_group" ; + ObSysVars[252].default_value_ = "7" ; + ObSysVars[252].info_ = "Determines the interval between successive column values for transactions that execute on this server instance" ; + ObSysVars[252].name_ = "group_replication_auto_increment_increment" ; ObSysVars[252].data_type_ = ObIntType ; + ObSysVars[252].min_val_ = "1" ; + ObSysVars[252].max_val_ = "65535" ; ObSysVars[252].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[252].id_ = SYS_VAR_GROUP_REPLICATION_BOOTSTRAP_GROUP ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_BOOTSTRAP_GROUP)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_BOOTSTRAP_GROUP] = 252 ; - ObSysVars[252].base_value_ = "0" ; - ObSysVars[252].alias_ = "OB_SV_GROUP_REPLICATION_BOOTSTRAP_GROUP" ; + ObSysVars[252].id_ = SYS_VAR_GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT] = 252 ; + ObSysVars[252].base_value_ = "7" ; + ObSysVars[252].alias_ = "OB_SV_GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT" ; }(); [&] (){ - ObSysVars[253].default_value_ = "31536000" ; - ObSysVars[253].info_ = "Timeout, in seconds, that Group Replication waits for each of the components when shutting down" ; - ObSysVars[253].name_ = "group_replication_components_stop_timeout" ; + ObSysVars[253].default_value_ = "0" ; + ObSysVars[253].info_ = "Configure this server to bootstrap the group" ; + ObSysVars[253].name_ = "group_replication_bootstrap_group" ; ObSysVars[253].data_type_ = ObIntType ; - ObSysVars[253].min_val_ = "2" ; - ObSysVars[253].max_val_ = "31536000" ; ObSysVars[253].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[253].id_ = SYS_VAR_GROUP_REPLICATION_COMPONENTS_STOP_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_COMPONENTS_STOP_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_COMPONENTS_STOP_TIMEOUT] = 253 ; - ObSysVars[253].base_value_ = "31536000" ; - ObSysVars[253].alias_ = "OB_SV_GROUP_REPLICATION_COMPONENTS_STOP_TIMEOUT" ; + ObSysVars[253].id_ = SYS_VAR_GROUP_REPLICATION_BOOTSTRAP_GROUP ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_BOOTSTRAP_GROUP)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_BOOTSTRAP_GROUP] = 253 ; + ObSysVars[253].base_value_ = "0" ; + ObSysVars[253].alias_ = "OB_SV_GROUP_REPLICATION_BOOTSTRAP_GROUP" ; }(); [&] (){ - ObSysVars[254].default_value_ = "1000000" ; - ObSysVars[254].info_ = "The threshold value in bytes above which compression is applied to messages sent between group members" ; - ObSysVars[254].name_ = "group_replication_compression_threshold" ; + ObSysVars[254].default_value_ = "31536000" ; + ObSysVars[254].info_ = "Timeout, in seconds, that Group Replication waits for each of the components when shutting down" ; + ObSysVars[254].name_ = "group_replication_components_stop_timeout" ; ObSysVars[254].data_type_ = ObIntType ; - ObSysVars[254].min_val_ = "0" ; - ObSysVars[254].max_val_ = "4294967295" ; + ObSysVars[254].min_val_ = "2" ; + ObSysVars[254].max_val_ = "31536000" ; ObSysVars[254].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[254].id_ = SYS_VAR_GROUP_REPLICATION_COMPRESSION_THRESHOLD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_COMPRESSION_THRESHOLD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_COMPRESSION_THRESHOLD] = 254 ; - ObSysVars[254].base_value_ = "1000000" ; - ObSysVars[254].alias_ = "OB_SV_GROUP_REPLICATION_COMPRESSION_THRESHOLD" ; + ObSysVars[254].id_ = SYS_VAR_GROUP_REPLICATION_COMPONENTS_STOP_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_COMPONENTS_STOP_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_COMPONENTS_STOP_TIMEOUT] = 254 ; + ObSysVars[254].base_value_ = "31536000" ; + ObSysVars[254].alias_ = "OB_SV_GROUP_REPLICATION_COMPONENTS_STOP_TIMEOUT" ; }(); [&] (){ - ObSysVars[255].default_value_ = "0" ; - ObSysVars[255].info_ = "Enable or disable strict consistency checks for multi-primary update everywhere" ; - ObSysVars[255].name_ = "group_replication_enforce_update_everywhere_checks" ; + ObSysVars[255].default_value_ = "1000000" ; + ObSysVars[255].info_ = "The threshold value in bytes above which compression is applied to messages sent between group members" ; + ObSysVars[255].name_ = "group_replication_compression_threshold" ; ObSysVars[255].data_type_ = ObIntType ; + ObSysVars[255].min_val_ = "0" ; + ObSysVars[255].max_val_ = "4294967295" ; ObSysVars[255].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[255].id_ = SYS_VAR_GROUP_REPLICATION_ENFORCE_UPDATE_EVERYWHERE_CHECKS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_ENFORCE_UPDATE_EVERYWHERE_CHECKS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_ENFORCE_UPDATE_EVERYWHERE_CHECKS] = 255 ; - ObSysVars[255].base_value_ = "0" ; - ObSysVars[255].alias_ = "OB_SV_GROUP_REPLICATION_ENFORCE_UPDATE_EVERYWHERE_CHECKS" ; + ObSysVars[255].id_ = SYS_VAR_GROUP_REPLICATION_COMPRESSION_THRESHOLD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_COMPRESSION_THRESHOLD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_COMPRESSION_THRESHOLD] = 255 ; + ObSysVars[255].base_value_ = "1000000" ; + ObSysVars[255].alias_ = "OB_SV_GROUP_REPLICATION_COMPRESSION_THRESHOLD" ; }(); [&] (){ - ObSysVars[256].default_value_ = "1" ; - ObSysVars[256].info_ = "Configures how Group Replication behaves when a server instance leaves the group unintentionally, for example after encountering an applier error, or in the case of a loss of majority, or when another member of the group expels it due to a suspicion timing out" ; - ObSysVars[256].name_ = "group_replication_exit_state_action" ; + ObSysVars[256].default_value_ = "0" ; + ObSysVars[256].info_ = "Enable or disable strict consistency checks for multi-primary update everywhere" ; + ObSysVars[256].name_ = "group_replication_enforce_update_everywhere_checks" ; ObSysVars[256].data_type_ = ObIntType ; - ObSysVars[256].enum_names_ = "[u'ABORT_SERVER', u'READ_ONLY']" ; ObSysVars[256].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[256].id_ = SYS_VAR_GROUP_REPLICATION_EXIT_STATE_ACTION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_EXIT_STATE_ACTION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_EXIT_STATE_ACTION] = 256 ; - ObSysVars[256].base_value_ = "1" ; - ObSysVars[256].alias_ = "OB_SV_GROUP_REPLICATION_EXIT_STATE_ACTION" ; + ObSysVars[256].id_ = SYS_VAR_GROUP_REPLICATION_ENFORCE_UPDATE_EVERYWHERE_CHECKS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_ENFORCE_UPDATE_EVERYWHERE_CHECKS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_ENFORCE_UPDATE_EVERYWHERE_CHECKS] = 256 ; + ObSysVars[256].base_value_ = "0" ; + ObSysVars[256].alias_ = "OB_SV_GROUP_REPLICATION_ENFORCE_UPDATE_EVERYWHERE_CHECKS" ; }(); [&] (){ - ObSysVars[257].default_value_ = "25000" ; - ObSysVars[257].info_ = "Specifies the number of waiting transactions in the applier queue that trigger flow control. This variable can be changed without resetting Group Replication" ; - ObSysVars[257].name_ = "group_replication_flow_control_applier_threshold" ; + ObSysVars[257].default_value_ = "1" ; + ObSysVars[257].info_ = "Configures how Group Replication behaves when a server instance leaves the group unintentionally, for example after encountering an applier error, or in the case of a loss of majority, or when another member of the group expels it due to a suspicion timing out" ; + ObSysVars[257].name_ = "group_replication_exit_state_action" ; ObSysVars[257].data_type_ = ObIntType ; - ObSysVars[257].min_val_ = "0" ; - ObSysVars[257].max_val_ = "2147483647" ; + ObSysVars[257].enum_names_ = "[u'ABORT_SERVER', u'READ_ONLY']" ; ObSysVars[257].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[257].id_ = SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_APPLIER_THRESHOLD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_APPLIER_THRESHOLD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_APPLIER_THRESHOLD] = 257 ; - ObSysVars[257].base_value_ = "25000" ; - ObSysVars[257].alias_ = "OB_SV_GROUP_REPLICATION_FLOW_CONTROL_APPLIER_THRESHOLD" ; + ObSysVars[257].id_ = SYS_VAR_GROUP_REPLICATION_EXIT_STATE_ACTION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_EXIT_STATE_ACTION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_EXIT_STATE_ACTION] = 257 ; + ObSysVars[257].base_value_ = "1" ; + ObSysVars[257].alias_ = "OB_SV_GROUP_REPLICATION_EXIT_STATE_ACTION" ; }(); [&] (){ ObSysVars[258].default_value_ = "25000" ; - ObSysVars[258].info_ = "Specifies the number of waiting transactions in the certifier queue that trigger flow control. This variable can be changed without resetting Group Replication" ; - ObSysVars[258].name_ = "group_replication_flow_control_certifier_threshold" ; + ObSysVars[258].info_ = "Specifies the number of waiting transactions in the applier queue that trigger flow control. This variable can be changed without resetting Group Replication" ; + ObSysVars[258].name_ = "group_replication_flow_control_applier_threshold" ; ObSysVars[258].data_type_ = ObIntType ; ObSysVars[258].min_val_ = "0" ; ObSysVars[258].max_val_ = "2147483647" ; ObSysVars[258].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[258].id_ = SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_CERTIFIER_THRESHOLD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_CERTIFIER_THRESHOLD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_CERTIFIER_THRESHOLD] = 258 ; + ObSysVars[258].id_ = SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_APPLIER_THRESHOLD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_APPLIER_THRESHOLD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_APPLIER_THRESHOLD] = 258 ; ObSysVars[258].base_value_ = "25000" ; - ObSysVars[258].alias_ = "OB_SV_GROUP_REPLICATION_FLOW_CONTROL_CERTIFIER_THRESHOLD" ; + ObSysVars[258].alias_ = "OB_SV_GROUP_REPLICATION_FLOW_CONTROL_APPLIER_THRESHOLD" ; }(); [&] (){ - ObSysVars[259].default_value_ = "1" ; - ObSysVars[259].info_ = "Specifies the mode used for flow control. This variable can be changed without resetting Group Replication" ; - ObSysVars[259].name_ = "group_replication_flow_control_mode" ; + ObSysVars[259].default_value_ = "25000" ; + ObSysVars[259].info_ = "Specifies the number of waiting transactions in the certifier queue that trigger flow control. This variable can be changed without resetting Group Replication" ; + ObSysVars[259].name_ = "group_replication_flow_control_certifier_threshold" ; ObSysVars[259].data_type_ = ObIntType ; - ObSysVars[259].enum_names_ = "[u'DISABLED', u'QUOTA']" ; + ObSysVars[259].min_val_ = "0" ; + ObSysVars[259].max_val_ = "2147483647" ; ObSysVars[259].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[259].id_ = SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_MODE] = 259 ; - ObSysVars[259].base_value_ = "1" ; - ObSysVars[259].alias_ = "OB_SV_GROUP_REPLICATION_FLOW_CONTROL_MODE" ; + ObSysVars[259].id_ = SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_CERTIFIER_THRESHOLD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_CERTIFIER_THRESHOLD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_CERTIFIER_THRESHOLD] = 259 ; + ObSysVars[259].base_value_ = "25000" ; + ObSysVars[259].alias_ = "OB_SV_GROUP_REPLICATION_FLOW_CONTROL_CERTIFIER_THRESHOLD" ; }(); [&] (){ - ObSysVars[260].default_value_ = "" ; - ObSysVars[260].info_ = "A list of peer addresses as a comma separated list such as host1:port1,host2:port2" ; - ObSysVars[260].name_ = "group_replication_force_members" ; - ObSysVars[260].data_type_ = ObVarcharType ; - ObSysVars[260].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[260].id_ = SYS_VAR_GROUP_REPLICATION_FORCE_MEMBERS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_FORCE_MEMBERS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_FORCE_MEMBERS] = 260 ; - ObSysVars[260].base_value_ = "" ; - ObSysVars[260].alias_ = "OB_SV_GROUP_REPLICATION_FORCE_MEMBERS" ; + ObSysVars[260].default_value_ = "1" ; + ObSysVars[260].info_ = "Specifies the mode used for flow control. This variable can be changed without resetting Group Replication" ; + ObSysVars[260].name_ = "group_replication_flow_control_mode" ; + ObSysVars[260].data_type_ = ObIntType ; + ObSysVars[260].enum_names_ = "[u'DISABLED', u'QUOTA']" ; + ObSysVars[260].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[260].id_ = SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_MODE] = 260 ; + ObSysVars[260].base_value_ = "1" ; + ObSysVars[260].alias_ = "OB_SV_GROUP_REPLICATION_FLOW_CONTROL_MODE" ; }(); [&] (){ ObSysVars[261].default_value_ = "" ; - ObSysVars[261].info_ = "The name of the group which this server instance belongs to. Must be a valid UUID. This UUID is used internally when setting GTIDs for Group Replication events in the binary log" ; - ObSysVars[261].name_ = "group_replication_group_name" ; + ObSysVars[261].info_ = "A list of peer addresses as a comma separated list such as host1:port1,host2:port2" ; + ObSysVars[261].name_ = "group_replication_force_members" ; ObSysVars[261].data_type_ = ObVarcharType ; ObSysVars[261].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[261].id_ = SYS_VAR_GROUP_REPLICATION_GROUP_NAME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_GROUP_NAME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_GROUP_NAME] = 261 ; + ObSysVars[261].id_ = SYS_VAR_GROUP_REPLICATION_FORCE_MEMBERS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_FORCE_MEMBERS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_FORCE_MEMBERS] = 261 ; ObSysVars[261].base_value_ = "" ; - ObSysVars[261].alias_ = "OB_SV_GROUP_REPLICATION_GROUP_NAME" ; + ObSysVars[261].alias_ = "OB_SV_GROUP_REPLICATION_FORCE_MEMBERS" ; }(); [&] (){ ObSysVars[262].default_value_ = "" ; - ObSysVars[262].info_ = "The number of consecutive GTIDs that are reserved for each member. Each member consumes its blocks and reserves more when needed" ; - ObSysVars[262].name_ = "group_replication_gtid_assignment_block_size" ; + ObSysVars[262].info_ = "The name of the group which this server instance belongs to. Must be a valid UUID. This UUID is used internally when setting GTIDs for Group Replication events in the binary log" ; + ObSysVars[262].name_ = "group_replication_group_name" ; ObSysVars[262].data_type_ = ObVarcharType ; ObSysVars[262].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[262].id_ = SYS_VAR_GROUP_REPLICATION_GTID_ASSIGNMENT_BLOCK_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_GTID_ASSIGNMENT_BLOCK_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_GTID_ASSIGNMENT_BLOCK_SIZE] = 262 ; + ObSysVars[262].id_ = SYS_VAR_GROUP_REPLICATION_GROUP_NAME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_GROUP_NAME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_GROUP_NAME] = 262 ; ObSysVars[262].base_value_ = "" ; - ObSysVars[262].alias_ = "OB_SV_GROUP_REPLICATION_GTID_ASSIGNMENT_BLOCK_SIZE" ; + ObSysVars[262].alias_ = "OB_SV_GROUP_REPLICATION_GROUP_NAME" ; }(); [&] (){ - ObSysVars[263].default_value_ = "AUTOMATIC" ; - ObSysVars[263].info_ = "Specifies the allowlist of hosts that are permitted to connect to the group" ; - ObSysVars[263].name_ = "group_replication_ip_whitelist" ; + ObSysVars[263].default_value_ = "" ; + ObSysVars[263].info_ = "The number of consecutive GTIDs that are reserved for each member. Each member consumes its blocks and reserves more when needed" ; + ObSysVars[263].name_ = "group_replication_gtid_assignment_block_size" ; ObSysVars[263].data_type_ = ObVarcharType ; ObSysVars[263].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[263].id_ = SYS_VAR_GROUP_REPLICATION_IP_WHITELIST ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_IP_WHITELIST)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_IP_WHITELIST] = 263 ; - ObSysVars[263].base_value_ = "AUTOMATIC" ; - ObSysVars[263].alias_ = "OB_SV_GROUP_REPLICATION_IP_WHITELIST" ; + ObSysVars[263].id_ = SYS_VAR_GROUP_REPLICATION_GTID_ASSIGNMENT_BLOCK_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_GTID_ASSIGNMENT_BLOCK_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_GTID_ASSIGNMENT_BLOCK_SIZE] = 263 ; + ObSysVars[263].base_value_ = "" ; + ObSysVars[263].alias_ = "OB_SV_GROUP_REPLICATION_GTID_ASSIGNMENT_BLOCK_SIZE" ; }(); [&] (){ - ObSysVars[264].default_value_ = "" ; - ObSysVars[264].info_ = "The network address which the member provides for connections from other members, specified as a host:port formatted string" ; - ObSysVars[264].name_ = "group_replication_local_address" ; + ObSysVars[264].default_value_ = "AUTOMATIC" ; + ObSysVars[264].info_ = "Specifies the allowlist of hosts that are permitted to connect to the group" ; + ObSysVars[264].name_ = "group_replication_ip_whitelist" ; ObSysVars[264].data_type_ = ObVarcharType ; ObSysVars[264].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[264].id_ = SYS_VAR_GROUP_REPLICATION_LOCAL_ADDRESS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_LOCAL_ADDRESS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_LOCAL_ADDRESS] = 264 ; - ObSysVars[264].base_value_ = "" ; - ObSysVars[264].alias_ = "OB_SV_GROUP_REPLICATION_LOCAL_ADDRESS" ; + ObSysVars[264].id_ = SYS_VAR_GROUP_REPLICATION_IP_WHITELIST ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_IP_WHITELIST)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_IP_WHITELIST] = 264 ; + ObSysVars[264].base_value_ = "AUTOMATIC" ; + ObSysVars[264].alias_ = "OB_SV_GROUP_REPLICATION_IP_WHITELIST" ; }(); [&] (){ - ObSysVars[265].default_value_ = "50" ; - ObSysVars[265].info_ = "A percentage weight that can be assigned to members to influence the chance of the member being elected as primary in the event of failover, for example when the existing primary leaves a single-primary group" ; - ObSysVars[265].name_ = "group_replication_member_weight" ; - ObSysVars[265].data_type_ = ObIntType ; - ObSysVars[265].min_val_ = "0" ; - ObSysVars[265].max_val_ = "100" ; - ObSysVars[265].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[265].id_ = SYS_VAR_GROUP_REPLICATION_MEMBER_WEIGHT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_MEMBER_WEIGHT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_MEMBER_WEIGHT] = 265 ; - ObSysVars[265].base_value_ = "50" ; - ObSysVars[265].alias_ = "OB_SV_GROUP_REPLICATION_MEMBER_WEIGHT" ; + ObSysVars[265].default_value_ = "" ; + ObSysVars[265].info_ = "The network address which the member provides for connections from other members, specified as a host:port formatted string" ; + ObSysVars[265].name_ = "group_replication_local_address" ; + ObSysVars[265].data_type_ = ObVarcharType ; + ObSysVars[265].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[265].id_ = SYS_VAR_GROUP_REPLICATION_LOCAL_ADDRESS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_LOCAL_ADDRESS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_LOCAL_ADDRESS] = 265 ; + ObSysVars[265].base_value_ = "" ; + ObSysVars[265].alias_ = "OB_SV_GROUP_REPLICATION_LOCAL_ADDRESS" ; }(); [&] (){ - ObSysVars[266].default_value_ = "0" ; - ObSysVars[266].info_ = "The number of times the group communication thread waits for the communication engine mutex to be released before the thread waits for more incoming network messages" ; - ObSysVars[266].name_ = "group_replication_poll_spin_loops" ; + ObSysVars[266].default_value_ = "50" ; + ObSysVars[266].info_ = "A percentage weight that can be assigned to members to influence the chance of the member being elected as primary in the event of failover, for example when the existing primary leaves a single-primary group" ; + ObSysVars[266].name_ = "group_replication_member_weight" ; ObSysVars[266].data_type_ = ObIntType ; ObSysVars[266].min_val_ = "0" ; - ObSysVars[266].max_val_ = "4294967295" ; + ObSysVars[266].max_val_ = "100" ; ObSysVars[266].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[266].id_ = SYS_VAR_GROUP_REPLICATION_POLL_SPIN_LOOPS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_POLL_SPIN_LOOPS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_POLL_SPIN_LOOPS] = 266 ; - ObSysVars[266].base_value_ = "0" ; - ObSysVars[266].alias_ = "OB_SV_GROUP_REPLICATION_POLL_SPIN_LOOPS" ; + ObSysVars[266].id_ = SYS_VAR_GROUP_REPLICATION_MEMBER_WEIGHT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_MEMBER_WEIGHT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_MEMBER_WEIGHT] = 266 ; + ObSysVars[266].base_value_ = "50" ; + ObSysVars[266].alias_ = "OB_SV_GROUP_REPLICATION_MEMBER_WEIGHT" ; }(); [&] (){ - ObSysVars[267].default_value_ = "1" ; - ObSysVars[267].info_ = "Recovery policies when handling cached transactions after state transfer" ; - ObSysVars[267].name_ = "group_replication_recovery_complete_at" ; + ObSysVars[267].default_value_ = "0" ; + ObSysVars[267].info_ = "The number of times the group communication thread waits for the communication engine mutex to be released before the thread waits for more incoming network messages" ; + ObSysVars[267].name_ = "group_replication_poll_spin_loops" ; ObSysVars[267].data_type_ = ObIntType ; - ObSysVars[267].enum_names_ = "[u'TRANSACTIONS_CERTIFIED', u'TRANSACTIONS_APPLIED']" ; + ObSysVars[267].min_val_ = "0" ; + ObSysVars[267].max_val_ = "4294967295" ; ObSysVars[267].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[267].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_COMPLETE_AT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_COMPLETE_AT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_COMPLETE_AT] = 267 ; - ObSysVars[267].base_value_ = "1" ; - ObSysVars[267].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_COMPLETE_AT" ; + ObSysVars[267].id_ = SYS_VAR_GROUP_REPLICATION_POLL_SPIN_LOOPS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_POLL_SPIN_LOOPS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_POLL_SPIN_LOOPS] = 267 ; + ObSysVars[267].base_value_ = "0" ; + ObSysVars[267].alias_ = "OB_SV_GROUP_REPLICATION_POLL_SPIN_LOOPS" ; }(); [&] (){ - ObSysVars[268].default_value_ = "60" ; - ObSysVars[268].info_ = "The sleep time, in seconds, between reconnection attempts when no donor was found in the group" ; - ObSysVars[268].name_ = "group_replication_recovery_reconnect_interval" ; + ObSysVars[268].default_value_ = "1" ; + ObSysVars[268].info_ = "Recovery policies when handling cached transactions after state transfer" ; + ObSysVars[268].name_ = "group_replication_recovery_complete_at" ; ObSysVars[268].data_type_ = ObIntType ; - ObSysVars[268].min_val_ = "0" ; - ObSysVars[268].max_val_ = "31536000" ; + ObSysVars[268].enum_names_ = "[u'TRANSACTIONS_CERTIFIED', u'TRANSACTIONS_APPLIED']" ; ObSysVars[268].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[268].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_RECONNECT_INTERVAL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_RECONNECT_INTERVAL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_RECONNECT_INTERVAL] = 268 ; - ObSysVars[268].base_value_ = "60" ; - ObSysVars[268].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_RECONNECT_INTERVAL" ; + ObSysVars[268].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_COMPLETE_AT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_COMPLETE_AT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_COMPLETE_AT] = 268 ; + ObSysVars[268].base_value_ = "1" ; + ObSysVars[268].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_COMPLETE_AT" ; }(); [&] (){ - ObSysVars[269].default_value_ = "10" ; - ObSysVars[269].info_ = "The number of times that the member that is joining tries to connect to the available donors before giving up" ; - ObSysVars[269].name_ = "group_replication_recovery_retry_count" ; + ObSysVars[269].default_value_ = "60" ; + ObSysVars[269].info_ = "The sleep time, in seconds, between reconnection attempts when no donor was found in the group" ; + ObSysVars[269].name_ = "group_replication_recovery_reconnect_interval" ; ObSysVars[269].data_type_ = ObIntType ; ObSysVars[269].min_val_ = "0" ; ObSysVars[269].max_val_ = "31536000" ; ObSysVars[269].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[269].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_RETRY_COUNT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_RETRY_COUNT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_RETRY_COUNT] = 269 ; - ObSysVars[269].base_value_ = "10" ; - ObSysVars[269].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_RETRY_COUNT" ; + ObSysVars[269].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_RECONNECT_INTERVAL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_RECONNECT_INTERVAL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_RECONNECT_INTERVAL] = 269 ; + ObSysVars[269].base_value_ = "60" ; + ObSysVars[269].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_RECONNECT_INTERVAL" ; }(); [&] (){ - ObSysVars[270].default_value_ = "" ; - ObSysVars[270].info_ = "The path to a file that contains a list of trusted SSL certificate authorities" ; - ObSysVars[270].name_ = "group_replication_recovery_ssl_ca" ; - ObSysVars[270].data_type_ = ObVarcharType ; - ObSysVars[270].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[270].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CA ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CA)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CA] = 270 ; - ObSysVars[270].base_value_ = "" ; - ObSysVars[270].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CA" ; + ObSysVars[270].default_value_ = "10" ; + ObSysVars[270].info_ = "The number of times that the member that is joining tries to connect to the available donors before giving up" ; + ObSysVars[270].name_ = "group_replication_recovery_retry_count" ; + ObSysVars[270].data_type_ = ObIntType ; + ObSysVars[270].min_val_ = "0" ; + ObSysVars[270].max_val_ = "31536000" ; + ObSysVars[270].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[270].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_RETRY_COUNT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_RETRY_COUNT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_RETRY_COUNT] = 270 ; + ObSysVars[270].base_value_ = "10" ; + ObSysVars[270].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_RETRY_COUNT" ; }(); [&] (){ ObSysVars[271].default_value_ = "" ; - ObSysVars[271].info_ = "The path to a directory that contains trusted SSL certificate authority certificates" ; - ObSysVars[271].name_ = "group_replication_recovery_ssl_capath" ; + ObSysVars[271].info_ = "The path to a file that contains a list of trusted SSL certificate authorities" ; + ObSysVars[271].name_ = "group_replication_recovery_ssl_ca" ; ObSysVars[271].data_type_ = ObVarcharType ; ObSysVars[271].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[271].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CAPATH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CAPATH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CAPATH] = 271 ; + ObSysVars[271].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CA ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CA)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CA] = 271 ; ObSysVars[271].base_value_ = "" ; - ObSysVars[271].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CAPATH" ; + ObSysVars[271].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CA" ; }(); [&] (){ ObSysVars[272].default_value_ = "" ; - ObSysVars[272].info_ = "The name of the SSL certificate file to use for establishing a secure connection" ; - ObSysVars[272].name_ = "group_replication_recovery_ssl_cert" ; + ObSysVars[272].info_ = "The path to a directory that contains trusted SSL certificate authority certificates" ; + ObSysVars[272].name_ = "group_replication_recovery_ssl_capath" ; ObSysVars[272].data_type_ = ObVarcharType ; ObSysVars[272].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[272].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CERT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CERT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CERT] = 272 ; + ObSysVars[272].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CAPATH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CAPATH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CAPATH] = 272 ; ObSysVars[272].base_value_ = "" ; - ObSysVars[272].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CERT" ; + ObSysVars[272].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CAPATH" ; }(); [&] (){ ObSysVars[273].default_value_ = "" ; - ObSysVars[273].info_ = "The list of permissible ciphers for SSL encryption" ; - ObSysVars[273].name_ = "group_replication_recovery_ssl_cipher" ; + ObSysVars[273].info_ = "The name of the SSL certificate file to use for establishing a secure connection" ; + ObSysVars[273].name_ = "group_replication_recovery_ssl_cert" ; ObSysVars[273].data_type_ = ObVarcharType ; ObSysVars[273].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[273].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CIPHER ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CIPHER)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CIPHER] = 273 ; + ObSysVars[273].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CERT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CERT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CERT] = 273 ; ObSysVars[273].base_value_ = "" ; - ObSysVars[273].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CIPHER" ; + ObSysVars[273].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CERT" ; }(); [&] (){ ObSysVars[274].default_value_ = "" ; - ObSysVars[274].info_ = "The path to a directory that contains files containing certificate revocation lists" ; - ObSysVars[274].name_ = "group_replication_recovery_ssl_crl" ; + ObSysVars[274].info_ = "The list of permissible ciphers for SSL encryption" ; + ObSysVars[274].name_ = "group_replication_recovery_ssl_cipher" ; ObSysVars[274].data_type_ = ObVarcharType ; ObSysVars[274].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[274].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRL] = 274 ; + ObSysVars[274].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CIPHER ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CIPHER)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CIPHER] = 274 ; ObSysVars[274].base_value_ = "" ; - ObSysVars[274].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CRL" ; + ObSysVars[274].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CIPHER" ; }(); [&] (){ ObSysVars[275].default_value_ = "" ; ObSysVars[275].info_ = "The path to a directory that contains files containing certificate revocation lists" ; - ObSysVars[275].name_ = "group_replication_recovery_ssl_crlpath" ; + ObSysVars[275].name_ = "group_replication_recovery_ssl_crl" ; ObSysVars[275].data_type_ = ObVarcharType ; ObSysVars[275].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[275].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRLPATH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRLPATH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRLPATH] = 275 ; + ObSysVars[275].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRL] = 275 ; ObSysVars[275].base_value_ = "" ; - ObSysVars[275].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CRLPATH" ; + ObSysVars[275].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CRL" ; }(); [&] (){ ObSysVars[276].default_value_ = "" ; - ObSysVars[276].info_ = "The name of the SSL key file to use for establishing a secure connection" ; - ObSysVars[276].name_ = "group_replication_recovery_ssl_key" ; + ObSysVars[276].info_ = "The path to a directory that contains files containing certificate revocation lists" ; + ObSysVars[276].name_ = "group_replication_recovery_ssl_crlpath" ; ObSysVars[276].data_type_ = ObVarcharType ; ObSysVars[276].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[276].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_KEY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_KEY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_KEY] = 276 ; + ObSysVars[276].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRLPATH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRLPATH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRLPATH] = 276 ; ObSysVars[276].base_value_ = "" ; - ObSysVars[276].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_KEY" ; + ObSysVars[276].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_CRLPATH" ; }(); [&] (){ - ObSysVars[277].default_value_ = "0" ; - ObSysVars[277].info_ = "Make the recovery process check the server's Common Name value in the donor sent certificate" ; - ObSysVars[277].name_ = "group_replication_recovery_ssl_verify_server_cert" ; - ObSysVars[277].data_type_ = ObIntType ; - ObSysVars[277].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[277].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_VERIFY_SERVER_CERT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_VERIFY_SERVER_CERT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_VERIFY_SERVER_CERT] = 277 ; - ObSysVars[277].base_value_ = "0" ; - ObSysVars[277].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_VERIFY_SERVER_CERT" ; + ObSysVars[277].default_value_ = "" ; + ObSysVars[277].info_ = "The name of the SSL key file to use for establishing a secure connection" ; + ObSysVars[277].name_ = "group_replication_recovery_ssl_key" ; + ObSysVars[277].data_type_ = ObVarcharType ; + ObSysVars[277].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[277].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_KEY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_KEY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_KEY] = 277 ; + ObSysVars[277].base_value_ = "" ; + ObSysVars[277].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_KEY" ; }(); [&] (){ ObSysVars[278].default_value_ = "0" ; - ObSysVars[278].info_ = "Whether Group Replication recovery connection should use SSL or not" ; - ObSysVars[278].name_ = "group_replication_recovery_use_ssl" ; + ObSysVars[278].info_ = "Make the recovery process check the server's Common Name value in the donor sent certificate" ; + ObSysVars[278].name_ = "group_replication_recovery_ssl_verify_server_cert" ; ObSysVars[278].data_type_ = ObIntType ; ObSysVars[278].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[278].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_USE_SSL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_USE_SSL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_USE_SSL] = 278 ; + ObSysVars[278].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_VERIFY_SERVER_CERT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_VERIFY_SERVER_CERT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_VERIFY_SERVER_CERT] = 278 ; ObSysVars[278].base_value_ = "0" ; - ObSysVars[278].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_USE_SSL" ; + ObSysVars[278].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_SSL_VERIFY_SERVER_CERT" ; }(); [&] (){ ObSysVars[279].default_value_ = "0" ; - ObSysVars[279].info_ = "Instructs the group to pick a single server automatically to be the one that handles read/write workload. This server is the primary and all others are secondaries" ; - ObSysVars[279].name_ = "group_replication_single_primary_mode" ; + ObSysVars[279].info_ = "Whether Group Replication recovery connection should use SSL or not" ; + ObSysVars[279].name_ = "group_replication_recovery_use_ssl" ; ObSysVars[279].data_type_ = ObIntType ; ObSysVars[279].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[279].id_ = SYS_VAR_GROUP_REPLICATION_SINGLE_PRIMARY_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_SINGLE_PRIMARY_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_SINGLE_PRIMARY_MODE] = 279 ; + ObSysVars[279].id_ = SYS_VAR_GROUP_REPLICATION_RECOVERY_USE_SSL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_RECOVERY_USE_SSL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_RECOVERY_USE_SSL] = 279 ; ObSysVars[279].base_value_ = "0" ; - ObSysVars[279].alias_ = "OB_SV_GROUP_REPLICATION_SINGLE_PRIMARY_MODE" ; + ObSysVars[279].alias_ = "OB_SV_GROUP_REPLICATION_RECOVERY_USE_SSL" ; }(); [&] (){ ObSysVars[280].default_value_ = "0" ; - ObSysVars[280].info_ = "Specifies the security state of the connection between Group Replication members" ; - ObSysVars[280].name_ = "group_replication_ssl_mode" ; + ObSysVars[280].info_ = "Instructs the group to pick a single server automatically to be the one that handles read/write workload. This server is the primary and all others are secondaries" ; + ObSysVars[280].name_ = "group_replication_single_primary_mode" ; ObSysVars[280].data_type_ = ObIntType ; - ObSysVars[280].enum_names_ = "[u'DISABLED', u'REQUIRED', u'VERIFY_CA', u'VERIFY_IDENTITY']" ; ObSysVars[280].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[280].id_ = SYS_VAR_GROUP_REPLICATION_SSL_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_SSL_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_SSL_MODE] = 280 ; + ObSysVars[280].id_ = SYS_VAR_GROUP_REPLICATION_SINGLE_PRIMARY_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_SINGLE_PRIMARY_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_SINGLE_PRIMARY_MODE] = 280 ; ObSysVars[280].base_value_ = "0" ; - ObSysVars[280].alias_ = "OB_SV_GROUP_REPLICATION_SSL_MODE" ; + ObSysVars[280].alias_ = "OB_SV_GROUP_REPLICATION_SINGLE_PRIMARY_MODE" ; }(); [&] (){ ObSysVars[281].default_value_ = "0" ; - ObSysVars[281].info_ = "Whether the server should start Group Replication or not during server start" ; - ObSysVars[281].name_ = "group_replication_start_on_boot" ; + ObSysVars[281].info_ = "Specifies the security state of the connection between Group Replication members" ; + ObSysVars[281].name_ = "group_replication_ssl_mode" ; ObSysVars[281].data_type_ = ObIntType ; + ObSysVars[281].enum_names_ = "[u'DISABLED', u'REQUIRED', u'VERIFY_CA', u'VERIFY_IDENTITY']" ; ObSysVars[281].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[281].id_ = SYS_VAR_GROUP_REPLICATION_START_ON_BOOT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_START_ON_BOOT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_START_ON_BOOT] = 281 ; + ObSysVars[281].id_ = SYS_VAR_GROUP_REPLICATION_SSL_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_SSL_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_SSL_MODE] = 281 ; ObSysVars[281].base_value_ = "0" ; - ObSysVars[281].alias_ = "OB_SV_GROUP_REPLICATION_START_ON_BOOT" ; + ObSysVars[281].alias_ = "OB_SV_GROUP_REPLICATION_SSL_MODE" ; }(); [&] (){ ObSysVars[282].default_value_ = "0" ; - ObSysVars[282].info_ = "Configures the maximum transaction size in bytes which the replication group accepts" ; - ObSysVars[282].name_ = "group_replication_transaction_size_limit" ; + ObSysVars[282].info_ = "Whether the server should start Group Replication or not during server start" ; + ObSysVars[282].name_ = "group_replication_start_on_boot" ; ObSysVars[282].data_type_ = ObIntType ; - ObSysVars[282].min_val_ = "0" ; - ObSysVars[282].max_val_ = "2147483647" ; ObSysVars[282].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[282].id_ = SYS_VAR_GROUP_REPLICATION_TRANSACTION_SIZE_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_TRANSACTION_SIZE_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_TRANSACTION_SIZE_LIMIT] = 282 ; + ObSysVars[282].id_ = SYS_VAR_GROUP_REPLICATION_START_ON_BOOT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_START_ON_BOOT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_START_ON_BOOT] = 282 ; ObSysVars[282].base_value_ = "0" ; - ObSysVars[282].alias_ = "OB_SV_GROUP_REPLICATION_TRANSACTION_SIZE_LIMIT" ; + ObSysVars[282].alias_ = "OB_SV_GROUP_REPLICATION_START_ON_BOOT" ; }(); [&] (){ ObSysVars[283].default_value_ = "0" ; - ObSysVars[283].info_ = "Configures how long members that suffer a network partition and cannot connect to the majority wait before leaving the group" ; - ObSysVars[283].name_ = "group_replication_unreachable_majority_timeout" ; + ObSysVars[283].info_ = "Configures the maximum transaction size in bytes which the replication group accepts" ; + ObSysVars[283].name_ = "group_replication_transaction_size_limit" ; ObSysVars[283].data_type_ = ObIntType ; ObSysVars[283].min_val_ = "0" ; - ObSysVars[283].max_val_ = "31536000" ; + ObSysVars[283].max_val_ = "2147483647" ; ObSysVars[283].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[283].id_ = SYS_VAR_GROUP_REPLICATION_UNREACHABLE_MAJORITY_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_UNREACHABLE_MAJORITY_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_UNREACHABLE_MAJORITY_TIMEOUT] = 283 ; + ObSysVars[283].id_ = SYS_VAR_GROUP_REPLICATION_TRANSACTION_SIZE_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_TRANSACTION_SIZE_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_TRANSACTION_SIZE_LIMIT] = 283 ; ObSysVars[283].base_value_ = "0" ; - ObSysVars[283].alias_ = "OB_SV_GROUP_REPLICATION_UNREACHABLE_MAJORITY_TIMEOUT" ; + ObSysVars[283].alias_ = "OB_SV_GROUP_REPLICATION_TRANSACTION_SIZE_LIMIT" ; }(); [&] (){ ObSysVars[284].default_value_ = "0" ; - ObSysVars[284].info_ = "The replication thread delay in milliseconds on a replica server if innodb_thread_concurrency is reached" ; - ObSysVars[284].name_ = "innodb_replication_delay" ; + ObSysVars[284].info_ = "Configures how long members that suffer a network partition and cannot connect to the majority wait before leaving the group" ; + ObSysVars[284].name_ = "group_replication_unreachable_majority_timeout" ; ObSysVars[284].data_type_ = ObIntType ; ObSysVars[284].min_val_ = "0" ; - ObSysVars[284].max_val_ = "4294967295" ; + ObSysVars[284].max_val_ = "31536000" ; ObSysVars[284].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[284].id_ = SYS_VAR_INNODB_REPLICATION_DELAY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_REPLICATION_DELAY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_REPLICATION_DELAY] = 284 ; + ObSysVars[284].id_ = SYS_VAR_GROUP_REPLICATION_UNREACHABLE_MAJORITY_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_UNREACHABLE_MAJORITY_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_UNREACHABLE_MAJORITY_TIMEOUT] = 284 ; ObSysVars[284].base_value_ = "0" ; - ObSysVars[284].alias_ = "OB_SV_INNODB_REPLICATION_DELAY" ; + ObSysVars[284].alias_ = "OB_SV_GROUP_REPLICATION_UNREACHABLE_MAJORITY_TIMEOUT" ; }(); [&] (){ - ObSysVars[285].default_value_ = "FILE" ; - ObSysVars[285].info_ = "The setting of this variable determines whether the replica records metadata about the source, consisting of status and connection information, to an InnoDB table in the mysql system database, or as a file in the data directory" ; - ObSysVars[285].name_ = "master_info_repository" ; - ObSysVars[285].data_type_ = ObVarcharType ; - ObSysVars[285].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[285].id_ = SYS_VAR_MASTER_INFO_REPOSITORY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MASTER_INFO_REPOSITORY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MASTER_INFO_REPOSITORY] = 285 ; - ObSysVars[285].base_value_ = "FILE" ; - ObSysVars[285].alias_ = "OB_SV_MASTER_INFO_REPOSITORY" ; + ObSysVars[285].default_value_ = "0" ; + ObSysVars[285].info_ = "The replication thread delay in milliseconds on a replica server if innodb_thread_concurrency is reached" ; + ObSysVars[285].name_ = "innodb_replication_delay" ; + ObSysVars[285].data_type_ = ObIntType ; + ObSysVars[285].min_val_ = "0" ; + ObSysVars[285].max_val_ = "4294967295" ; + ObSysVars[285].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[285].id_ = SYS_VAR_INNODB_REPLICATION_DELAY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_REPLICATION_DELAY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_REPLICATION_DELAY] = 285 ; + ObSysVars[285].base_value_ = "0" ; + ObSysVars[285].alias_ = "OB_SV_INNODB_REPLICATION_DELAY" ; }(); [&] (){ - ObSysVars[286].default_value_ = "0" ; - ObSysVars[286].info_ = "Enabling this variable causes the source to verify events read from the binary log by examining checksums, and to stop with an error in the event of a mismatch" ; - ObSysVars[286].name_ = "master_verify_checksum" ; - ObSysVars[286].data_type_ = ObIntType ; - ObSysVars[286].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[286].id_ = SYS_VAR_MASTER_VERIFY_CHECKSUM ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MASTER_VERIFY_CHECKSUM)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MASTER_VERIFY_CHECKSUM] = 286 ; - ObSysVars[286].base_value_ = "0" ; - ObSysVars[286].alias_ = "OB_SV_MASTER_VERIFY_CHECKSUM" ; + ObSysVars[286].default_value_ = "FILE" ; + ObSysVars[286].info_ = "The setting of this variable determines whether the replica records metadata about the source, consisting of status and connection information, to an InnoDB table in the mysql system database, or as a file in the data directory" ; + ObSysVars[286].name_ = "master_info_repository" ; + ObSysVars[286].data_type_ = ObVarcharType ; + ObSysVars[286].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[286].id_ = SYS_VAR_MASTER_INFO_REPOSITORY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MASTER_INFO_REPOSITORY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MASTER_INFO_REPOSITORY] = 286 ; + ObSysVars[286].base_value_ = "FILE" ; + ObSysVars[286].alias_ = "OB_SV_MASTER_INFO_REPOSITORY" ; }(); [&] (){ ObSysVars[287].default_value_ = "0" ; - ObSysVars[287].info_ = "Assists with the correct handling of transactions that originated on older or newer servers than the server currently processing them" ; - ObSysVars[287].name_ = "pseudo_slave_mode" ; + ObSysVars[287].info_ = "Enabling this variable causes the source to verify events read from the binary log by examining checksums, and to stop with an error in the event of a mismatch" ; + ObSysVars[287].name_ = "master_verify_checksum" ; ObSysVars[287].data_type_ = ObIntType ; - ObSysVars[287].flags_ = ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[287].id_ = SYS_VAR_PSEUDO_SLAVE_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PSEUDO_SLAVE_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PSEUDO_SLAVE_MODE] = 287 ; + ObSysVars[287].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[287].id_ = SYS_VAR_MASTER_VERIFY_CHECKSUM ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MASTER_VERIFY_CHECKSUM)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MASTER_VERIFY_CHECKSUM] = 287 ; ObSysVars[287].base_value_ = "0" ; - ObSysVars[287].alias_ = "OB_SV_PSEUDO_SLAVE_MODE" ; + ObSysVars[287].alias_ = "OB_SV_MASTER_VERIFY_CHECKSUM" ; }(); [&] (){ - ObSysVars[288].default_value_ = "2147483647" ; - ObSysVars[288].info_ = "This variable is for internal server use" ; - ObSysVars[288].name_ = "pseudo_thread_id" ; + ObSysVars[288].default_value_ = "0" ; + ObSysVars[288].info_ = "Assists with the correct handling of transactions that originated on older or newer servers than the server currently processing them" ; + ObSysVars[288].name_ = "pseudo_slave_mode" ; ObSysVars[288].data_type_ = ObIntType ; - ObSysVars[288].min_val_ = "0" ; - ObSysVars[288].max_val_ = "2147483647" ; - ObSysVars[288].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[288].id_ = SYS_VAR_PSEUDO_THREAD_ID ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PSEUDO_THREAD_ID)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PSEUDO_THREAD_ID] = 288 ; - ObSysVars[288].base_value_ = "2147483647" ; - ObSysVars[288].alias_ = "OB_SV_PSEUDO_THREAD_ID" ; + ObSysVars[288].flags_ = ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[288].id_ = SYS_VAR_PSEUDO_SLAVE_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PSEUDO_SLAVE_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PSEUDO_SLAVE_MODE] = 288 ; + ObSysVars[288].base_value_ = "0" ; + ObSysVars[288].alias_ = "OB_SV_PSEUDO_SLAVE_MODE" ; }(); [&] (){ - ObSysVars[289].default_value_ = "0" ; - ObSysVars[289].info_ = "For internal use by mysqlbinlog" ; - ObSysVars[289].name_ = "rbr_exec_mode" ; + ObSysVars[289].default_value_ = "2147483647" ; + ObSysVars[289].info_ = "This variable is for internal server use" ; + ObSysVars[289].name_ = "pseudo_thread_id" ; ObSysVars[289].data_type_ = ObIntType ; - ObSysVars[289].enum_names_ = "[u'STRICT', u'IDEMPOTENT']" ; + ObSysVars[289].min_val_ = "0" ; + ObSysVars[289].max_val_ = "2147483647" ; ObSysVars[289].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[289].id_ = SYS_VAR_RBR_EXEC_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RBR_EXEC_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RBR_EXEC_MODE] = 289 ; - ObSysVars[289].base_value_ = "0" ; - ObSysVars[289].alias_ = "OB_SV_RBR_EXEC_MODE" ; + ObSysVars[289].id_ = SYS_VAR_PSEUDO_THREAD_ID ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PSEUDO_THREAD_ID)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PSEUDO_THREAD_ID] = 289 ; + ObSysVars[289].base_value_ = "2147483647" ; + ObSysVars[289].alias_ = "OB_SV_PSEUDO_THREAD_ID" ; }(); [&] (){ ObSysVars[290].default_value_ = "0" ; - ObSysVars[290].info_ = "Use shared locks, and avoid unnecessary lock acquisitions, to improve performance for semisynchronous replication" ; - ObSysVars[290].name_ = "replication_optimize_for_static_plugin_config" ; + ObSysVars[290].info_ = "For internal use by mysqlbinlog" ; + ObSysVars[290].name_ = "rbr_exec_mode" ; ObSysVars[290].data_type_ = ObIntType ; - ObSysVars[290].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[290].id_ = SYS_VAR_REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG] = 290 ; + ObSysVars[290].enum_names_ = "[u'STRICT', u'IDEMPOTENT']" ; + ObSysVars[290].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[290].id_ = SYS_VAR_RBR_EXEC_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RBR_EXEC_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RBR_EXEC_MODE] = 290 ; ObSysVars[290].base_value_ = "0" ; - ObSysVars[290].alias_ = "OB_SV_REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG" ; + ObSysVars[290].alias_ = "OB_SV_RBR_EXEC_MODE" ; }(); [&] (){ ObSysVars[291].default_value_ = "0" ; - ObSysVars[291].info_ = "Limit callbacks to improve performance for semisynchronous replication" ; - ObSysVars[291].name_ = "replication_sender_observe_commit_only" ; + ObSysVars[291].info_ = "Use shared locks, and avoid unnecessary lock acquisitions, to improve performance for semisynchronous replication" ; + ObSysVars[291].name_ = "replication_optimize_for_static_plugin_config" ; ObSysVars[291].data_type_ = ObIntType ; ObSysVars[291].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[291].id_ = SYS_VAR_REPLICATION_SENDER_OBSERVE_COMMIT_ONLY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPLICATION_SENDER_OBSERVE_COMMIT_ONLY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_REPLICATION_SENDER_OBSERVE_COMMIT_ONLY] = 291 ; + ObSysVars[291].id_ = SYS_VAR_REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG] = 291 ; ObSysVars[291].base_value_ = "0" ; - ObSysVars[291].alias_ = "OB_SV_REPLICATION_SENDER_OBSERVE_COMMIT_ONLY" ; + ObSysVars[291].alias_ = "OB_SV_REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG" ; }(); [&] (){ ObSysVars[292].default_value_ = "0" ; - ObSysVars[292].info_ = "Controls whether semisynchronous replication is enabled on the source" ; - ObSysVars[292].name_ = "rpl_semi_sync_master_enabled" ; + ObSysVars[292].info_ = "Limit callbacks to improve performance for semisynchronous replication" ; + ObSysVars[292].name_ = "replication_sender_observe_commit_only" ; ObSysVars[292].data_type_ = ObIntType ; ObSysVars[292].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[292].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_ENABLED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_ENABLED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_ENABLED] = 292 ; + ObSysVars[292].id_ = SYS_VAR_REPLICATION_SENDER_OBSERVE_COMMIT_ONLY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPLICATION_SENDER_OBSERVE_COMMIT_ONLY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_REPLICATION_SENDER_OBSERVE_COMMIT_ONLY] = 292 ; ObSysVars[292].base_value_ = "0" ; - ObSysVars[292].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_ENABLED" ; + ObSysVars[292].alias_ = "OB_SV_REPLICATION_SENDER_OBSERVE_COMMIT_ONLY" ; }(); [&] (){ - ObSysVars[293].default_value_ = "10000" ; - ObSysVars[293].info_ = "A value in milliseconds that controls how long the source waits on a commit for acknowledgment from a replica before timing out and reverting to asynchronous replication" ; - ObSysVars[293].name_ = "rpl_semi_sync_master_timeout" ; + ObSysVars[293].default_value_ = "0" ; + ObSysVars[293].info_ = "Controls whether semisynchronous replication is enabled on the source" ; + ObSysVars[293].name_ = "rpl_semi_sync_master_enabled" ; ObSysVars[293].data_type_ = ObIntType ; - ObSysVars[293].min_val_ = "0" ; - ObSysVars[293].max_val_ = "4294967295" ; ObSysVars[293].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[293].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_TIMEOUT] = 293 ; - ObSysVars[293].base_value_ = "10000" ; - ObSysVars[293].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_TIMEOUT" ; + ObSysVars[293].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_ENABLED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_ENABLED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_ENABLED] = 293 ; + ObSysVars[293].base_value_ = "0" ; + ObSysVars[293].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_ENABLED" ; }(); [&] (){ - ObSysVars[294].default_value_ = "32" ; - ObSysVars[294].info_ = "The semisynchronous replication debug trace level on the source" ; - ObSysVars[294].name_ = "rpl_semi_sync_master_trace_level" ; + ObSysVars[294].default_value_ = "10000" ; + ObSysVars[294].info_ = "A value in milliseconds that controls how long the source waits on a commit for acknowledgment from a replica before timing out and reverting to asynchronous replication" ; + ObSysVars[294].name_ = "rpl_semi_sync_master_timeout" ; ObSysVars[294].data_type_ = ObIntType ; ObSysVars[294].min_val_ = "0" ; ObSysVars[294].max_val_ = "4294967295" ; ObSysVars[294].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[294].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_TRACE_LEVEL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_TRACE_LEVEL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_TRACE_LEVEL] = 294 ; - ObSysVars[294].base_value_ = "32" ; - ObSysVars[294].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_TRACE_LEVEL" ; + ObSysVars[294].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_TIMEOUT] = 294 ; + ObSysVars[294].base_value_ = "10000" ; + ObSysVars[294].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_TIMEOUT" ; }(); [&] (){ - ObSysVars[295].default_value_ = "1" ; - ObSysVars[295].info_ = "The number of replica acknowledgments the source must receive per transaction before proceeding" ; - ObSysVars[295].name_ = "rpl_semi_sync_master_wait_for_slave_count" ; + ObSysVars[295].default_value_ = "32" ; + ObSysVars[295].info_ = "The semisynchronous replication debug trace level on the source" ; + ObSysVars[295].name_ = "rpl_semi_sync_master_trace_level" ; ObSysVars[295].data_type_ = ObIntType ; - ObSysVars[295].min_val_ = "1" ; - ObSysVars[295].max_val_ = "65535" ; + ObSysVars[295].min_val_ = "0" ; + ObSysVars[295].max_val_ = "4294967295" ; ObSysVars[295].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[295].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_FOR_SLAVE_COUNT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_FOR_SLAVE_COUNT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_FOR_SLAVE_COUNT] = 295 ; - ObSysVars[295].base_value_ = "1" ; - ObSysVars[295].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_WAIT_FOR_SLAVE_COUNT" ; + ObSysVars[295].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_TRACE_LEVEL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_TRACE_LEVEL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_TRACE_LEVEL] = 295 ; + ObSysVars[295].base_value_ = "32" ; + ObSysVars[295].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_TRACE_LEVEL" ; }(); [&] (){ - ObSysVars[296].default_value_ = "0" ; - ObSysVars[296].info_ = "Controls whether the source waits for the timeout period configured by rpl_semi_sync_master_timeout to expire, even if the replica count drops to less than the number of replicas configured by rpl_semi_sync_master_wait_for_slave_count during the timeout period" ; - ObSysVars[296].name_ = "rpl_semi_sync_master_wait_no_slave" ; + ObSysVars[296].default_value_ = "1" ; + ObSysVars[296].info_ = "The number of replica acknowledgments the source must receive per transaction before proceeding" ; + ObSysVars[296].name_ = "rpl_semi_sync_master_wait_for_slave_count" ; ObSysVars[296].data_type_ = ObIntType ; + ObSysVars[296].min_val_ = "1" ; + ObSysVars[296].max_val_ = "65535" ; ObSysVars[296].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[296].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE] = 296 ; - ObSysVars[296].base_value_ = "0" ; - ObSysVars[296].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE" ; + ObSysVars[296].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_FOR_SLAVE_COUNT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_FOR_SLAVE_COUNT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_FOR_SLAVE_COUNT] = 296 ; + ObSysVars[296].base_value_ = "1" ; + ObSysVars[296].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_WAIT_FOR_SLAVE_COUNT" ; }(); [&] (){ ObSysVars[297].default_value_ = "0" ; - ObSysVars[297].info_ = "This variable controls the point at which a semisynchronous source waits for replica acknowledgment of transaction receipt before returning a status to the client that committed the transaction" ; - ObSysVars[297].name_ = "rpl_semi_sync_master_wait_point" ; + ObSysVars[297].info_ = "Controls whether the source waits for the timeout period configured by rpl_semi_sync_master_timeout to expire, even if the replica count drops to less than the number of replicas configured by rpl_semi_sync_master_wait_for_slave_count during the timeout period" ; + ObSysVars[297].name_ = "rpl_semi_sync_master_wait_no_slave" ; ObSysVars[297].data_type_ = ObIntType ; - ObSysVars[297].enum_names_ = "[u'AFTER_SYNC', u'AFTER_COMMIT']" ; ObSysVars[297].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[297].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_POINT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_POINT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_POINT] = 297 ; + ObSysVars[297].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE] = 297 ; ObSysVars[297].base_value_ = "0" ; - ObSysVars[297].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_WAIT_POINT" ; + ObSysVars[297].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE" ; }(); [&] (){ ObSysVars[298].default_value_ = "0" ; - ObSysVars[298].info_ = "Controls whether semisynchronous replication is enabled on the replica" ; - ObSysVars[298].name_ = "rpl_semi_sync_slave_enabled" ; + ObSysVars[298].info_ = "This variable controls the point at which a semisynchronous source waits for replica acknowledgment of transaction receipt before returning a status to the client that committed the transaction" ; + ObSysVars[298].name_ = "rpl_semi_sync_master_wait_point" ; ObSysVars[298].data_type_ = ObIntType ; + ObSysVars[298].enum_names_ = "[u'AFTER_SYNC', u'AFTER_COMMIT']" ; ObSysVars[298].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[298].id_ = SYS_VAR_RPL_SEMI_SYNC_SLAVE_ENABLED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_SLAVE_ENABLED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_SLAVE_ENABLED] = 298 ; + ObSysVars[298].id_ = SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_POINT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_POINT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_POINT] = 298 ; ObSysVars[298].base_value_ = "0" ; - ObSysVars[298].alias_ = "OB_SV_RPL_SEMI_SYNC_SLAVE_ENABLED" ; + ObSysVars[298].alias_ = "OB_SV_RPL_SEMI_SYNC_MASTER_WAIT_POINT" ; }(); [&] (){ - ObSysVars[299].default_value_ = "32" ; - ObSysVars[299].info_ = "The semisynchronous replication debug trace level on the replica" ; - ObSysVars[299].name_ = "rpl_semi_sync_slave_trace_level" ; + ObSysVars[299].default_value_ = "0" ; + ObSysVars[299].info_ = "Controls whether semisynchronous replication is enabled on the replica" ; + ObSysVars[299].name_ = "rpl_semi_sync_slave_enabled" ; ObSysVars[299].data_type_ = ObIntType ; - ObSysVars[299].min_val_ = "0" ; - ObSysVars[299].max_val_ = "4294967295" ; ObSysVars[299].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[299].id_ = SYS_VAR_RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL] = 299 ; - ObSysVars[299].base_value_ = "32" ; - ObSysVars[299].alias_ = "OB_SV_RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL" ; + ObSysVars[299].id_ = SYS_VAR_RPL_SEMI_SYNC_SLAVE_ENABLED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_SLAVE_ENABLED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_SLAVE_ENABLED] = 299 ; + ObSysVars[299].base_value_ = "0" ; + ObSysVars[299].alias_ = "OB_SV_RPL_SEMI_SYNC_SLAVE_ENABLED" ; }(); [&] (){ - ObSysVars[300].default_value_ = "31536000" ; - ObSysVars[300].info_ = "You can control the length of time (in seconds) that STOP SLAVE waits before timing out by setting this variab" ; - ObSysVars[300].name_ = "rpl_stop_slave_timeout" ; + ObSysVars[300].default_value_ = "32" ; + ObSysVars[300].info_ = "The semisynchronous replication debug trace level on the replica" ; + ObSysVars[300].name_ = "rpl_semi_sync_slave_trace_level" ; ObSysVars[300].data_type_ = ObIntType ; - ObSysVars[300].min_val_ = "2" ; - ObSysVars[300].max_val_ = "31536000" ; + ObSysVars[300].min_val_ = "0" ; + ObSysVars[300].max_val_ = "4294967295" ; ObSysVars[300].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[300].id_ = SYS_VAR_RPL_STOP_SLAVE_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_STOP_SLAVE_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RPL_STOP_SLAVE_TIMEOUT] = 300 ; - ObSysVars[300].base_value_ = "31536000" ; - ObSysVars[300].alias_ = "OB_SV_RPL_STOP_SLAVE_TIMEOUT" ; + ObSysVars[300].id_ = SYS_VAR_RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL] = 300 ; + ObSysVars[300].base_value_ = "32" ; + ObSysVars[300].alias_ = "OB_SV_RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL" ; }(); [&] (){ - ObSysVars[301].default_value_ = "0" ; - ObSysVars[301].info_ = "Whether or not batched updates are enabled on NDB Cluster replicas" ; - ObSysVars[301].name_ = "slave_allow_batching" ; + ObSysVars[301].default_value_ = "31536000" ; + ObSysVars[301].info_ = "You can control the length of time (in seconds) that STOP SLAVE waits before timing out by setting this variab" ; + ObSysVars[301].name_ = "rpl_stop_slave_timeout" ; ObSysVars[301].data_type_ = ObIntType ; + ObSysVars[301].min_val_ = "2" ; + ObSysVars[301].max_val_ = "31536000" ; ObSysVars[301].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[301].id_ = SYS_VAR_SLAVE_ALLOW_BATCHING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_ALLOW_BATCHING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_ALLOW_BATCHING] = 301 ; - ObSysVars[301].base_value_ = "0" ; - ObSysVars[301].alias_ = "OB_SV_SLAVE_ALLOW_BATCHING" ; + ObSysVars[301].id_ = SYS_VAR_RPL_STOP_SLAVE_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RPL_STOP_SLAVE_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RPL_STOP_SLAVE_TIMEOUT] = 301 ; + ObSysVars[301].base_value_ = "31536000" ; + ObSysVars[301].alias_ = "OB_SV_RPL_STOP_SLAVE_TIMEOUT" ; }(); [&] (){ - ObSysVars[302].default_value_ = "512" ; - ObSysVars[302].info_ = "Sets the maximum number of transactions that can be processed by a multithreaded replica before a checkpoint operation is called to update its status as shown by SHOW SLAVE STATUS" ; - ObSysVars[302].name_ = "slave_checkpoint_group" ; + ObSysVars[302].default_value_ = "0" ; + ObSysVars[302].info_ = "Whether or not batched updates are enabled on NDB Cluster replicas" ; + ObSysVars[302].name_ = "slave_allow_batching" ; ObSysVars[302].data_type_ = ObIntType ; - ObSysVars[302].min_val_ = "32" ; - ObSysVars[302].max_val_ = "524280" ; ObSysVars[302].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[302].id_ = SYS_VAR_SLAVE_CHECKPOINT_GROUP ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_CHECKPOINT_GROUP)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_CHECKPOINT_GROUP] = 302 ; - ObSysVars[302].base_value_ = "512" ; - ObSysVars[302].alias_ = "OB_SV_SLAVE_CHECKPOINT_GROUP" ; + ObSysVars[302].id_ = SYS_VAR_SLAVE_ALLOW_BATCHING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_ALLOW_BATCHING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_ALLOW_BATCHING] = 302 ; + ObSysVars[302].base_value_ = "0" ; + ObSysVars[302].alias_ = "OB_SV_SLAVE_ALLOW_BATCHING" ; }(); [&] (){ - ObSysVars[303].default_value_ = "300" ; - ObSysVars[303].info_ = "Sets the maximum time (in milliseconds) that is allowed to pass before a checkpoint operation is called to update the status of a multithreaded replica as shown by SHOW SLAVE STATUS" ; - ObSysVars[303].name_ = "slave_checkpoint_period" ; + ObSysVars[303].default_value_ = "512" ; + ObSysVars[303].info_ = "Sets the maximum number of transactions that can be processed by a multithreaded replica before a checkpoint operation is called to update its status as shown by SHOW SLAVE STATUS" ; + ObSysVars[303].name_ = "slave_checkpoint_group" ; ObSysVars[303].data_type_ = ObIntType ; - ObSysVars[303].min_val_ = "1" ; - ObSysVars[303].max_val_ = "4294967295" ; + ObSysVars[303].min_val_ = "32" ; + ObSysVars[303].max_val_ = "524280" ; ObSysVars[303].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[303].id_ = SYS_VAR_SLAVE_CHECKPOINT_PERIOD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_CHECKPOINT_PERIOD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_CHECKPOINT_PERIOD] = 303 ; - ObSysVars[303].base_value_ = "300" ; - ObSysVars[303].alias_ = "OB_SV_SLAVE_CHECKPOINT_PERIOD" ; + ObSysVars[303].id_ = SYS_VAR_SLAVE_CHECKPOINT_GROUP ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_CHECKPOINT_GROUP)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_CHECKPOINT_GROUP] = 303 ; + ObSysVars[303].base_value_ = "512" ; + ObSysVars[303].alias_ = "OB_SV_SLAVE_CHECKPOINT_GROUP" ; }(); [&] (){ - ObSysVars[304].default_value_ = "0" ; - ObSysVars[304].info_ = "Whether to use compression of the source/replica protocol if both source and replica support it" ; - ObSysVars[304].name_ = "slave_compressed_protocol" ; + ObSysVars[304].default_value_ = "300" ; + ObSysVars[304].info_ = "Sets the maximum time (in milliseconds) that is allowed to pass before a checkpoint operation is called to update the status of a multithreaded replica as shown by SHOW SLAVE STATUS" ; + ObSysVars[304].name_ = "slave_checkpoint_period" ; ObSysVars[304].data_type_ = ObIntType ; + ObSysVars[304].min_val_ = "1" ; + ObSysVars[304].max_val_ = "4294967295" ; ObSysVars[304].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[304].id_ = SYS_VAR_SLAVE_COMPRESSED_PROTOCOL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_COMPRESSED_PROTOCOL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_COMPRESSED_PROTOCOL] = 304 ; - ObSysVars[304].base_value_ = "0" ; - ObSysVars[304].alias_ = "OB_SV_SLAVE_COMPRESSED_PROTOCOL" ; + ObSysVars[304].id_ = SYS_VAR_SLAVE_CHECKPOINT_PERIOD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_CHECKPOINT_PERIOD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_CHECKPOINT_PERIOD] = 304 ; + ObSysVars[304].base_value_ = "300" ; + ObSysVars[304].alias_ = "OB_SV_SLAVE_CHECKPOINT_PERIOD" ; }(); [&] (){ ObSysVars[305].default_value_ = "0" ; - ObSysVars[305].info_ = "Controls how a replication thread resolves conflicts and errors during replication" ; - ObSysVars[305].name_ = "slave_exec_mode" ; + ObSysVars[305].info_ = "Whether to use compression of the source/replica protocol if both source and replica support it" ; + ObSysVars[305].name_ = "slave_compressed_protocol" ; ObSysVars[305].data_type_ = ObIntType ; - ObSysVars[305].enum_names_ = "[u'STRICT', u'IDEMPOTENT']" ; ObSysVars[305].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[305].id_ = SYS_VAR_SLAVE_EXEC_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_EXEC_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_EXEC_MODE] = 305 ; + ObSysVars[305].id_ = SYS_VAR_SLAVE_COMPRESSED_PROTOCOL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_COMPRESSED_PROTOCOL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_COMPRESSED_PROTOCOL] = 305 ; ObSysVars[305].base_value_ = "0" ; - ObSysVars[305].alias_ = "OB_SV_SLAVE_EXEC_MODE" ; + ObSysVars[305].alias_ = "OB_SV_SLAVE_COMPRESSED_PROTOCOL" ; }(); [&] (){ - ObSysVars[306].default_value_ = "1073741824" ; - ObSysVars[306].info_ = "This variable sets the maximum packet size for the replication SQL and I/O threads, so that large updates using row-based replication do not cause replication to fail because an update exceeded max_allowed_packet" ; - ObSysVars[306].name_ = "slave_max_allowed_packet" ; + ObSysVars[306].default_value_ = "0" ; + ObSysVars[306].info_ = "Controls how a replication thread resolves conflicts and errors during replication" ; + ObSysVars[306].name_ = "slave_exec_mode" ; ObSysVars[306].data_type_ = ObIntType ; - ObSysVars[306].min_val_ = "1024" ; - ObSysVars[306].max_val_ = "1073741824" ; + ObSysVars[306].enum_names_ = "[u'STRICT', u'IDEMPOTENT']" ; ObSysVars[306].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[306].id_ = SYS_VAR_SLAVE_MAX_ALLOWED_PACKET ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_MAX_ALLOWED_PACKET)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_MAX_ALLOWED_PACKET] = 306 ; - ObSysVars[306].base_value_ = "1073741824" ; - ObSysVars[306].alias_ = "OB_SV_SLAVE_MAX_ALLOWED_PACKET" ; + ObSysVars[306].id_ = SYS_VAR_SLAVE_EXEC_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_EXEC_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_EXEC_MODE] = 306 ; + ObSysVars[306].base_value_ = "0" ; + ObSysVars[306].alias_ = "OB_SV_SLAVE_EXEC_MODE" ; }(); [&] (){ - ObSysVars[307].default_value_ = "60" ; - ObSysVars[307].info_ = "The number of seconds to wait for more data or a heartbeat signal from the source before the replica considers the connection broken, aborts the read, and tries to reconnect" ; - ObSysVars[307].name_ = "slave_net_timeout" ; + ObSysVars[307].default_value_ = "1073741824" ; + ObSysVars[307].info_ = "This variable sets the maximum packet size for the replication SQL and I/O threads, so that large updates using row-based replication do not cause replication to fail because an update exceeded max_allowed_packet" ; + ObSysVars[307].name_ = "slave_max_allowed_packet" ; ObSysVars[307].data_type_ = ObIntType ; - ObSysVars[307].min_val_ = "1" ; - ObSysVars[307].max_val_ = "31536000" ; + ObSysVars[307].min_val_ = "1024" ; + ObSysVars[307].max_val_ = "1073741824" ; ObSysVars[307].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[307].id_ = SYS_VAR_SLAVE_NET_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_NET_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_NET_TIMEOUT] = 307 ; - ObSysVars[307].base_value_ = "60" ; - ObSysVars[307].alias_ = "OB_SV_SLAVE_NET_TIMEOUT" ; + ObSysVars[307].id_ = SYS_VAR_SLAVE_MAX_ALLOWED_PACKET ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_MAX_ALLOWED_PACKET)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_MAX_ALLOWED_PACKET] = 307 ; + ObSysVars[307].base_value_ = "1073741824" ; + ObSysVars[307].alias_ = "OB_SV_SLAVE_MAX_ALLOWED_PACKET" ; }(); [&] (){ - ObSysVars[308].default_value_ = "0" ; - ObSysVars[308].info_ = "When using a multithreaded replica (slave_parallel_workers is greater than 0), this variable specifies the policy used to decide which transactions are allowed to execute in parallel on the replica" ; - ObSysVars[308].name_ = "slave_parallel_type" ; + ObSysVars[308].default_value_ = "60" ; + ObSysVars[308].info_ = "The number of seconds to wait for more data or a heartbeat signal from the source before the replica considers the connection broken, aborts the read, and tries to reconnect" ; + ObSysVars[308].name_ = "slave_net_timeout" ; ObSysVars[308].data_type_ = ObIntType ; - ObSysVars[308].enum_names_ = "[u'DATABASE', u'LOGICAL_CLOCK']" ; + ObSysVars[308].min_val_ = "1" ; + ObSysVars[308].max_val_ = "31536000" ; ObSysVars[308].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[308].id_ = SYS_VAR_SLAVE_PARALLEL_TYPE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_PARALLEL_TYPE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_PARALLEL_TYPE] = 308 ; - ObSysVars[308].base_value_ = "0" ; - ObSysVars[308].alias_ = "OB_SV_SLAVE_PARALLEL_TYPE" ; + ObSysVars[308].id_ = SYS_VAR_SLAVE_NET_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_NET_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_NET_TIMEOUT] = 308 ; + ObSysVars[308].base_value_ = "60" ; + ObSysVars[308].alias_ = "OB_SV_SLAVE_NET_TIMEOUT" ; }(); [&] (){ ObSysVars[309].default_value_ = "0" ; - ObSysVars[309].info_ = "Sets the number of applier threads for executing replication transactions in parallel" ; - ObSysVars[309].name_ = "slave_parallel_workers" ; + ObSysVars[309].info_ = "When using a multithreaded replica (slave_parallel_workers is greater than 0), this variable specifies the policy used to decide which transactions are allowed to execute in parallel on the replica" ; + ObSysVars[309].name_ = "slave_parallel_type" ; ObSysVars[309].data_type_ = ObIntType ; - ObSysVars[309].min_val_ = "0" ; - ObSysVars[309].max_val_ = "1024" ; + ObSysVars[309].enum_names_ = "[u'DATABASE', u'LOGICAL_CLOCK']" ; ObSysVars[309].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[309].id_ = SYS_VAR_SLAVE_PARALLEL_WORKERS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_PARALLEL_WORKERS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_PARALLEL_WORKERS] = 309 ; + ObSysVars[309].id_ = SYS_VAR_SLAVE_PARALLEL_TYPE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_PARALLEL_TYPE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_PARALLEL_TYPE] = 309 ; ObSysVars[309].base_value_ = "0" ; - ObSysVars[309].alias_ = "OB_SV_SLAVE_PARALLEL_WORKERS" ; + ObSysVars[309].alias_ = "OB_SV_SLAVE_PARALLEL_TYPE" ; }(); [&] (){ - ObSysVars[310].default_value_ = "16777216" ; - ObSysVars[310].info_ = "For multithreaded replicas, this variable sets the maximum amount of memory (in bytes) available to worker queues holding events not yet applied" ; - ObSysVars[310].name_ = "slave_pending_jobs_size_max" ; - ObSysVars[310].data_type_ = ObUInt64Type ; - ObSysVars[310].min_val_ = "1024" ; - ObSysVars[310].max_val_ = "18446744073709551615" ; + ObSysVars[310].default_value_ = "0" ; + ObSysVars[310].info_ = "Sets the number of applier threads for executing replication transactions in parallel" ; + ObSysVars[310].name_ = "slave_parallel_workers" ; + ObSysVars[310].data_type_ = ObIntType ; + ObSysVars[310].min_val_ = "0" ; + ObSysVars[310].max_val_ = "1024" ; ObSysVars[310].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[310].id_ = SYS_VAR_SLAVE_PENDING_JOBS_SIZE_MAX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_PENDING_JOBS_SIZE_MAX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_PENDING_JOBS_SIZE_MAX] = 310 ; - ObSysVars[310].base_value_ = "16777216" ; - ObSysVars[310].alias_ = "OB_SV_SLAVE_PENDING_JOBS_SIZE_MAX" ; + ObSysVars[310].id_ = SYS_VAR_SLAVE_PARALLEL_WORKERS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_PARALLEL_WORKERS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_PARALLEL_WORKERS] = 310 ; + ObSysVars[310].base_value_ = "0" ; + ObSysVars[310].alias_ = "OB_SV_SLAVE_PARALLEL_WORKERS" ; }(); [&] (){ - ObSysVars[311].default_value_ = "0" ; - ObSysVars[311].info_ = "For multithreaded replicas, the setting 1 for this variable ensures that transactions are externalized on the replica in the same order as they appear in the replica's relay log, and prevents gaps in the sequence of transactions that have been executed from the relay lo" ; - ObSysVars[311].name_ = "slave_preserve_commit_order" ; - ObSysVars[311].data_type_ = ObIntType ; + ObSysVars[311].default_value_ = "16777216" ; + ObSysVars[311].info_ = "For multithreaded replicas, this variable sets the maximum amount of memory (in bytes) available to worker queues holding events not yet applied" ; + ObSysVars[311].name_ = "slave_pending_jobs_size_max" ; + ObSysVars[311].data_type_ = ObUInt64Type ; + ObSysVars[311].min_val_ = "1024" ; + ObSysVars[311].max_val_ = "18446744073709551615" ; ObSysVars[311].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[311].id_ = SYS_VAR_SLAVE_PRESERVE_COMMIT_ORDER ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_PRESERVE_COMMIT_ORDER)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_PRESERVE_COMMIT_ORDER] = 311 ; - ObSysVars[311].base_value_ = "0" ; - ObSysVars[311].alias_ = "OB_SV_SLAVE_PRESERVE_COMMIT_ORDER" ; + ObSysVars[311].id_ = SYS_VAR_SLAVE_PENDING_JOBS_SIZE_MAX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_PENDING_JOBS_SIZE_MAX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_PENDING_JOBS_SIZE_MAX] = 311 ; + ObSysVars[311].base_value_ = "16777216" ; + ObSysVars[311].alias_ = "OB_SV_SLAVE_PENDING_JOBS_SIZE_MAX" ; }(); [&] (){ ObSysVars[312].default_value_ = "0" ; - ObSysVars[312].info_ = "Cause the replication SQL thread to verify data using the checksums read from the relay log" ; - ObSysVars[312].name_ = "slave_sql_verify_checksum" ; + ObSysVars[312].info_ = "For multithreaded replicas, the setting 1 for this variable ensures that transactions are externalized on the replica in the same order as they appear in the replica's relay log, and prevents gaps in the sequence of transactions that have been executed from the relay lo" ; + ObSysVars[312].name_ = "slave_preserve_commit_order" ; ObSysVars[312].data_type_ = ObIntType ; ObSysVars[312].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[312].id_ = SYS_VAR_SLAVE_SQL_VERIFY_CHECKSUM ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_SQL_VERIFY_CHECKSUM)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_SQL_VERIFY_CHECKSUM] = 312 ; + ObSysVars[312].id_ = SYS_VAR_SLAVE_PRESERVE_COMMIT_ORDER ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_PRESERVE_COMMIT_ORDER)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_PRESERVE_COMMIT_ORDER] = 312 ; ObSysVars[312].base_value_ = "0" ; - ObSysVars[312].alias_ = "OB_SV_SLAVE_SQL_VERIFY_CHECKSUM" ; + ObSysVars[312].alias_ = "OB_SV_SLAVE_PRESERVE_COMMIT_ORDER" ; }(); [&] (){ - ObSysVars[313].default_value_ = "10" ; - ObSysVars[313].info_ = "Deadlock or because the transaction's execution time exceeded InnoDB's innodb_lock_wait_timeout or NDB's TransactionDeadlockDetectionTimeout or TransactionInactiveTimeout, it automatically retries slave_transaction_retries times before stopping with an error. Transactions with a non-temporary error are not retried" ; - ObSysVars[313].name_ = "slave_transaction_retries" ; - ObSysVars[313].data_type_ = ObUInt64Type ; - ObSysVars[313].min_val_ = "0" ; - ObSysVars[313].max_val_ = "18446744073709551615" ; + ObSysVars[313].default_value_ = "0" ; + ObSysVars[313].info_ = "Cause the replication SQL thread to verify data using the checksums read from the relay log" ; + ObSysVars[313].name_ = "slave_sql_verify_checksum" ; + ObSysVars[313].data_type_ = ObIntType ; ObSysVars[313].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[313].id_ = SYS_VAR_SLAVE_TRANSACTION_RETRIES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_TRANSACTION_RETRIES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_TRANSACTION_RETRIES] = 313 ; - ObSysVars[313].base_value_ = "10" ; - ObSysVars[313].alias_ = "OB_SV_SLAVE_TRANSACTION_RETRIES" ; + ObSysVars[313].id_ = SYS_VAR_SLAVE_SQL_VERIFY_CHECKSUM ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_SQL_VERIFY_CHECKSUM)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_SQL_VERIFY_CHECKSUM] = 313 ; + ObSysVars[313].base_value_ = "0" ; + ObSysVars[313].alias_ = "OB_SV_SLAVE_SQL_VERIFY_CHECKSUM" ; }(); [&] (){ - ObSysVars[314].default_value_ = "0" ; - ObSysVars[314].info_ = "The number of events from the source that a replica should ski" ; - ObSysVars[314].name_ = "sql_slave_skip_counter" ; - ObSysVars[314].data_type_ = ObIntType ; + ObSysVars[314].default_value_ = "10" ; + ObSysVars[314].info_ = "Deadlock or because the transaction's execution time exceeded InnoDB's innodb_lock_wait_timeout or NDB's TransactionDeadlockDetectionTimeout or TransactionInactiveTimeout, it automatically retries slave_transaction_retries times before stopping with an error. Transactions with a non-temporary error are not retried" ; + ObSysVars[314].name_ = "slave_transaction_retries" ; + ObSysVars[314].data_type_ = ObUInt64Type ; ObSysVars[314].min_val_ = "0" ; - ObSysVars[314].max_val_ = "4294967295" ; + ObSysVars[314].max_val_ = "18446744073709551615" ; ObSysVars[314].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[314].id_ = SYS_VAR_SQL_SLAVE_SKIP_COUNTER ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SQL_SLAVE_SKIP_COUNTER)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SQL_SLAVE_SKIP_COUNTER] = 314 ; - ObSysVars[314].base_value_ = "0" ; - ObSysVars[314].alias_ = "OB_SV_SQL_SLAVE_SKIP_COUNTER" ; + ObSysVars[314].id_ = SYS_VAR_SLAVE_TRANSACTION_RETRIES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_TRANSACTION_RETRIES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_TRANSACTION_RETRIES] = 314 ; + ObSysVars[314].base_value_ = "10" ; + ObSysVars[314].alias_ = "OB_SV_SLAVE_TRANSACTION_RETRIES" ; }(); [&] (){ ObSysVars[315].default_value_ = "0" ; - ObSysVars[315].info_ = "The crash recovery mode, typically only changed in serious troubleshooting situations. Possible values are from 0 to 6" ; - ObSysVars[315].name_ = "innodb_force_recovery" ; + ObSysVars[315].info_ = "The number of events from the source that a replica should ski" ; + ObSysVars[315].name_ = "sql_slave_skip_counter" ; ObSysVars[315].data_type_ = ObIntType ; ObSysVars[315].min_val_ = "0" ; - ObSysVars[315].max_val_ = "6" ; + ObSysVars[315].max_val_ = "4294967295" ; ObSysVars[315].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[315].id_ = SYS_VAR_INNODB_FORCE_RECOVERY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FORCE_RECOVERY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FORCE_RECOVERY] = 315 ; + ObSysVars[315].id_ = SYS_VAR_SQL_SLAVE_SKIP_COUNTER ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SQL_SLAVE_SKIP_COUNTER)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SQL_SLAVE_SKIP_COUNTER] = 315 ; ObSysVars[315].base_value_ = "0" ; - ObSysVars[315].alias_ = "OB_SV_INNODB_FORCE_RECOVERY" ; + ObSysVars[315].alias_ = "OB_SV_SQL_SLAVE_SKIP_COUNTER" ; }(); [&] (){ ObSysVars[316].default_value_ = "0" ; - ObSysVars[316].info_ = "Tells the replica server not to start the replication threads when the server starts" ; - ObSysVars[316].name_ = "skip_slave_start" ; + ObSysVars[316].info_ = "The crash recovery mode, typically only changed in serious troubleshooting situations. Possible values are from 0 to 6" ; + ObSysVars[316].name_ = "innodb_force_recovery" ; ObSysVars[316].data_type_ = ObIntType ; + ObSysVars[316].min_val_ = "0" ; + ObSysVars[316].max_val_ = "6" ; ObSysVars[316].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[316].id_ = SYS_VAR_SKIP_SLAVE_START ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_SLAVE_START)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_SLAVE_START] = 316 ; + ObSysVars[316].id_ = SYS_VAR_INNODB_FORCE_RECOVERY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FORCE_RECOVERY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FORCE_RECOVERY] = 316 ; ObSysVars[316].base_value_ = "0" ; - ObSysVars[316].alias_ = "OB_SV_SKIP_SLAVE_START" ; + ObSysVars[316].alias_ = "OB_SV_INNODB_FORCE_RECOVERY" ; }(); [&] (){ - ObSysVars[317].default_value_ = "" ; - ObSysVars[317].info_ = "The name of the directory where the replica creates temporary files" ; - ObSysVars[317].name_ = "slave_load_tmpdir" ; - ObSysVars[317].data_type_ = ObVarcharType ; + ObSysVars[317].default_value_ = "0" ; + ObSysVars[317].info_ = "Tells the replica server not to start the replication threads when the server starts" ; + ObSysVars[317].name_ = "skip_slave_start" ; + ObSysVars[317].data_type_ = ObIntType ; ObSysVars[317].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[317].id_ = SYS_VAR_SLAVE_LOAD_TMPDIR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_LOAD_TMPDIR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_LOAD_TMPDIR] = 317 ; - ObSysVars[317].base_value_ = "" ; - ObSysVars[317].alias_ = "OB_SV_SLAVE_LOAD_TMPDIR" ; + ObSysVars[317].id_ = SYS_VAR_SKIP_SLAVE_START ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_SLAVE_START)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_SLAVE_START] = 317 ; + ObSysVars[317].base_value_ = "0" ; + ObSysVars[317].alias_ = "OB_SV_SKIP_SLAVE_START" ; }(); [&] (){ - ObSysVars[318].default_value_ = "OFF" ; - ObSysVars[318].info_ = "This variable causes the replication SQL thread to continue replication when a statement returns any of the errors listed in the variable value" ; - ObSysVars[318].name_ = "slave_skip_errors" ; + ObSysVars[318].default_value_ = "" ; + ObSysVars[318].info_ = "The name of the directory where the replica creates temporary files" ; + ObSysVars[318].name_ = "slave_load_tmpdir" ; ObSysVars[318].data_type_ = ObVarcharType ; ObSysVars[318].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[318].id_ = SYS_VAR_SLAVE_SKIP_ERRORS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_SKIP_ERRORS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_SKIP_ERRORS] = 318 ; - ObSysVars[318].base_value_ = "OFF" ; - ObSysVars[318].alias_ = "OB_SV_SLAVE_SKIP_ERRORS" ; + ObSysVars[318].id_ = SYS_VAR_SLAVE_LOAD_TMPDIR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_LOAD_TMPDIR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_LOAD_TMPDIR] = 318 ; + ObSysVars[318].base_value_ = "" ; + ObSysVars[318].alias_ = "OB_SV_SLAVE_LOAD_TMPDIR" ; }(); [&] (){ - ObSysVars[319].default_value_ = "0" ; - ObSysVars[319].info_ = "Enables sync debug checking for the InnoDB storage engine" ; - ObSysVars[319].name_ = "innodb_sync_debug" ; - ObSysVars[319].data_type_ = ObIntType ; - ObSysVars[319].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[319].id_ = SYS_VAR_INNODB_SYNC_DEBUG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SYNC_DEBUG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SYNC_DEBUG] = 319 ; - ObSysVars[319].base_value_ = "0" ; - ObSysVars[319].alias_ = "OB_SV_INNODB_SYNC_DEBUG" ; + ObSysVars[319].default_value_ = "OFF" ; + ObSysVars[319].info_ = "This variable causes the replication SQL thread to continue replication when a statement returns any of the errors listed in the variable value" ; + ObSysVars[319].name_ = "slave_skip_errors" ; + ObSysVars[319].data_type_ = ObVarcharType ; + ObSysVars[319].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[319].id_ = SYS_VAR_SLAVE_SKIP_ERRORS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_SKIP_ERRORS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_SKIP_ERRORS] = 319 ; + ObSysVars[319].base_value_ = "OFF" ; + ObSysVars[319].alias_ = "OB_SV_SLAVE_SKIP_ERRORS" ; }(); [&] (){ - ObSysVars[320].default_value_ = "45" ; - ObSysVars[320].info_ = "control default collation for utf8mb4" ; - ObSysVars[320].name_ = "default_collation_for_utf8mb4" ; + ObSysVars[320].default_value_ = "0" ; + ObSysVars[320].info_ = "Enables sync debug checking for the InnoDB storage engine" ; + ObSysVars[320].name_ = "innodb_sync_debug" ; ObSysVars[320].data_type_ = ObIntType ; - ObSysVars[320].to_show_str_func_ = "ObSysVarToStrFuncs::to_str_collation" ; - ObSysVars[320].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::INFLUENCE_PLAN | ObSysVarFlag::NEED_SERIALIZE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[320].base_class_ = "ObCharsetSysVar" ; - ObSysVars[320].to_select_obj_func_ = "ObSysVarToObjFuncs::to_obj_collation" ; - ObSysVars[320].on_check_and_convert_func_ = "ObSysVarOnCheckFuncs::check_default_value_for_utf8mb4" ; - ObSysVars[320].id_ = SYS_VAR_DEFAULT_COLLATION_FOR_UTF8MB4 ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DEFAULT_COLLATION_FOR_UTF8MB4)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DEFAULT_COLLATION_FOR_UTF8MB4] = 320 ; - ObSysVars[320].get_meta_type_func_ = "ObSysVarGetMetaTypeFuncs::get_meta_type_varchar" ; - ObSysVars[320].base_value_ = "45" ; - ObSysVars[320].alias_ = "OB_SV_DEFAULT_COLLATION_FOR_UTF8MB4" ; + ObSysVars[320].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[320].id_ = SYS_VAR_INNODB_SYNC_DEBUG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SYNC_DEBUG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SYNC_DEBUG] = 320 ; + ObSysVars[320].base_value_ = "0" ; + ObSysVars[320].alias_ = "OB_SV_INNODB_SYNC_DEBUG" ; }(); [&] (){ - ObSysVars[321].default_value_ = "0" ; - ObSysVars[321].info_ = "The value to be used by the following INSERT or ALTER TABLE statement when inserting an AUTO_INCREMENT value. Merely simulates MySQL 5.7." ; - ObSysVars[321].name_ = "insert_id" ; + ObSysVars[321].default_value_ = "45" ; + ObSysVars[321].info_ = "control default collation for utf8mb4" ; + ObSysVars[321].name_ = "default_collation_for_utf8mb4" ; ObSysVars[321].data_type_ = ObIntType ; - ObSysVars[321].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[321].id_ = SYS_VAR_INSERT_ID ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INSERT_ID)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INSERT_ID] = 321 ; - ObSysVars[321].base_value_ = "0" ; - ObSysVars[321].alias_ = "OB_SV_INSERT_ID" ; + ObSysVars[321].to_show_str_func_ = "ObSysVarToStrFuncs::to_str_collation" ; + ObSysVars[321].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::INFLUENCE_PLAN | ObSysVarFlag::NEED_SERIALIZE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[321].base_class_ = "ObCharsetSysVar" ; + ObSysVars[321].to_select_obj_func_ = "ObSysVarToObjFuncs::to_obj_collation" ; + ObSysVars[321].on_check_and_convert_func_ = "ObSysVarOnCheckFuncs::check_default_value_for_utf8mb4" ; + ObSysVars[321].id_ = SYS_VAR_DEFAULT_COLLATION_FOR_UTF8MB4 ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DEFAULT_COLLATION_FOR_UTF8MB4)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DEFAULT_COLLATION_FOR_UTF8MB4] = 321 ; + ObSysVars[321].get_meta_type_func_ = "ObSysVarGetMetaTypeFuncs::get_meta_type_varchar" ; + ObSysVars[321].base_value_ = "45" ; + ObSysVars[321].alias_ = "OB_SV_DEFAULT_COLLATION_FOR_UTF8MB4" ; }(); [&] (){ - ObSysVars[322].default_value_ = "262144" ; - ObSysVars[322].info_ = "The minimum size of the buffer that is used for plain index scans, range index scans, and joins that do not use indexes and thus perform full table scans. Merely simulates MySQL 5.7." ; - ObSysVars[322].name_ = "join_buffer_size" ; + ObSysVars[322].default_value_ = "0" ; + ObSysVars[322].info_ = "The value to be used by the following INSERT or ALTER TABLE statement when inserting an AUTO_INCREMENT value. Merely simulates MySQL 5.7." ; + ObSysVars[322].name_ = "insert_id" ; ObSysVars[322].data_type_ = ObIntType ; - ObSysVars[322].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[322].id_ = SYS_VAR_JOIN_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_JOIN_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_JOIN_BUFFER_SIZE] = 322 ; - ObSysVars[322].base_value_ = "262144" ; - ObSysVars[322].alias_ = "OB_SV_JOIN_BUFFER_SIZE" ; + ObSysVars[322].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[322].id_ = SYS_VAR_INSERT_ID ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INSERT_ID)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INSERT_ID] = 322 ; + ObSysVars[322].base_value_ = "0" ; + ObSysVars[322].alias_ = "OB_SV_INSERT_ID" ; }(); [&] (){ - ObSysVars[323].default_value_ = "18446744073709547520" ; - ObSysVars[323].info_ = "Do not permit statements that probably need to examine more than max_join_size rows (for single-table statements) or row combinations (for multiple-table statements) or that are likely to do more than max_join_size disk seeks. Merely simulates MySQL 5.7." ; - ObSysVars[323].name_ = "max_join_size" ; - ObSysVars[323].data_type_ = ObUInt64Type ; + ObSysVars[323].default_value_ = "262144" ; + ObSysVars[323].info_ = "The minimum size of the buffer that is used for plain index scans, range index scans, and joins that do not use indexes and thus perform full table scans. Merely simulates MySQL 5.7." ; + ObSysVars[323].name_ = "join_buffer_size" ; + ObSysVars[323].data_type_ = ObIntType ; ObSysVars[323].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[323].id_ = SYS_VAR_MAX_JOIN_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_JOIN_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_JOIN_SIZE] = 323 ; - ObSysVars[323].base_value_ = "18446744073709547520" ; - ObSysVars[323].alias_ = "OB_SV_MAX_JOIN_SIZE" ; + ObSysVars[323].id_ = SYS_VAR_JOIN_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_JOIN_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_JOIN_BUFFER_SIZE] = 323 ; + ObSysVars[323].base_value_ = "262144" ; + ObSysVars[323].alias_ = "OB_SV_JOIN_BUFFER_SIZE" ; }(); [&] (){ - ObSysVars[324].default_value_ = "1024" ; - ObSysVars[324].info_ = "The cutoff on the size of index values that determines which filesort algorithm to use. Merely simulates MySQL 5.7." ; - ObSysVars[324].name_ = "max_length_for_sort_data" ; - ObSysVars[324].data_type_ = ObIntType ; + ObSysVars[324].default_value_ = "18446744073709547520" ; + ObSysVars[324].info_ = "Do not permit statements that probably need to examine more than max_join_size rows (for single-table statements) or row combinations (for multiple-table statements) or that are likely to do more than max_join_size disk seeks. Merely simulates MySQL 5.7." ; + ObSysVars[324].name_ = "max_join_size" ; + ObSysVars[324].data_type_ = ObUInt64Type ; ObSysVars[324].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[324].id_ = SYS_VAR_MAX_LENGTH_FOR_SORT_DATA ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_LENGTH_FOR_SORT_DATA)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_LENGTH_FOR_SORT_DATA] = 324 ; - ObSysVars[324].base_value_ = "1024" ; - ObSysVars[324].alias_ = "OB_SV_MAX_LENGTH_FOR_SORT_DATA" ; + ObSysVars[324].id_ = SYS_VAR_MAX_JOIN_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_JOIN_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_JOIN_SIZE] = 324 ; + ObSysVars[324].base_value_ = "18446744073709547520" ; + ObSysVars[324].alias_ = "OB_SV_MAX_JOIN_SIZE" ; }(); [&] (){ - ObSysVars[325].default_value_ = "16382" ; - ObSysVars[325].info_ = "This variable limits the total number of prepared statements in the server. Merely simulates MySQL 5.7." ; - ObSysVars[325].name_ = "max_prepared_stmt_count" ; + ObSysVars[325].default_value_ = "1024" ; + ObSysVars[325].info_ = "The cutoff on the size of index values that determines which filesort algorithm to use. Merely simulates MySQL 5.7." ; + ObSysVars[325].name_ = "max_length_for_sort_data" ; ObSysVars[325].data_type_ = ObIntType ; - ObSysVars[325].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[325].id_ = SYS_VAR_MAX_PREPARED_STMT_COUNT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_PREPARED_STMT_COUNT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_PREPARED_STMT_COUNT] = 325 ; - ObSysVars[325].base_value_ = "16382" ; - ObSysVars[325].alias_ = "OB_SV_MAX_PREPARED_STMT_COUNT" ; + ObSysVars[325].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[325].id_ = SYS_VAR_MAX_LENGTH_FOR_SORT_DATA ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_LENGTH_FOR_SORT_DATA)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_LENGTH_FOR_SORT_DATA] = 325 ; + ObSysVars[325].base_value_ = "1024" ; + ObSysVars[325].alias_ = "OB_SV_MAX_LENGTH_FOR_SORT_DATA" ; }(); [&] (){ - ObSysVars[326].default_value_ = "1024" ; - ObSysVars[326].info_ = "The number of bytes to use when sorting data values. Merely simulates MySQL 5.7." ; - ObSysVars[326].name_ = "max_sort_length" ; + ObSysVars[326].default_value_ = "16382" ; + ObSysVars[326].info_ = "This variable limits the total number of prepared statements in the server. Merely simulates MySQL 5.7." ; + ObSysVars[326].name_ = "max_prepared_stmt_count" ; ObSysVars[326].data_type_ = ObIntType ; - ObSysVars[326].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[326].id_ = SYS_VAR_MAX_SORT_LENGTH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_SORT_LENGTH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_SORT_LENGTH] = 326 ; - ObSysVars[326].base_value_ = "1024" ; - ObSysVars[326].alias_ = "OB_SV_MAX_SORT_LENGTH" ; + ObSysVars[326].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[326].id_ = SYS_VAR_MAX_PREPARED_STMT_COUNT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_PREPARED_STMT_COUNT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_PREPARED_STMT_COUNT] = 326 ; + ObSysVars[326].base_value_ = "16382" ; + ObSysVars[326].alias_ = "OB_SV_MAX_PREPARED_STMT_COUNT" ; }(); [&] (){ - ObSysVars[327].default_value_ = "0" ; - ObSysVars[327].info_ = "Queries that examine fewer than this number of rows are not logged to the slow query log. Merely simulates MySQL 5.7." ; - ObSysVars[327].name_ = "min_examined_row_limit" ; + ObSysVars[327].default_value_ = "1024" ; + ObSysVars[327].info_ = "The number of bytes to use when sorting data values. Merely simulates MySQL 5.7." ; + ObSysVars[327].name_ = "max_sort_length" ; ObSysVars[327].data_type_ = ObIntType ; ObSysVars[327].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[327].id_ = SYS_VAR_MIN_EXAMINED_ROW_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MIN_EXAMINED_ROW_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MIN_EXAMINED_ROW_LIMIT] = 327 ; - ObSysVars[327].base_value_ = "0" ; - ObSysVars[327].alias_ = "OB_SV_MIN_EXAMINED_ROW_LIMIT" ; + ObSysVars[327].id_ = SYS_VAR_MAX_SORT_LENGTH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_SORT_LENGTH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_SORT_LENGTH] = 327 ; + ObSysVars[327].base_value_ = "1024" ; + ObSysVars[327].alias_ = "OB_SV_MAX_SORT_LENGTH" ; }(); [&] (){ - ObSysVars[328].default_value_ = "256" ; - ObSysVars[328].info_ = "This variable has no effect. Merely simulates MySQL 5.7." ; - ObSysVars[328].name_ = "multi_range_count" ; + ObSysVars[328].default_value_ = "0" ; + ObSysVars[328].info_ = "Queries that examine fewer than this number of rows are not logged to the slow query log. Merely simulates MySQL 5.7." ; + ObSysVars[328].name_ = "min_examined_row_limit" ; ObSysVars[328].data_type_ = ObIntType ; ObSysVars[328].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[328].id_ = SYS_VAR_MULTI_RANGE_COUNT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MULTI_RANGE_COUNT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MULTI_RANGE_COUNT] = 328 ; - ObSysVars[328].base_value_ = "256" ; - ObSysVars[328].alias_ = "OB_SV_MULTI_RANGE_COUNT" ; + ObSysVars[328].id_ = SYS_VAR_MIN_EXAMINED_ROW_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MIN_EXAMINED_ROW_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MIN_EXAMINED_ROW_LIMIT] = 328 ; + ObSysVars[328].base_value_ = "0" ; + ObSysVars[328].alias_ = "OB_SV_MIN_EXAMINED_ROW_LIMIT" ; }(); [&] (){ - ObSysVars[329].default_value_ = "30" ; - ObSysVars[329].info_ = "The number of seconds X Plugin waits for the first packet to be received from newly connected clients. Merely simulates MySQL 5.7." ; - ObSysVars[329].name_ = "mysqlx_connect_timeout" ; + ObSysVars[329].default_value_ = "256" ; + ObSysVars[329].info_ = "This variable has no effect. Merely simulates MySQL 5.7." ; + ObSysVars[329].name_ = "multi_range_count" ; ObSysVars[329].data_type_ = ObIntType ; - ObSysVars[329].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[329].id_ = SYS_VAR_MYSQLX_CONNECT_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_CONNECT_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_CONNECT_TIMEOUT] = 329 ; - ObSysVars[329].base_value_ = "30" ; - ObSysVars[329].alias_ = "OB_SV_MYSQLX_CONNECT_TIMEOUT" ; + ObSysVars[329].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[329].id_ = SYS_VAR_MULTI_RANGE_COUNT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MULTI_RANGE_COUNT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MULTI_RANGE_COUNT] = 329 ; + ObSysVars[329].base_value_ = "256" ; + ObSysVars[329].alias_ = "OB_SV_MULTI_RANGE_COUNT" ; }(); [&] (){ - ObSysVars[330].default_value_ = "60" ; - ObSysVars[330].info_ = "The number of seconds after which idle worker threads are terminated. Merely simulates MySQL 5.7." ; - ObSysVars[330].name_ = "mysqlx_idle_worker_thread_timeout" ; + ObSysVars[330].default_value_ = "30" ; + ObSysVars[330].info_ = "The number of seconds X Plugin waits for the first packet to be received from newly connected clients. Merely simulates MySQL 5.7." ; + ObSysVars[330].name_ = "mysqlx_connect_timeout" ; ObSysVars[330].data_type_ = ObIntType ; ObSysVars[330].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[330].id_ = SYS_VAR_MYSQLX_IDLE_WORKER_THREAD_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_IDLE_WORKER_THREAD_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_IDLE_WORKER_THREAD_TIMEOUT] = 330 ; - ObSysVars[330].base_value_ = "60" ; - ObSysVars[330].alias_ = "OB_SV_MYSQLX_IDLE_WORKER_THREAD_TIMEOUT" ; + ObSysVars[330].id_ = SYS_VAR_MYSQLX_CONNECT_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_CONNECT_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_CONNECT_TIMEOUT] = 330 ; + ObSysVars[330].base_value_ = "30" ; + ObSysVars[330].alias_ = "OB_SV_MYSQLX_CONNECT_TIMEOUT" ; }(); [&] (){ - ObSysVars[331].default_value_ = "67108864" ; - ObSysVars[331].info_ = "The maximum size of network packets that can be received by X Plugin. Merely simulates MySQL 5.7." ; - ObSysVars[331].name_ = "mysqlx_max_allowed_packet" ; + ObSysVars[331].default_value_ = "60" ; + ObSysVars[331].info_ = "The number of seconds after which idle worker threads are terminated. Merely simulates MySQL 5.7." ; + ObSysVars[331].name_ = "mysqlx_idle_worker_thread_timeout" ; ObSysVars[331].data_type_ = ObIntType ; ObSysVars[331].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[331].id_ = SYS_VAR_MYSQLX_MAX_ALLOWED_PACKET ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_MAX_ALLOWED_PACKET)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_MAX_ALLOWED_PACKET] = 331 ; - ObSysVars[331].base_value_ = "67108864" ; - ObSysVars[331].alias_ = "OB_SV_MYSQLX_MAX_ALLOWED_PACKET" ; + ObSysVars[331].id_ = SYS_VAR_MYSQLX_IDLE_WORKER_THREAD_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_IDLE_WORKER_THREAD_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_IDLE_WORKER_THREAD_TIMEOUT] = 331 ; + ObSysVars[331].base_value_ = "60" ; + ObSysVars[331].alias_ = "OB_SV_MYSQLX_IDLE_WORKER_THREAD_TIMEOUT" ; }(); [&] (){ - ObSysVars[332].default_value_ = "100" ; - ObSysVars[332].info_ = "The maximum number of concurrent client connections X Plugin can accept. Merely simulates MySQL 5.7." ; - ObSysVars[332].name_ = "mysqlx_max_connections" ; + ObSysVars[332].default_value_ = "67108864" ; + ObSysVars[332].info_ = "The maximum size of network packets that can be received by X Plugin. Merely simulates MySQL 5.7." ; + ObSysVars[332].name_ = "mysqlx_max_allowed_packet" ; ObSysVars[332].data_type_ = ObIntType ; ObSysVars[332].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[332].id_ = SYS_VAR_MYSQLX_MAX_CONNECTIONS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_MAX_CONNECTIONS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_MAX_CONNECTIONS] = 332 ; - ObSysVars[332].base_value_ = "100" ; - ObSysVars[332].alias_ = "OB_SV_MYSQLX_MAX_CONNECTIONS" ; + ObSysVars[332].id_ = SYS_VAR_MYSQLX_MAX_ALLOWED_PACKET ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_MAX_ALLOWED_PACKET)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_MAX_ALLOWED_PACKET] = 332 ; + ObSysVars[332].base_value_ = "67108864" ; + ObSysVars[332].alias_ = "OB_SV_MYSQLX_MAX_ALLOWED_PACKET" ; }(); [&] (){ - ObSysVars[333].default_value_ = "2" ; - ObSysVars[333].info_ = "The minimum number of worker threads used by X Plugin for handling client requests. Merely simulates MySQL 5.7." ; - ObSysVars[333].name_ = "mysqlx_min_worker_threads" ; + ObSysVars[333].default_value_ = "100" ; + ObSysVars[333].info_ = "The maximum number of concurrent client connections X Plugin can accept. Merely simulates MySQL 5.7." ; + ObSysVars[333].name_ = "mysqlx_max_connections" ; ObSysVars[333].data_type_ = ObIntType ; ObSysVars[333].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[333].id_ = SYS_VAR_MYSQLX_MIN_WORKER_THREADS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_MIN_WORKER_THREADS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_MIN_WORKER_THREADS] = 333 ; - ObSysVars[333].base_value_ = "2" ; - ObSysVars[333].alias_ = "OB_SV_MYSQLX_MIN_WORKER_THREADS" ; + ObSysVars[333].id_ = SYS_VAR_MYSQLX_MAX_CONNECTIONS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_MAX_CONNECTIONS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_MAX_CONNECTIONS] = 333 ; + ObSysVars[333].base_value_ = "100" ; + ObSysVars[333].alias_ = "OB_SV_MYSQLX_MAX_CONNECTIONS" ; }(); [&] (){ - ObSysVars[334].default_value_ = "0" ; - ObSysVars[334].info_ = "The variable determines which SHOW PROCESSLIST implementation to use. Merely simulates MySQL 5.7." ; - ObSysVars[334].name_ = "performance_schema_show_processlist" ; + ObSysVars[334].default_value_ = "2" ; + ObSysVars[334].info_ = "The minimum number of worker threads used by X Plugin for handling client requests. Merely simulates MySQL 5.7." ; + ObSysVars[334].name_ = "mysqlx_min_worker_threads" ; ObSysVars[334].data_type_ = ObIntType ; ObSysVars[334].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[334].id_ = SYS_VAR_PERFORMANCE_SCHEMA_SHOW_PROCESSLIST ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_SHOW_PROCESSLIST)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_SHOW_PROCESSLIST] = 334 ; - ObSysVars[334].base_value_ = "0" ; - ObSysVars[334].alias_ = "OB_SV_PERFORMANCE_SCHEMA_SHOW_PROCESSLIST" ; + ObSysVars[334].id_ = SYS_VAR_MYSQLX_MIN_WORKER_THREADS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_MIN_WORKER_THREADS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_MIN_WORKER_THREADS] = 334 ; + ObSysVars[334].base_value_ = "2" ; + ObSysVars[334].alias_ = "OB_SV_MYSQLX_MIN_WORKER_THREADS" ; }(); [&] (){ - ObSysVars[335].default_value_ = "8192" ; - ObSysVars[335].info_ = "The allocation size in bytes of memory blocks that are allocated for objects created during statement parsing and execution. Merely simulates MySQL 5.7." ; - ObSysVars[335].name_ = "query_alloc_block_size" ; + ObSysVars[335].default_value_ = "0" ; + ObSysVars[335].info_ = "The variable determines which SHOW PROCESSLIST implementation to use. Merely simulates MySQL 5.7." ; + ObSysVars[335].name_ = "performance_schema_show_processlist" ; ObSysVars[335].data_type_ = ObIntType ; - ObSysVars[335].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[335].id_ = SYS_VAR_QUERY_ALLOC_BLOCK_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_QUERY_ALLOC_BLOCK_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_QUERY_ALLOC_BLOCK_SIZE] = 335 ; - ObSysVars[335].base_value_ = "8192" ; - ObSysVars[335].alias_ = "OB_SV_QUERY_ALLOC_BLOCK_SIZE" ; + ObSysVars[335].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[335].id_ = SYS_VAR_PERFORMANCE_SCHEMA_SHOW_PROCESSLIST ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_SHOW_PROCESSLIST)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_SHOW_PROCESSLIST] = 335 ; + ObSysVars[335].base_value_ = "0" ; + ObSysVars[335].alias_ = "OB_SV_PERFORMANCE_SCHEMA_SHOW_PROCESSLIST" ; }(); [&] (){ ObSysVars[336].default_value_ = "8192" ; - ObSysVars[336].info_ = "The size in bytes of the persistent buffer used for statement parsing and execution. Merely simulates MySQL 5.7." ; - ObSysVars[336].name_ = "query_prealloc_size" ; + ObSysVars[336].info_ = "The allocation size in bytes of memory blocks that are allocated for objects created during statement parsing and execution. Merely simulates MySQL 5.7." ; + ObSysVars[336].name_ = "query_alloc_block_size" ; ObSysVars[336].data_type_ = ObIntType ; ObSysVars[336].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[336].id_ = SYS_VAR_QUERY_PREALLOC_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_QUERY_PREALLOC_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_QUERY_PREALLOC_SIZE] = 336 ; + ObSysVars[336].id_ = SYS_VAR_QUERY_ALLOC_BLOCK_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_QUERY_ALLOC_BLOCK_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_QUERY_ALLOC_BLOCK_SIZE] = 336 ; ObSysVars[336].base_value_ = "8192" ; - ObSysVars[336].alias_ = "OB_SV_QUERY_PREALLOC_SIZE" ; + ObSysVars[336].alias_ = "OB_SV_QUERY_ALLOC_BLOCK_SIZE" ; }(); [&] (){ - ObSysVars[337].default_value_ = "0" ; - ObSysVars[337].info_ = "Whether the slow query log is enabled. Merely simulates MySQL 5.7." ; - ObSysVars[337].name_ = "slow_query_log" ; + ObSysVars[337].default_value_ = "8192" ; + ObSysVars[337].info_ = "The size in bytes of the persistent buffer used for statement parsing and execution. Merely simulates MySQL 5.7." ; + ObSysVars[337].name_ = "query_prealloc_size" ; ObSysVars[337].data_type_ = ObIntType ; - ObSysVars[337].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[337].id_ = SYS_VAR_SLOW_QUERY_LOG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLOW_QUERY_LOG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLOW_QUERY_LOG] = 337 ; - ObSysVars[337].base_value_ = "0" ; - ObSysVars[337].alias_ = "OB_SV_SLOW_QUERY_LOG" ; + ObSysVars[337].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[337].id_ = SYS_VAR_QUERY_PREALLOC_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_QUERY_PREALLOC_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_QUERY_PREALLOC_SIZE] = 337 ; + ObSysVars[337].base_value_ = "8192" ; + ObSysVars[337].alias_ = "OB_SV_QUERY_PREALLOC_SIZE" ; }(); [&] (){ - ObSysVars[338].default_value_ = "/usr/local/mysql/data/obrd-slow.log" ; - ObSysVars[338].info_ = "The name of the slow query log file. Merely simulates MySQL 5.7." ; - ObSysVars[338].name_ = "slow_query_log_file" ; - ObSysVars[338].data_type_ = ObVarcharType ; + ObSysVars[338].default_value_ = "0" ; + ObSysVars[338].info_ = "Whether the slow query log is enabled. Merely simulates MySQL 5.7." ; + ObSysVars[338].name_ = "slow_query_log" ; + ObSysVars[338].data_type_ = ObIntType ; ObSysVars[338].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[338].id_ = SYS_VAR_SLOW_QUERY_LOG_FILE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLOW_QUERY_LOG_FILE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLOW_QUERY_LOG_FILE] = 338 ; - ObSysVars[338].base_value_ = "/usr/local/mysql/data/obrd-slow.log" ; - ObSysVars[338].alias_ = "OB_SV_SLOW_QUERY_LOG_FILE" ; + ObSysVars[338].id_ = SYS_VAR_SLOW_QUERY_LOG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLOW_QUERY_LOG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLOW_QUERY_LOG] = 338 ; + ObSysVars[338].base_value_ = "0" ; + ObSysVars[338].alias_ = "OB_SV_SLOW_QUERY_LOG" ; }(); [&] (){ - ObSysVars[339].default_value_ = "262144" ; - ObSysVars[339].info_ = "Each session that must perform a sort allocates a buffer of this size. Merely simulates MySQL 5.7." ; - ObSysVars[339].name_ = "sort_buffer_size" ; - ObSysVars[339].data_type_ = ObIntType ; - ObSysVars[339].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[339].id_ = SYS_VAR_SORT_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SORT_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SORT_BUFFER_SIZE] = 339 ; - ObSysVars[339].base_value_ = "262144" ; - ObSysVars[339].alias_ = "OB_SV_SORT_BUFFER_SIZE" ; + ObSysVars[339].default_value_ = "/usr/local/mysql/data/obrd-slow.log" ; + ObSysVars[339].info_ = "The name of the slow query log file. Merely simulates MySQL 5.7." ; + ObSysVars[339].name_ = "slow_query_log_file" ; + ObSysVars[339].data_type_ = ObVarcharType ; + ObSysVars[339].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[339].id_ = SYS_VAR_SLOW_QUERY_LOG_FILE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLOW_QUERY_LOG_FILE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLOW_QUERY_LOG_FILE] = 339 ; + ObSysVars[339].base_value_ = "/usr/local/mysql/data/obrd-slow.log" ; + ObSysVars[339].alias_ = "OB_SV_SLOW_QUERY_LOG_FILE" ; }(); [&] (){ - ObSysVars[340].default_value_ = "0" ; - ObSysVars[340].info_ = "If enabled, sql_buffer_result forces results from SELECT statements to be put into temporary tables. Merely simulates MySQL 5.7." ; - ObSysVars[340].name_ = "sql_buffer_result" ; + ObSysVars[340].default_value_ = "262144" ; + ObSysVars[340].info_ = "Each session that must perform a sort allocates a buffer of this size. Merely simulates MySQL 5.7." ; + ObSysVars[340].name_ = "sort_buffer_size" ; ObSysVars[340].data_type_ = ObIntType ; ObSysVars[340].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[340].id_ = SYS_VAR_SQL_BUFFER_RESULT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SQL_BUFFER_RESULT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SQL_BUFFER_RESULT] = 340 ; - ObSysVars[340].base_value_ = "0" ; - ObSysVars[340].alias_ = "OB_SV_SQL_BUFFER_RESULT" ; + ObSysVars[340].id_ = SYS_VAR_SORT_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SORT_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SORT_BUFFER_SIZE] = 340 ; + ObSysVars[340].base_value_ = "262144" ; + ObSysVars[340].alias_ = "OB_SV_SORT_BUFFER_SIZE" ; }(); [&] (){ - ObSysVars[341].default_value_ = "32768" ; - ObSysVars[341].info_ = "binlog_cache_size sets the size for the transaction cache only. Merely simulates MySQL 5.7." ; - ObSysVars[341].name_ = "binlog_cache_size" ; + ObSysVars[341].default_value_ = "0" ; + ObSysVars[341].info_ = "If enabled, sql_buffer_result forces results from SELECT statements to be put into temporary tables. Merely simulates MySQL 5.7." ; + ObSysVars[341].name_ = "sql_buffer_result" ; ObSysVars[341].data_type_ = ObIntType ; - ObSysVars[341].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[341].id_ = SYS_VAR_BINLOG_CACHE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_CACHE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_CACHE_SIZE] = 341 ; - ObSysVars[341].base_value_ = "32768" ; - ObSysVars[341].alias_ = "OB_SV_BINLOG_CACHE_SIZE" ; + ObSysVars[341].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[341].id_ = SYS_VAR_SQL_BUFFER_RESULT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SQL_BUFFER_RESULT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SQL_BUFFER_RESULT] = 341 ; + ObSysVars[341].base_value_ = "0" ; + ObSysVars[341].alias_ = "OB_SV_SQL_BUFFER_RESULT" ; }(); [&] (){ - ObSysVars[342].default_value_ = "0" ; - ObSysVars[342].info_ = "Enabling binlog_direct_non_transactional_updates causes updates to nontransactional tables to be written directly to the binary log, rather than to the transaction cache. Merely simulates MySQL 5.7." ; - ObSysVars[342].name_ = "binlog_direct_non_transactional_updates" ; + ObSysVars[342].default_value_ = "32768" ; + ObSysVars[342].info_ = "binlog_cache_size sets the size for the transaction cache only. Merely simulates MySQL 5.7." ; + ObSysVars[342].name_ = "binlog_cache_size" ; ObSysVars[342].data_type_ = ObIntType ; - ObSysVars[342].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[342].id_ = SYS_VAR_BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES] = 342 ; - ObSysVars[342].base_value_ = "0" ; - ObSysVars[342].alias_ = "OB_SV_BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES" ; + ObSysVars[342].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[342].id_ = SYS_VAR_BINLOG_CACHE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_CACHE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_CACHE_SIZE] = 342 ; + ObSysVars[342].base_value_ = "32768" ; + ObSysVars[342].alias_ = "OB_SV_BINLOG_CACHE_SIZE" ; }(); [&] (){ - ObSysVars[343].default_value_ = "1" ; - ObSysVars[343].info_ = "Controls what happens when the server encounters an error. Merely simulates MySQL 5.7." ; - ObSysVars[343].name_ = "binlog_error_action" ; + ObSysVars[343].default_value_ = "0" ; + ObSysVars[343].info_ = "Enabling binlog_direct_non_transactional_updates causes updates to nontransactional tables to be written directly to the binary log, rather than to the transaction cache. Merely simulates MySQL 5.7." ; + ObSysVars[343].name_ = "binlog_direct_non_transactional_updates" ; ObSysVars[343].data_type_ = ObIntType ; - ObSysVars[343].enum_names_ = "[u'IGNORE_ERROR', u'ABORT_SERVER']" ; - ObSysVars[343].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[343].id_ = SYS_VAR_BINLOG_ERROR_ACTION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_ERROR_ACTION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_ERROR_ACTION] = 343 ; - ObSysVars[343].base_value_ = "1" ; - ObSysVars[343].alias_ = "OB_SV_BINLOG_ERROR_ACTION" ; + ObSysVars[343].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[343].id_ = SYS_VAR_BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES] = 343 ; + ObSysVars[343].base_value_ = "0" ; + ObSysVars[343].alias_ = "OB_SV_BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES" ; }(); [&] (){ - ObSysVars[344].default_value_ = "0" ; - ObSysVars[344].info_ = "Controls how many microseconds the binary log commit waits before synchronizing the binary log file to disk. Merely simulates MySQL 5.7." ; - ObSysVars[344].name_ = "binlog_group_commit_sync_delay" ; + ObSysVars[344].default_value_ = "1" ; + ObSysVars[344].info_ = "Controls what happens when the server encounters an error. Merely simulates MySQL 5.7." ; + ObSysVars[344].name_ = "binlog_error_action" ; ObSysVars[344].data_type_ = ObIntType ; + ObSysVars[344].enum_names_ = "[u'IGNORE_ERROR', u'ABORT_SERVER']" ; ObSysVars[344].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[344].id_ = SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_DELAY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_DELAY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_DELAY] = 344 ; - ObSysVars[344].base_value_ = "0" ; - ObSysVars[344].alias_ = "OB_SV_BINLOG_GROUP_COMMIT_SYNC_DELAY" ; + ObSysVars[344].id_ = SYS_VAR_BINLOG_ERROR_ACTION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_ERROR_ACTION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_ERROR_ACTION] = 344 ; + ObSysVars[344].base_value_ = "1" ; + ObSysVars[344].alias_ = "OB_SV_BINLOG_ERROR_ACTION" ; }(); [&] (){ ObSysVars[345].default_value_ = "0" ; - ObSysVars[345].info_ = "The maximum number of transactions to wait for before aborting the current delay as specified by binlog_group_commit_sync_delay. Merely simulates MySQL 5.7." ; - ObSysVars[345].name_ = "binlog_group_commit_sync_no_delay_count" ; + ObSysVars[345].info_ = "Controls how many microseconds the binary log commit waits before synchronizing the binary log file to disk. Merely simulates MySQL 5.7." ; + ObSysVars[345].name_ = "binlog_group_commit_sync_delay" ; ObSysVars[345].data_type_ = ObIntType ; ObSysVars[345].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[345].id_ = SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT] = 345 ; + ObSysVars[345].id_ = SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_DELAY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_DELAY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_DELAY] = 345 ; ObSysVars[345].base_value_ = "0" ; - ObSysVars[345].alias_ = "OB_SV_BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT" ; + ObSysVars[345].alias_ = "OB_SV_BINLOG_GROUP_COMMIT_SYNC_DELAY" ; }(); [&] (){ ObSysVars[346].default_value_ = "0" ; - ObSysVars[346].info_ = "This variable no longer has any effect. Merely simulates MySQL 5.7." ; - ObSysVars[346].name_ = "binlog_max_flush_queue_time" ; + ObSysVars[346].info_ = "The maximum number of transactions to wait for before aborting the current delay as specified by binlog_group_commit_sync_delay. Merely simulates MySQL 5.7." ; + ObSysVars[346].name_ = "binlog_group_commit_sync_no_delay_count" ; ObSysVars[346].data_type_ = ObIntType ; ObSysVars[346].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[346].id_ = SYS_VAR_BINLOG_MAX_FLUSH_QUEUE_TIME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_MAX_FLUSH_QUEUE_TIME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_MAX_FLUSH_QUEUE_TIME] = 346 ; + ObSysVars[346].id_ = SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT] = 346 ; ObSysVars[346].base_value_ = "0" ; - ObSysVars[346].alias_ = "OB_SV_BINLOG_MAX_FLUSH_QUEUE_TIME" ; + ObSysVars[346].alias_ = "OB_SV_BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT" ; }(); [&] (){ - ObSysVars[347].default_value_ = "1" ; - ObSysVars[347].info_ = "When this variable is enabled on a replication source server, transaction commit instructions issued to storage engines are serialized on a single thread. Merely simulates MySQL 5.7." ; - ObSysVars[347].name_ = "binlog_order_commits" ; + ObSysVars[347].default_value_ = "0" ; + ObSysVars[347].info_ = "This variable no longer has any effect. Merely simulates MySQL 5.7." ; + ObSysVars[347].name_ = "binlog_max_flush_queue_time" ; ObSysVars[347].data_type_ = ObIntType ; ObSysVars[347].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[347].id_ = SYS_VAR_BINLOG_ORDER_COMMITS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_ORDER_COMMITS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_ORDER_COMMITS] = 347 ; - ObSysVars[347].base_value_ = "1" ; - ObSysVars[347].alias_ = "OB_SV_BINLOG_ORDER_COMMITS" ; + ObSysVars[347].id_ = SYS_VAR_BINLOG_MAX_FLUSH_QUEUE_TIME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_MAX_FLUSH_QUEUE_TIME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_MAX_FLUSH_QUEUE_TIME] = 347 ; + ObSysVars[347].base_value_ = "0" ; + ObSysVars[347].alias_ = "OB_SV_BINLOG_MAX_FLUSH_QUEUE_TIME" ; }(); [&] (){ - ObSysVars[348].default_value_ = "32768" ; - ObSysVars[348].info_ = "This variable determines the size of the cache for the binary log to hold nontransactional statements issued during a transaction. Merely simulates MySQL 5.7." ; - ObSysVars[348].name_ = "binlog_stmt_cache_size" ; + ObSysVars[348].default_value_ = "1" ; + ObSysVars[348].info_ = "When this variable is enabled on a replication source server, transaction commit instructions issued to storage engines are serialized on a single thread. Merely simulates MySQL 5.7." ; + ObSysVars[348].name_ = "binlog_order_commits" ; ObSysVars[348].data_type_ = ObIntType ; ObSysVars[348].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[348].id_ = SYS_VAR_BINLOG_STMT_CACHE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_STMT_CACHE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_STMT_CACHE_SIZE] = 348 ; - ObSysVars[348].base_value_ = "32768" ; - ObSysVars[348].alias_ = "OB_SV_BINLOG_STMT_CACHE_SIZE" ; + ObSysVars[348].id_ = SYS_VAR_BINLOG_ORDER_COMMITS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_ORDER_COMMITS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_ORDER_COMMITS] = 348 ; + ObSysVars[348].base_value_ = "1" ; + ObSysVars[348].alias_ = "OB_SV_BINLOG_ORDER_COMMITS" ; }(); [&] (){ - ObSysVars[349].default_value_ = "25000" ; - ObSysVars[349].info_ = "Sets an upper limit on the number of row hashes which are kept in memory and used for looking up the transaction that last modified a given row. Merely simulates MySQL 5.7." ; - ObSysVars[349].name_ = "binlog_transaction_dependency_history_size" ; + ObSysVars[349].default_value_ = "32768" ; + ObSysVars[349].info_ = "This variable determines the size of the cache for the binary log to hold nontransactional statements issued during a transaction. Merely simulates MySQL 5.7." ; + ObSysVars[349].name_ = "binlog_stmt_cache_size" ; ObSysVars[349].data_type_ = ObIntType ; ObSysVars[349].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[349].id_ = SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE] = 349 ; - ObSysVars[349].base_value_ = "25000" ; - ObSysVars[349].alias_ = "OB_SV_BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE" ; + ObSysVars[349].id_ = SYS_VAR_BINLOG_STMT_CACHE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_STMT_CACHE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_STMT_CACHE_SIZE] = 349 ; + ObSysVars[349].base_value_ = "32768" ; + ObSysVars[349].alias_ = "OB_SV_BINLOG_STMT_CACHE_SIZE" ; }(); [&] (){ - ObSysVars[350].default_value_ = "0" ; - ObSysVars[350].info_ = "The source of dependency information that the source uses to determine which transactions can be executed in parallel by the replica's multithreaded applier. Merely simulates MySQL 5.7." ; - ObSysVars[350].name_ = "binlog_transaction_dependency_tracking" ; + ObSysVars[350].default_value_ = "25000" ; + ObSysVars[350].info_ = "Sets an upper limit on the number of row hashes which are kept in memory and used for looking up the transaction that last modified a given row. Merely simulates MySQL 5.7." ; + ObSysVars[350].name_ = "binlog_transaction_dependency_history_size" ; ObSysVars[350].data_type_ = ObIntType ; - ObSysVars[350].enum_names_ = "[u'COMMIT_ORDER', u'WRITESET', u'WRITESET_SESSION']" ; ObSysVars[350].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[350].id_ = SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_TRACKING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_TRACKING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_TRACKING] = 350 ; - ObSysVars[350].base_value_ = "0" ; - ObSysVars[350].alias_ = "OB_SV_BINLOG_TRANSACTION_DEPENDENCY_TRACKING" ; + ObSysVars[350].id_ = SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE] = 350 ; + ObSysVars[350].base_value_ = "25000" ; + ObSysVars[350].alias_ = "OB_SV_BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE" ; }(); [&] (){ ObSysVars[351].default_value_ = "0" ; - ObSysVars[351].info_ = "The number of days for automatic binary log file removal. Merely simulates MySQL 5.7." ; - ObSysVars[351].name_ = "expire_logs_days" ; + ObSysVars[351].info_ = "The source of dependency information that the source uses to determine which transactions can be executed in parallel by the replica's multithreaded applier. Merely simulates MySQL 5.7." ; + ObSysVars[351].name_ = "binlog_transaction_dependency_tracking" ; ObSysVars[351].data_type_ = ObIntType ; + ObSysVars[351].enum_names_ = "[u'COMMIT_ORDER', u'WRITESET', u'WRITESET_SESSION']" ; ObSysVars[351].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[351].id_ = SYS_VAR_EXPIRE_LOGS_DAYS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_EXPIRE_LOGS_DAYS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_EXPIRE_LOGS_DAYS] = 351 ; + ObSysVars[351].id_ = SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_TRACKING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_TRACKING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_TRACKING] = 351 ; ObSysVars[351].base_value_ = "0" ; - ObSysVars[351].alias_ = "OB_SV_EXPIRE_LOGS_DAYS" ; + ObSysVars[351].alias_ = "OB_SV_BINLOG_TRANSACTION_DEPENDENCY_TRACKING" ; }(); [&] (){ - ObSysVars[352].default_value_ = "1" ; - ObSysVars[352].info_ = "Write and flush the logs every N seconds. Merely simulates MySQL 5.7." ; - ObSysVars[352].name_ = "innodb_flush_log_at_timeout" ; + ObSysVars[352].default_value_ = "0" ; + ObSysVars[352].info_ = "The number of days for automatic binary log file removal. Merely simulates MySQL 5.7." ; + ObSysVars[352].name_ = "expire_logs_days" ; ObSysVars[352].data_type_ = ObIntType ; ObSysVars[352].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[352].id_ = SYS_VAR_INNODB_FLUSH_LOG_AT_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_LOG_AT_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_LOG_AT_TIMEOUT] = 352 ; - ObSysVars[352].base_value_ = "1" ; - ObSysVars[352].alias_ = "OB_SV_INNODB_FLUSH_LOG_AT_TIMEOUT" ; + ObSysVars[352].id_ = SYS_VAR_EXPIRE_LOGS_DAYS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_EXPIRE_LOGS_DAYS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_EXPIRE_LOGS_DAYS] = 352 ; + ObSysVars[352].base_value_ = "0" ; + ObSysVars[352].alias_ = "OB_SV_EXPIRE_LOGS_DAYS" ; }(); [&] (){ ObSysVars[353].default_value_ = "1" ; - ObSysVars[353].info_ = "Controls the balance between strict ACID compliance for commit operations and higher performance. Merely simulates MySQL 5.7." ; - ObSysVars[353].name_ = "innodb_flush_log_at_trx_commit" ; + ObSysVars[353].info_ = "Write and flush the logs every N seconds. Merely simulates MySQL 5.7." ; + ObSysVars[353].name_ = "innodb_flush_log_at_timeout" ; ObSysVars[353].data_type_ = ObIntType ; ObSysVars[353].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[353].id_ = SYS_VAR_INNODB_FLUSH_LOG_AT_TRX_COMMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_LOG_AT_TRX_COMMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_LOG_AT_TRX_COMMIT] = 353 ; + ObSysVars[353].id_ = SYS_VAR_INNODB_FLUSH_LOG_AT_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_LOG_AT_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_LOG_AT_TIMEOUT] = 353 ; ObSysVars[353].base_value_ = "1" ; - ObSysVars[353].alias_ = "OB_SV_INNODB_FLUSH_LOG_AT_TRX_COMMIT" ; + ObSysVars[353].alias_ = "OB_SV_INNODB_FLUSH_LOG_AT_TIMEOUT" ; }(); [&] (){ - ObSysVars[354].default_value_ = "0" ; - ObSysVars[354].info_ = "Enable this debug option to force InnoDB to write a checkpoint. Merely simulates MySQL 5.7." ; - ObSysVars[354].name_ = "innodb_log_checkpoint_now" ; + ObSysVars[354].default_value_ = "1" ; + ObSysVars[354].info_ = "Controls the balance between strict ACID compliance for commit operations and higher performance. Merely simulates MySQL 5.7." ; + ObSysVars[354].name_ = "innodb_flush_log_at_trx_commit" ; ObSysVars[354].data_type_ = ObIntType ; ObSysVars[354].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[354].id_ = SYS_VAR_INNODB_LOG_CHECKPOINT_NOW ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_CHECKPOINT_NOW)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_CHECKPOINT_NOW] = 354 ; - ObSysVars[354].base_value_ = "0" ; - ObSysVars[354].alias_ = "OB_SV_INNODB_LOG_CHECKPOINT_NOW" ; + ObSysVars[354].id_ = SYS_VAR_INNODB_FLUSH_LOG_AT_TRX_COMMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FLUSH_LOG_AT_TRX_COMMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FLUSH_LOG_AT_TRX_COMMIT] = 354 ; + ObSysVars[354].base_value_ = "1" ; + ObSysVars[354].alias_ = "OB_SV_INNODB_FLUSH_LOG_AT_TRX_COMMIT" ; }(); [&] (){ - ObSysVars[355].default_value_ = "1" ; - ObSysVars[355].info_ = "Enables or disables checksums for redo log pages. Merely simulates MySQL 5.7." ; - ObSysVars[355].name_ = "innodb_log_checksums" ; + ObSysVars[355].default_value_ = "0" ; + ObSysVars[355].info_ = "Enable this debug option to force InnoDB to write a checkpoint. Merely simulates MySQL 5.7." ; + ObSysVars[355].name_ = "innodb_log_checkpoint_now" ; ObSysVars[355].data_type_ = ObIntType ; ObSysVars[355].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[355].id_ = SYS_VAR_INNODB_LOG_CHECKSUMS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_CHECKSUMS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_CHECKSUMS] = 355 ; - ObSysVars[355].base_value_ = "1" ; - ObSysVars[355].alias_ = "OB_SV_INNODB_LOG_CHECKSUMS" ; + ObSysVars[355].id_ = SYS_VAR_INNODB_LOG_CHECKPOINT_NOW ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_CHECKPOINT_NOW)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_CHECKPOINT_NOW] = 355 ; + ObSysVars[355].base_value_ = "0" ; + ObSysVars[355].alias_ = "OB_SV_INNODB_LOG_CHECKPOINT_NOW" ; }(); [&] (){ ObSysVars[356].default_value_ = "1" ; - ObSysVars[356].info_ = "Specifies whether images of re-compressed pages are written to the redo log. Merely simulates MySQL 5.7." ; - ObSysVars[356].name_ = "innodb_log_compressed_pages" ; + ObSysVars[356].info_ = "Enables or disables checksums for redo log pages. Merely simulates MySQL 5.7." ; + ObSysVars[356].name_ = "innodb_log_checksums" ; ObSysVars[356].data_type_ = ObIntType ; ObSysVars[356].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[356].id_ = SYS_VAR_INNODB_LOG_COMPRESSED_PAGES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_COMPRESSED_PAGES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_COMPRESSED_PAGES] = 356 ; + ObSysVars[356].id_ = SYS_VAR_INNODB_LOG_CHECKSUMS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_CHECKSUMS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_CHECKSUMS] = 356 ; ObSysVars[356].base_value_ = "1" ; - ObSysVars[356].alias_ = "OB_SV_INNODB_LOG_COMPRESSED_PAGES" ; + ObSysVars[356].alias_ = "OB_SV_INNODB_LOG_CHECKSUMS" ; }(); [&] (){ - ObSysVars[357].default_value_ = "8192" ; - ObSysVars[357].info_ = "Defines the write-ahead block size for the redo log, in bytes. Merely simulates MySQL 5.7." ; - ObSysVars[357].name_ = "innodb_log_write_ahead_size" ; + ObSysVars[357].default_value_ = "1" ; + ObSysVars[357].info_ = "Specifies whether images of re-compressed pages are written to the redo log. Merely simulates MySQL 5.7." ; + ObSysVars[357].name_ = "innodb_log_compressed_pages" ; ObSysVars[357].data_type_ = ObIntType ; ObSysVars[357].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[357].id_ = SYS_VAR_INNODB_LOG_WRITE_AHEAD_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_WRITE_AHEAD_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_WRITE_AHEAD_SIZE] = 357 ; - ObSysVars[357].base_value_ = "8192" ; - ObSysVars[357].alias_ = "OB_SV_INNODB_LOG_WRITE_AHEAD_SIZE" ; + ObSysVars[357].id_ = SYS_VAR_INNODB_LOG_COMPRESSED_PAGES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_COMPRESSED_PAGES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_COMPRESSED_PAGES] = 357 ; + ObSysVars[357].base_value_ = "1" ; + ObSysVars[357].alias_ = "OB_SV_INNODB_LOG_COMPRESSED_PAGES" ; }(); [&] (){ - ObSysVars[358].default_value_ = "1073741824" ; - ObSysVars[358].info_ = "Defines a threshold size for undo tablespaces. Merely simulates MySQL 5.7." ; - ObSysVars[358].name_ = "innodb_max_undo_log_size" ; + ObSysVars[358].default_value_ = "8192" ; + ObSysVars[358].info_ = "Defines the write-ahead block size for the redo log, in bytes. Merely simulates MySQL 5.7." ; + ObSysVars[358].name_ = "innodb_log_write_ahead_size" ; ObSysVars[358].data_type_ = ObIntType ; ObSysVars[358].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[358].id_ = SYS_VAR_INNODB_MAX_UNDO_LOG_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_UNDO_LOG_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_UNDO_LOG_SIZE] = 358 ; - ObSysVars[358].base_value_ = "1073741824" ; - ObSysVars[358].alias_ = "OB_SV_INNODB_MAX_UNDO_LOG_SIZE" ; + ObSysVars[358].id_ = SYS_VAR_INNODB_LOG_WRITE_AHEAD_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_WRITE_AHEAD_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_WRITE_AHEAD_SIZE] = 358 ; + ObSysVars[358].base_value_ = "8192" ; + ObSysVars[358].alias_ = "OB_SV_INNODB_LOG_WRITE_AHEAD_SIZE" ; }(); [&] (){ - ObSysVars[359].default_value_ = "134217728" ; - ObSysVars[359].info_ = "Specifies an upper limit in bytes on the size of the temporary log files used during online DDL operations for InnoDB tables. Merely simulates MySQL 5.7." ; - ObSysVars[359].name_ = "innodb_online_alter_log_max_size" ; + ObSysVars[359].default_value_ = "1073741824" ; + ObSysVars[359].info_ = "Defines a threshold size for undo tablespaces. Merely simulates MySQL 5.7." ; + ObSysVars[359].name_ = "innodb_max_undo_log_size" ; ObSysVars[359].data_type_ = ObIntType ; ObSysVars[359].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[359].id_ = SYS_VAR_INNODB_ONLINE_ALTER_LOG_MAX_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ONLINE_ALTER_LOG_MAX_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ONLINE_ALTER_LOG_MAX_SIZE] = 359 ; - ObSysVars[359].base_value_ = "134217728" ; - ObSysVars[359].alias_ = "OB_SV_INNODB_ONLINE_ALTER_LOG_MAX_SIZE" ; + ObSysVars[359].id_ = SYS_VAR_INNODB_MAX_UNDO_LOG_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MAX_UNDO_LOG_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MAX_UNDO_LOG_SIZE] = 359 ; + ObSysVars[359].base_value_ = "1073741824" ; + ObSysVars[359].alias_ = "OB_SV_INNODB_MAX_UNDO_LOG_SIZE" ; }(); [&] (){ - ObSysVars[360].default_value_ = "0" ; - ObSysVars[360].info_ = "When enabled, undo tablespaces that exceed the threshold value defined by innodb_max_undo_log_size are marked for truncation. Merely simulates MySQL 5.7." ; - ObSysVars[360].name_ = "innodb_undo_log_truncate" ; + ObSysVars[360].default_value_ = "134217728" ; + ObSysVars[360].info_ = "Specifies an upper limit in bytes on the size of the temporary log files used during online DDL operations for InnoDB tables. Merely simulates MySQL 5.7." ; + ObSysVars[360].name_ = "innodb_online_alter_log_max_size" ; ObSysVars[360].data_type_ = ObIntType ; ObSysVars[360].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[360].id_ = SYS_VAR_INNODB_UNDO_LOG_TRUNCATE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_UNDO_LOG_TRUNCATE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_UNDO_LOG_TRUNCATE] = 360 ; - ObSysVars[360].base_value_ = "0" ; - ObSysVars[360].alias_ = "OB_SV_INNODB_UNDO_LOG_TRUNCATE" ; + ObSysVars[360].id_ = SYS_VAR_INNODB_ONLINE_ALTER_LOG_MAX_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ONLINE_ALTER_LOG_MAX_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ONLINE_ALTER_LOG_MAX_SIZE] = 360 ; + ObSysVars[360].base_value_ = "134217728" ; + ObSysVars[360].alias_ = "OB_SV_INNODB_ONLINE_ALTER_LOG_MAX_SIZE" ; }(); [&] (){ - ObSysVars[361].default_value_ = "128" ; - ObSysVars[361].info_ = "Defines the number of rollback segments used by InnoDB. Merely simulates MySQL 5.7." ; - ObSysVars[361].name_ = "innodb_undo_logs" ; + ObSysVars[361].default_value_ = "0" ; + ObSysVars[361].info_ = "When enabled, undo tablespaces that exceed the threshold value defined by innodb_max_undo_log_size are marked for truncation. Merely simulates MySQL 5.7." ; + ObSysVars[361].name_ = "innodb_undo_log_truncate" ; ObSysVars[361].data_type_ = ObIntType ; ObSysVars[361].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[361].id_ = SYS_VAR_INNODB_UNDO_LOGS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_UNDO_LOGS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_UNDO_LOGS] = 361 ; - ObSysVars[361].base_value_ = "128" ; - ObSysVars[361].alias_ = "OB_SV_INNODB_UNDO_LOGS" ; + ObSysVars[361].id_ = SYS_VAR_INNODB_UNDO_LOG_TRUNCATE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_UNDO_LOG_TRUNCATE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_UNDO_LOG_TRUNCATE] = 361 ; + ObSysVars[361].base_value_ = "0" ; + ObSysVars[361].alias_ = "OB_SV_INNODB_UNDO_LOG_TRUNCATE" ; }(); [&] (){ - ObSysVars[362].default_value_ = "0" ; - ObSysVars[362].info_ = "It controls whether stored function creators can be trusted not to create stored functions that causes unsafe events to be written to the binary log. Merely simulates MySQL 5.7." ; - ObSysVars[362].name_ = "log_bin_trust_function_creators" ; + ObSysVars[362].default_value_ = "128" ; + ObSysVars[362].info_ = "Defines the number of rollback segments used by InnoDB. Merely simulates MySQL 5.7." ; + ObSysVars[362].name_ = "innodb_undo_logs" ; ObSysVars[362].data_type_ = ObIntType ; ObSysVars[362].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[362].id_ = SYS_VAR_LOG_BIN_TRUST_FUNCTION_CREATORS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BIN_TRUST_FUNCTION_CREATORS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BIN_TRUST_FUNCTION_CREATORS] = 362 ; - ObSysVars[362].base_value_ = "0" ; - ObSysVars[362].alias_ = "OB_SV_LOG_BIN_TRUST_FUNCTION_CREATORS" ; + ObSysVars[362].id_ = SYS_VAR_INNODB_UNDO_LOGS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_UNDO_LOGS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_UNDO_LOGS] = 362 ; + ObSysVars[362].base_value_ = "128" ; + ObSysVars[362].alias_ = "OB_SV_INNODB_UNDO_LOGS" ; }(); [&] (){ ObSysVars[363].default_value_ = "0" ; - ObSysVars[363].info_ = "Whether Version 2 binary logging is in use. Merely simulates MySQL 5.7." ; - ObSysVars[363].name_ = "log_bin_use_v1_row_events" ; + ObSysVars[363].info_ = "It controls whether stored function creators can be trusted not to create stored functions that causes unsafe events to be written to the binary log. Merely simulates MySQL 5.7." ; + ObSysVars[363].name_ = "log_bin_trust_function_creators" ; ObSysVars[363].data_type_ = ObIntType ; ObSysVars[363].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[363].id_ = SYS_VAR_LOG_BIN_USE_V1_ROW_EVENTS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BIN_USE_V1_ROW_EVENTS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BIN_USE_V1_ROW_EVENTS] = 363 ; + ObSysVars[363].id_ = SYS_VAR_LOG_BIN_TRUST_FUNCTION_CREATORS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BIN_TRUST_FUNCTION_CREATORS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BIN_TRUST_FUNCTION_CREATORS] = 363 ; ObSysVars[363].base_value_ = "0" ; - ObSysVars[363].alias_ = "OB_SV_LOG_BIN_USE_V1_ROW_EVENTS" ; + ObSysVars[363].alias_ = "OB_SV_LOG_BIN_TRUST_FUNCTION_CREATORS" ; }(); [&] (){ ObSysVars[364].default_value_ = "0" ; - ObSysVars[364].info_ = "This variable affects binary logging of user-management statements. Merely simulates MySQL 5.7." ; - ObSysVars[364].name_ = "log_builtin_as_identified_by_password" ; + ObSysVars[364].info_ = "Whether Version 2 binary logging is in use. Merely simulates MySQL 5.7." ; + ObSysVars[364].name_ = "log_bin_use_v1_row_events" ; ObSysVars[364].data_type_ = ObIntType ; ObSysVars[364].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[364].id_ = SYS_VAR_LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD] = 364 ; + ObSysVars[364].id_ = SYS_VAR_LOG_BIN_USE_V1_ROW_EVENTS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BIN_USE_V1_ROW_EVENTS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BIN_USE_V1_ROW_EVENTS] = 364 ; ObSysVars[364].base_value_ = "0" ; - ObSysVars[364].alias_ = "OB_SV_LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD" ; + ObSysVars[364].alias_ = "OB_SV_LOG_BIN_USE_V1_ROW_EVENTS" ; }(); [&] (){ - ObSysVars[365].default_value_ = "18446744073709500416" ; - ObSysVars[365].info_ = "If a transaction requires more than this many bytes, the server generates a Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage error. Merely simulates MySQL 5.7." ; - ObSysVars[365].name_ = "max_binlog_cache_size" ; - ObSysVars[365].data_type_ = ObUInt64Type ; + ObSysVars[365].default_value_ = "0" ; + ObSysVars[365].info_ = "This variable affects binary logging of user-management statements. Merely simulates MySQL 5.7." ; + ObSysVars[365].name_ = "log_builtin_as_identified_by_password" ; + ObSysVars[365].data_type_ = ObIntType ; ObSysVars[365].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[365].id_ = SYS_VAR_MAX_BINLOG_CACHE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_BINLOG_CACHE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_BINLOG_CACHE_SIZE] = 365 ; - ObSysVars[365].base_value_ = "18446744073709500416" ; - ObSysVars[365].alias_ = "OB_SV_MAX_BINLOG_CACHE_SIZE" ; + ObSysVars[365].id_ = SYS_VAR_LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD] = 365 ; + ObSysVars[365].base_value_ = "0" ; + ObSysVars[365].alias_ = "OB_SV_LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD" ; }(); [&] (){ - ObSysVars[366].default_value_ = "1073741824" ; - ObSysVars[366].info_ = "If a write to the binary log causes the current log file size to exceed the value of this variable, the server rotates the binary logs. Merely simulates MySQL 5.7." ; - ObSysVars[366].name_ = "max_binlog_size" ; - ObSysVars[366].data_type_ = ObIntType ; + ObSysVars[366].default_value_ = "18446744073709500416" ; + ObSysVars[366].info_ = "If a transaction requires more than this many bytes, the server generates a Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage error. Merely simulates MySQL 5.7." ; + ObSysVars[366].name_ = "max_binlog_cache_size" ; + ObSysVars[366].data_type_ = ObUInt64Type ; ObSysVars[366].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[366].id_ = SYS_VAR_MAX_BINLOG_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_BINLOG_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_BINLOG_SIZE] = 366 ; - ObSysVars[366].base_value_ = "1073741824" ; - ObSysVars[366].alias_ = "OB_SV_MAX_BINLOG_SIZE" ; + ObSysVars[366].id_ = SYS_VAR_MAX_BINLOG_CACHE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_BINLOG_CACHE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_BINLOG_CACHE_SIZE] = 366 ; + ObSysVars[366].base_value_ = "18446744073709500416" ; + ObSysVars[366].alias_ = "OB_SV_MAX_BINLOG_CACHE_SIZE" ; }(); [&] (){ - ObSysVars[367].default_value_ = "18446744073709500416" ; - ObSysVars[367].info_ = "If nontransactional statements within a transaction require more than this many bytes of memory, the server generates an error. Merely simulates MySQL 5.7." ; - ObSysVars[367].name_ = "max_binlog_stmt_cache_size" ; - ObSysVars[367].data_type_ = ObUInt64Type ; + ObSysVars[367].default_value_ = "1073741824" ; + ObSysVars[367].info_ = "If a write to the binary log causes the current log file size to exceed the value of this variable, the server rotates the binary logs. Merely simulates MySQL 5.7." ; + ObSysVars[367].name_ = "max_binlog_size" ; + ObSysVars[367].data_type_ = ObIntType ; ObSysVars[367].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[367].id_ = SYS_VAR_MAX_BINLOG_STMT_CACHE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_BINLOG_STMT_CACHE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_BINLOG_STMT_CACHE_SIZE] = 367 ; - ObSysVars[367].base_value_ = "18446744073709500416" ; - ObSysVars[367].alias_ = "OB_SV_MAX_BINLOG_STMT_CACHE_SIZE" ; + ObSysVars[367].id_ = SYS_VAR_MAX_BINLOG_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_BINLOG_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_BINLOG_SIZE] = 367 ; + ObSysVars[367].base_value_ = "1073741824" ; + ObSysVars[367].alias_ = "OB_SV_MAX_BINLOG_SIZE" ; }(); [&] (){ - ObSysVars[368].default_value_ = "0" ; - ObSysVars[368].info_ = "The size at which the server rotates relay log files automatically. Merely simulates MySQL 5.7." ; - ObSysVars[368].name_ = "max_relay_log_size" ; - ObSysVars[368].data_type_ = ObIntType ; + ObSysVars[368].default_value_ = "18446744073709500416" ; + ObSysVars[368].info_ = "If nontransactional statements within a transaction require more than this many bytes of memory, the server generates an error. Merely simulates MySQL 5.7." ; + ObSysVars[368].name_ = "max_binlog_stmt_cache_size" ; + ObSysVars[368].data_type_ = ObUInt64Type ; ObSysVars[368].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[368].id_ = SYS_VAR_MAX_RELAY_LOG_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_RELAY_LOG_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_RELAY_LOG_SIZE] = 368 ; - ObSysVars[368].base_value_ = "0" ; - ObSysVars[368].alias_ = "OB_SV_MAX_RELAY_LOG_SIZE" ; + ObSysVars[368].id_ = SYS_VAR_MAX_BINLOG_STMT_CACHE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_BINLOG_STMT_CACHE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_BINLOG_STMT_CACHE_SIZE] = 368 ; + ObSysVars[368].base_value_ = "18446744073709500416" ; + ObSysVars[368].alias_ = "OB_SV_MAX_BINLOG_STMT_CACHE_SIZE" ; }(); [&] (){ - ObSysVars[369].default_value_ = "FILE" ; - ObSysVars[369].info_ = "The setting of this variable determines whether the replica server stores its applier metadata repository as an InnoDB table in the mysql system database, or as a file in the data directory. Merely simulates MySQL 5.7." ; - ObSysVars[369].name_ = "relay_log_info_repository" ; - ObSysVars[369].data_type_ = ObVarcharType ; + ObSysVars[369].default_value_ = "0" ; + ObSysVars[369].info_ = "The size at which the server rotates relay log files automatically. Merely simulates MySQL 5.7." ; + ObSysVars[369].name_ = "max_relay_log_size" ; + ObSysVars[369].data_type_ = ObIntType ; ObSysVars[369].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[369].id_ = SYS_VAR_RELAY_LOG_INFO_REPOSITORY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_INFO_REPOSITORY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_INFO_REPOSITORY] = 369 ; - ObSysVars[369].base_value_ = "FILE" ; - ObSysVars[369].alias_ = "OB_SV_RELAY_LOG_INFO_REPOSITORY" ; + ObSysVars[369].id_ = SYS_VAR_MAX_RELAY_LOG_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_RELAY_LOG_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_RELAY_LOG_SIZE] = 369 ; + ObSysVars[369].base_value_ = "0" ; + ObSysVars[369].alias_ = "OB_SV_MAX_RELAY_LOG_SIZE" ; }(); [&] (){ - ObSysVars[370].default_value_ = "1" ; - ObSysVars[370].info_ = "Disables or enables automatic purging of relay log files as soon as they are not needed any more. Merely simulates MySQL 5.7." ; - ObSysVars[370].name_ = "relay_log_purge" ; - ObSysVars[370].data_type_ = ObIntType ; + ObSysVars[370].default_value_ = "FILE" ; + ObSysVars[370].info_ = "The setting of this variable determines whether the replica server stores its applier metadata repository as an InnoDB table in the mysql system database, or as a file in the data directory. Merely simulates MySQL 5.7." ; + ObSysVars[370].name_ = "relay_log_info_repository" ; + ObSysVars[370].data_type_ = ObVarcharType ; ObSysVars[370].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[370].id_ = SYS_VAR_RELAY_LOG_PURGE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_PURGE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_PURGE] = 370 ; - ObSysVars[370].base_value_ = "1" ; - ObSysVars[370].alias_ = "OB_SV_RELAY_LOG_PURGE" ; + ObSysVars[370].id_ = SYS_VAR_RELAY_LOG_INFO_REPOSITORY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_INFO_REPOSITORY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_INFO_REPOSITORY] = 370 ; + ObSysVars[370].base_value_ = "FILE" ; + ObSysVars[370].alias_ = "OB_SV_RELAY_LOG_INFO_REPOSITORY" ; }(); [&] (){ ObSysVars[371].default_value_ = "1" ; - ObSysVars[371].info_ = "Controls how often the MySQL server synchronizes the binary log to disk. Merely simulates MySQL 5.7." ; - ObSysVars[371].name_ = "sync_binlog" ; + ObSysVars[371].info_ = "Disables or enables automatic purging of relay log files as soon as they are not needed any more. Merely simulates MySQL 5.7." ; + ObSysVars[371].name_ = "relay_log_purge" ; ObSysVars[371].data_type_ = ObIntType ; ObSysVars[371].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[371].id_ = SYS_VAR_SYNC_BINLOG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_BINLOG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_BINLOG] = 371 ; + ObSysVars[371].id_ = SYS_VAR_RELAY_LOG_PURGE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_PURGE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_PURGE] = 371 ; ObSysVars[371].base_value_ = "1" ; - ObSysVars[371].alias_ = "OB_SV_SYNC_BINLOG" ; + ObSysVars[371].alias_ = "OB_SV_RELAY_LOG_PURGE" ; }(); [&] (){ - ObSysVars[372].default_value_ = "10000" ; - ObSysVars[372].info_ = "If the value of this variable is greater than 0, the MySQL server synchronizes its relay log to disk after every sync_relay_log events are written to the relay log. Merely simulates MySQL 5.7." ; - ObSysVars[372].name_ = "sync_relay_log" ; + ObSysVars[372].default_value_ = "1" ; + ObSysVars[372].info_ = "Controls how often the MySQL server synchronizes the binary log to disk. Merely simulates MySQL 5.7." ; + ObSysVars[372].name_ = "sync_binlog" ; ObSysVars[372].data_type_ = ObIntType ; ObSysVars[372].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[372].id_ = SYS_VAR_SYNC_RELAY_LOG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_RELAY_LOG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_RELAY_LOG] = 372 ; - ObSysVars[372].base_value_ = "10000" ; - ObSysVars[372].alias_ = "OB_SV_SYNC_RELAY_LOG" ; + ObSysVars[372].id_ = SYS_VAR_SYNC_BINLOG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_BINLOG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_BINLOG] = 372 ; + ObSysVars[372].base_value_ = "1" ; + ObSysVars[372].alias_ = "OB_SV_SYNC_BINLOG" ; }(); [&] (){ ObSysVars[373].default_value_ = "10000" ; - ObSysVars[373].info_ = "Setting this variable takes effect for all replication channels immediately, including running channels. Merely simulates MySQL 5.7." ; - ObSysVars[373].name_ = "sync_relay_log_info" ; + ObSysVars[373].info_ = "If the value of this variable is greater than 0, the MySQL server synchronizes its relay log to disk after every sync_relay_log events are written to the relay log. Merely simulates MySQL 5.7." ; + ObSysVars[373].name_ = "sync_relay_log" ; ObSysVars[373].data_type_ = ObIntType ; ObSysVars[373].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[373].id_ = SYS_VAR_SYNC_RELAY_LOG_INFO ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_RELAY_LOG_INFO)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_RELAY_LOG_INFO] = 373 ; + ObSysVars[373].id_ = SYS_VAR_SYNC_RELAY_LOG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_RELAY_LOG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_RELAY_LOG] = 373 ; ObSysVars[373].base_value_ = "10000" ; - ObSysVars[373].alias_ = "OB_SV_SYNC_RELAY_LOG_INFO" ; + ObSysVars[373].alias_ = "OB_SV_SYNC_RELAY_LOG" ; }(); [&] (){ - ObSysVars[374].default_value_ = "1" ; - ObSysVars[374].info_ = "This option is used to disable deadlock detection. Merely simulates MySQL 5.7." ; - ObSysVars[374].name_ = "innodb_deadlock_detect" ; + ObSysVars[374].default_value_ = "10000" ; + ObSysVars[374].info_ = "Setting this variable takes effect for all replication channels immediately, including running channels. Merely simulates MySQL 5.7." ; + ObSysVars[374].name_ = "sync_relay_log_info" ; ObSysVars[374].data_type_ = ObIntType ; ObSysVars[374].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[374].id_ = SYS_VAR_INNODB_DEADLOCK_DETECT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DEADLOCK_DETECT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DEADLOCK_DETECT] = 374 ; - ObSysVars[374].base_value_ = "1" ; - ObSysVars[374].alias_ = "OB_SV_INNODB_DEADLOCK_DETECT" ; + ObSysVars[374].id_ = SYS_VAR_SYNC_RELAY_LOG_INFO ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_RELAY_LOG_INFO)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_RELAY_LOG_INFO] = 374 ; + ObSysVars[374].base_value_ = "10000" ; + ObSysVars[374].alias_ = "OB_SV_SYNC_RELAY_LOG_INFO" ; }(); [&] (){ - ObSysVars[375].default_value_ = "50" ; - ObSysVars[375].info_ = "The length of time in seconds an InnoDB transaction waits for a row lock before giving up. Merely simulates MySQL 5.7." ; - ObSysVars[375].name_ = "innodb_lock_wait_timeout" ; + ObSysVars[375].default_value_ = "1" ; + ObSysVars[375].info_ = "This option is used to disable deadlock detection. Merely simulates MySQL 5.7." ; + ObSysVars[375].name_ = "innodb_deadlock_detect" ; ObSysVars[375].data_type_ = ObIntType ; - ObSysVars[375].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[375].id_ = SYS_VAR_INNODB_LOCK_WAIT_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOCK_WAIT_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOCK_WAIT_TIMEOUT] = 375 ; - ObSysVars[375].base_value_ = "50" ; - ObSysVars[375].alias_ = "OB_SV_INNODB_LOCK_WAIT_TIMEOUT" ; + ObSysVars[375].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[375].id_ = SYS_VAR_INNODB_DEADLOCK_DETECT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DEADLOCK_DETECT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DEADLOCK_DETECT] = 375 ; + ObSysVars[375].base_value_ = "1" ; + ObSysVars[375].alias_ = "OB_SV_INNODB_DEADLOCK_DETECT" ; }(); [&] (){ - ObSysVars[376].default_value_ = "0" ; - ObSysVars[376].info_ = "When this option is enabled, information about all deadlocks in InnoDB user transactions is recorded in the mysqld error log. Merely simulates MySQL 5.7." ; - ObSysVars[376].name_ = "innodb_print_all_deadlocks" ; + ObSysVars[376].default_value_ = "50" ; + ObSysVars[376].info_ = "The length of time in seconds an InnoDB transaction waits for a row lock before giving up. Merely simulates MySQL 5.7." ; + ObSysVars[376].name_ = "innodb_lock_wait_timeout" ; ObSysVars[376].data_type_ = ObIntType ; - ObSysVars[376].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[376].id_ = SYS_VAR_INNODB_PRINT_ALL_DEADLOCKS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PRINT_ALL_DEADLOCKS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PRINT_ALL_DEADLOCKS] = 376 ; - ObSysVars[376].base_value_ = "0" ; - ObSysVars[376].alias_ = "OB_SV_INNODB_PRINT_ALL_DEADLOCKS" ; + ObSysVars[376].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[376].id_ = SYS_VAR_INNODB_LOCK_WAIT_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOCK_WAIT_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOCK_WAIT_TIMEOUT] = 376 ; + ObSysVars[376].base_value_ = "50" ; + ObSysVars[376].alias_ = "OB_SV_INNODB_LOCK_WAIT_TIMEOUT" ; }(); [&] (){ - ObSysVars[377].default_value_ = "1" ; - ObSysVars[377].info_ = "The default value is 1, which means that LOCK TABLES causes InnoDB to lock a table internally if autocommit = 0. Merely simulates MySQL 5.7." ; - ObSysVars[377].name_ = "innodb_table_locks" ; + ObSysVars[377].default_value_ = "0" ; + ObSysVars[377].info_ = "When this option is enabled, information about all deadlocks in InnoDB user transactions is recorded in the mysqld error log. Merely simulates MySQL 5.7." ; + ObSysVars[377].name_ = "innodb_print_all_deadlocks" ; ObSysVars[377].data_type_ = ObIntType ; - ObSysVars[377].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[377].id_ = SYS_VAR_INNODB_TABLE_LOCKS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TABLE_LOCKS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TABLE_LOCKS] = 377 ; - ObSysVars[377].base_value_ = "1" ; - ObSysVars[377].alias_ = "OB_SV_INNODB_TABLE_LOCKS" ; + ObSysVars[377].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[377].id_ = SYS_VAR_INNODB_PRINT_ALL_DEADLOCKS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PRINT_ALL_DEADLOCKS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PRINT_ALL_DEADLOCKS] = 377 ; + ObSysVars[377].base_value_ = "0" ; + ObSysVars[377].alias_ = "OB_SV_INNODB_PRINT_ALL_DEADLOCKS" ; }(); [&] (){ - ObSysVars[378].default_value_ = "18446744073709500416" ; - ObSysVars[378].info_ = "if max_write_lock_count is set to some low value (say, 10), read lock requests may be preferred over pending write lock requests if the read lock requests have already been passed over in favor of 10 write lock requests. Merely simulates MySQL 5.7." ; - ObSysVars[378].name_ = "max_write_lock_count" ; - ObSysVars[378].data_type_ = ObUInt64Type ; - ObSysVars[378].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[378].id_ = SYS_VAR_MAX_WRITE_LOCK_COUNT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_WRITE_LOCK_COUNT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_WRITE_LOCK_COUNT] = 378 ; - ObSysVars[378].base_value_ = "18446744073709500416" ; - ObSysVars[378].alias_ = "OB_SV_MAX_WRITE_LOCK_COUNT" ; + ObSysVars[378].default_value_ = "1" ; + ObSysVars[378].info_ = "The default value is 1, which means that LOCK TABLES causes InnoDB to lock a table internally if autocommit = 0. Merely simulates MySQL 5.7." ; + ObSysVars[378].name_ = "innodb_table_locks" ; + ObSysVars[378].data_type_ = ObIntType ; + ObSysVars[378].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[378].id_ = SYS_VAR_INNODB_TABLE_LOCKS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TABLE_LOCKS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TABLE_LOCKS] = 378 ; + ObSysVars[378].base_value_ = "1" ; + ObSysVars[378].alias_ = "OB_SV_INNODB_TABLE_LOCKS" ; }(); [&] (){ - ObSysVars[379].default_value_ = "" ; - ObSysVars[379].info_ = "enabled roles for current session" ; - ObSysVars[379].name_ = "_ob_enable_role_ids" ; - ObSysVars[379].data_type_ = ObVarcharType ; - ObSysVars[379].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::NEED_SERIALIZE | ObSysVarFlag::INVISIBLE ; - ObSysVars[379].id_ = SYS_VAR__OB_ENABLE_ROLE_IDS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR__OB_ENABLE_ROLE_IDS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR__OB_ENABLE_ROLE_IDS] = 379 ; - ObSysVars[379].base_value_ = "" ; - ObSysVars[379].alias_ = "OB_SV__OB_ENABLE_ROLE_IDS" ; + ObSysVars[379].default_value_ = "18446744073709500416" ; + ObSysVars[379].info_ = "if max_write_lock_count is set to some low value (say, 10), read lock requests may be preferred over pending write lock requests if the read lock requests have already been passed over in favor of 10 write lock requests. Merely simulates MySQL 5.7." ; + ObSysVars[379].name_ = "max_write_lock_count" ; + ObSysVars[379].data_type_ = ObUInt64Type ; + ObSysVars[379].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[379].id_ = SYS_VAR_MAX_WRITE_LOCK_COUNT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_WRITE_LOCK_COUNT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_WRITE_LOCK_COUNT] = 379 ; + ObSysVars[379].base_value_ = "18446744073709500416" ; + ObSysVars[379].alias_ = "OB_SV_MAX_WRITE_LOCK_COUNT" ; }(); [&] (){ - ObSysVars[380].default_value_ = "0" ; - ObSysVars[380].info_ = "Starts InnoDB in read-only mode. For distributing database applications or data sets on read-only media. Can also be used in data warehouses to share the same data directory between multiple instances, merely simulates MySQL 5.7" ; - ObSysVars[380].name_ = "innodb_read_only" ; - ObSysVars[380].data_type_ = ObIntType ; - ObSysVars[380].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[380].id_ = SYS_VAR_INNODB_READ_ONLY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_READ_ONLY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_READ_ONLY] = 380 ; - ObSysVars[380].base_value_ = "0" ; - ObSysVars[380].alias_ = "OB_SV_INNODB_READ_ONLY" ; + ObSysVars[380].default_value_ = "" ; + ObSysVars[380].info_ = "enabled roles for current session" ; + ObSysVars[380].name_ = "_ob_enable_role_ids" ; + ObSysVars[380].data_type_ = ObVarcharType ; + ObSysVars[380].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::NEED_SERIALIZE | ObSysVarFlag::INVISIBLE ; + ObSysVars[380].id_ = SYS_VAR__OB_ENABLE_ROLE_IDS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR__OB_ENABLE_ROLE_IDS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR__OB_ENABLE_ROLE_IDS] = 380 ; + ObSysVars[380].base_value_ = "" ; + ObSysVars[380].alias_ = "OB_SV__OB_ENABLE_ROLE_IDS" ; }(); [&] (){ ObSysVars[381].default_value_ = "0" ; - ObSysVars[381].info_ = "Use this option to disable row locks when InnoDB memcached performs DML operations. By default, innodb_api_disable_rowlock is disabled, which means that memcached requests row locks for get and set operations, merely simulates MySQL 5.7" ; - ObSysVars[381].name_ = "innodb_api_disable_rowlock" ; + ObSysVars[381].info_ = "Starts InnoDB in read-only mode. For distributing database applications or data sets on read-only media. Can also be used in data warehouses to share the same data directory between multiple instances, merely simulates MySQL 5.7" ; + ObSysVars[381].name_ = "innodb_read_only" ; ObSysVars[381].data_type_ = ObIntType ; ObSysVars[381].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[381].id_ = SYS_VAR_INNODB_API_DISABLE_ROWLOCK ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_API_DISABLE_ROWLOCK)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_API_DISABLE_ROWLOCK] = 381 ; + ObSysVars[381].id_ = SYS_VAR_INNODB_READ_ONLY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_READ_ONLY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_READ_ONLY] = 381 ; ObSysVars[381].base_value_ = "0" ; - ObSysVars[381].alias_ = "OB_SV_INNODB_API_DISABLE_ROWLOCK" ; + ObSysVars[381].alias_ = "OB_SV_INNODB_READ_ONLY" ; }(); [&] (){ - ObSysVars[382].default_value_ = "1" ; - ObSysVars[382].info_ = "The lock mode to use for generating auto-increment values. Permissible values are 0, 1, or 2, for traditional, consecutive, or interleaved, respectively. The default setting is 1 (consecutive), merely simulates MySQL 5.7" ; - ObSysVars[382].name_ = "innodb_autoinc_lock_mode" ; + ObSysVars[382].default_value_ = "0" ; + ObSysVars[382].info_ = "Use this option to disable row locks when InnoDB memcached performs DML operations. By default, innodb_api_disable_rowlock is disabled, which means that memcached requests row locks for get and set operations, merely simulates MySQL 5.7" ; + ObSysVars[382].name_ = "innodb_api_disable_rowlock" ; ObSysVars[382].data_type_ = ObIntType ; - ObSysVars[382].min_val_ = "0" ; - ObSysVars[382].max_val_ = "2" ; ObSysVars[382].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[382].id_ = SYS_VAR_INNODB_AUTOINC_LOCK_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_AUTOINC_LOCK_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_AUTOINC_LOCK_MODE] = 382 ; - ObSysVars[382].base_value_ = "1" ; - ObSysVars[382].alias_ = "OB_SV_INNODB_AUTOINC_LOCK_MODE" ; + ObSysVars[382].id_ = SYS_VAR_INNODB_API_DISABLE_ROWLOCK ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_API_DISABLE_ROWLOCK)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_API_DISABLE_ROWLOCK] = 382 ; + ObSysVars[382].base_value_ = "0" ; + ObSysVars[382].alias_ = "OB_SV_INNODB_API_DISABLE_ROWLOCK" ; }(); [&] (){ ObSysVars[383].default_value_ = "1" ; - ObSysVars[383].info_ = "This is OFF if mysqld uses external locking (system locking), ON if external locking is disabled, merely simulates MySQL 5.7" ; - ObSysVars[383].name_ = "skip_external_locking" ; + ObSysVars[383].info_ = "The lock mode to use for generating auto-increment values. Permissible values are 0, 1, or 2, for traditional, consecutive, or interleaved, respectively. The default setting is 1 (consecutive), merely simulates MySQL 5.7" ; + ObSysVars[383].name_ = "innodb_autoinc_lock_mode" ; ObSysVars[383].data_type_ = ObIntType ; + ObSysVars[383].min_val_ = "0" ; + ObSysVars[383].max_val_ = "2" ; ObSysVars[383].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[383].id_ = SYS_VAR_SKIP_EXTERNAL_LOCKING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_EXTERNAL_LOCKING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_EXTERNAL_LOCKING] = 383 ; + ObSysVars[383].id_ = SYS_VAR_INNODB_AUTOINC_LOCK_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_AUTOINC_LOCK_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_AUTOINC_LOCK_MODE] = 383 ; ObSysVars[383].base_value_ = "1" ; - ObSysVars[383].alias_ = "OB_SV_SKIP_EXTERNAL_LOCKING" ; + ObSysVars[383].alias_ = "OB_SV_INNODB_AUTOINC_LOCK_MODE" ; }(); [&] (){ - ObSysVars[384].default_value_ = "0" ; - ObSysVars[384].info_ = "If the read_only system variable is enabled, the server permits no client updates except from users who have the SUPER privilege. If the super_read_only system variable is also enabled, the server prohibits client updates even from users who have SUPER, merely simulates MySQL 5.7" ; - ObSysVars[384].name_ = "super_read_only" ; + ObSysVars[384].default_value_ = "1" ; + ObSysVars[384].info_ = "This is OFF if mysqld uses external locking (system locking), ON if external locking is disabled, merely simulates MySQL 5.7" ; + ObSysVars[384].name_ = "skip_external_locking" ; ObSysVars[384].data_type_ = ObIntType ; ObSysVars[384].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[384].id_ = SYS_VAR_SUPER_READ_ONLY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SUPER_READ_ONLY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SUPER_READ_ONLY] = 384 ; - ObSysVars[384].base_value_ = "0" ; - ObSysVars[384].alias_ = "OB_SV_SUPER_READ_ONLY" ; + ObSysVars[384].id_ = SYS_VAR_SKIP_EXTERNAL_LOCKING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_EXTERNAL_LOCKING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_EXTERNAL_LOCKING] = 384 ; + ObSysVars[384].base_value_ = "1" ; + ObSysVars[384].alias_ = "OB_SV_SKIP_EXTERNAL_LOCKING" ; }(); [&] (){ ObSysVars[385].default_value_ = "0" ; - ObSysVars[385].info_ = "mock for mysql5.7" ; - ObSysVars[385].name_ = "low_priority_updates" ; + ObSysVars[385].info_ = "If the read_only system variable is enabled, the server permits no client updates except from users who have the SUPER privilege. If the super_read_only system variable is also enabled, the server prohibits client updates even from users who have SUPER, merely simulates MySQL 5.7" ; + ObSysVars[385].name_ = "super_read_only" ; ObSysVars[385].data_type_ = ObIntType ; - ObSysVars[385].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[385].id_ = SYS_VAR_LOW_PRIORITY_UPDATES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOW_PRIORITY_UPDATES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOW_PRIORITY_UPDATES] = 385 ; + ObSysVars[385].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[385].id_ = SYS_VAR_SUPER_READ_ONLY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SUPER_READ_ONLY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SUPER_READ_ONLY] = 385 ; ObSysVars[385].base_value_ = "0" ; - ObSysVars[385].alias_ = "OB_SV_LOW_PRIORITY_UPDATES" ; + ObSysVars[385].alias_ = "OB_SV_SUPER_READ_ONLY" ; }(); [&] (){ - ObSysVars[386].default_value_ = "64" ; + ObSysVars[386].default_value_ = "0" ; ObSysVars[386].info_ = "mock for mysql5.7" ; - ObSysVars[386].name_ = "max_error_count" ; + ObSysVars[386].name_ = "low_priority_updates" ; ObSysVars[386].data_type_ = ObIntType ; - ObSysVars[386].min_val_ = "0" ; - ObSysVars[386].max_val_ = "65535" ; ObSysVars[386].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[386].id_ = SYS_VAR_MAX_ERROR_COUNT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_ERROR_COUNT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_ERROR_COUNT] = 386 ; - ObSysVars[386].base_value_ = "64" ; - ObSysVars[386].alias_ = "OB_SV_MAX_ERROR_COUNT" ; + ObSysVars[386].id_ = SYS_VAR_LOW_PRIORITY_UPDATES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOW_PRIORITY_UPDATES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOW_PRIORITY_UPDATES] = 386 ; + ObSysVars[386].base_value_ = "0" ; + ObSysVars[386].alias_ = "OB_SV_LOW_PRIORITY_UPDATES" ; }(); [&] (){ - ObSysVars[387].default_value_ = "0" ; + ObSysVars[387].default_value_ = "64" ; ObSysVars[387].info_ = "mock for mysql5.7" ; - ObSysVars[387].name_ = "max_insert_delayed_threads" ; + ObSysVars[387].name_ = "max_error_count" ; ObSysVars[387].data_type_ = ObIntType ; - ObSysVars[387].min_val_ = "20" ; - ObSysVars[387].max_val_ = "16384" ; + ObSysVars[387].min_val_ = "0" ; + ObSysVars[387].max_val_ = "65535" ; ObSysVars[387].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[387].id_ = SYS_VAR_MAX_INSERT_DELAYED_THREADS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_INSERT_DELAYED_THREADS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_INSERT_DELAYED_THREADS] = 387 ; - ObSysVars[387].base_value_ = "0" ; - ObSysVars[387].alias_ = "OB_SV_MAX_INSERT_DELAYED_THREADS" ; + ObSysVars[387].id_ = SYS_VAR_MAX_ERROR_COUNT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_ERROR_COUNT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_ERROR_COUNT] = 387 ; + ObSysVars[387].base_value_ = "64" ; + ObSysVars[387].alias_ = "OB_SV_MAX_ERROR_COUNT" ; }(); [&] (){ - ObSysVars[388].default_value_ = "built-in" ; + ObSysVars[388].default_value_ = "0" ; ObSysVars[388].info_ = "mock for mysql5.7" ; - ObSysVars[388].name_ = "ft_stopword_file" ; - ObSysVars[388].data_type_ = ObVarcharType ; - ObSysVars[388].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[388].id_ = SYS_VAR_FT_STOPWORD_FILE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_FT_STOPWORD_FILE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_FT_STOPWORD_FILE] = 388 ; - ObSysVars[388].base_value_ = "built-in" ; - ObSysVars[388].alias_ = "OB_SV_FT_STOPWORD_FILE" ; + ObSysVars[388].name_ = "max_insert_delayed_threads" ; + ObSysVars[388].data_type_ = ObIntType ; + ObSysVars[388].min_val_ = "20" ; + ObSysVars[388].max_val_ = "16384" ; + ObSysVars[388].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[388].id_ = SYS_VAR_MAX_INSERT_DELAYED_THREADS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_INSERT_DELAYED_THREADS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_INSERT_DELAYED_THREADS] = 388 ; + ObSysVars[388].base_value_ = "0" ; + ObSysVars[388].alias_ = "OB_SV_MAX_INSERT_DELAYED_THREADS" ; }(); [&] (){ - ObSysVars[389].default_value_ = "8000000" ; + ObSysVars[389].default_value_ = "built-in" ; ObSysVars[389].info_ = "mock for mysql5.7" ; - ObSysVars[389].name_ = "innodb_ft_cache_size" ; - ObSysVars[389].data_type_ = ObIntType ; - ObSysVars[389].min_val_ = "1600000" ; - ObSysVars[389].max_val_ = "80000000" ; + ObSysVars[389].name_ = "ft_stopword_file" ; + ObSysVars[389].data_type_ = ObVarcharType ; ObSysVars[389].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[389].id_ = SYS_VAR_INNODB_FT_CACHE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_CACHE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_CACHE_SIZE] = 389 ; - ObSysVars[389].base_value_ = "8000000" ; - ObSysVars[389].alias_ = "OB_SV_INNODB_FT_CACHE_SIZE" ; + ObSysVars[389].id_ = SYS_VAR_FT_STOPWORD_FILE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_FT_STOPWORD_FILE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_FT_STOPWORD_FILE] = 389 ; + ObSysVars[389].base_value_ = "built-in" ; + ObSysVars[389].alias_ = "OB_SV_FT_STOPWORD_FILE" ; }(); [&] (){ - ObSysVars[390].default_value_ = "2" ; + ObSysVars[390].default_value_ = "8000000" ; ObSysVars[390].info_ = "mock for mysql5.7" ; - ObSysVars[390].name_ = "innodb_ft_sort_pll_degree" ; + ObSysVars[390].name_ = "innodb_ft_cache_size" ; ObSysVars[390].data_type_ = ObIntType ; - ObSysVars[390].min_val_ = "1" ; - ObSysVars[390].max_val_ = "16" ; + ObSysVars[390].min_val_ = "1600000" ; + ObSysVars[390].max_val_ = "80000000" ; ObSysVars[390].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[390].id_ = SYS_VAR_INNODB_FT_SORT_PLL_DEGREE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_SORT_PLL_DEGREE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_SORT_PLL_DEGREE] = 390 ; - ObSysVars[390].base_value_ = "2" ; - ObSysVars[390].alias_ = "OB_SV_INNODB_FT_SORT_PLL_DEGREE" ; + ObSysVars[390].id_ = SYS_VAR_INNODB_FT_CACHE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_CACHE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_CACHE_SIZE] = 390 ; + ObSysVars[390].base_value_ = "8000000" ; + ObSysVars[390].alias_ = "OB_SV_INNODB_FT_CACHE_SIZE" ; }(); [&] (){ - ObSysVars[391].default_value_ = "640000000" ; + ObSysVars[391].default_value_ = "2" ; ObSysVars[391].info_ = "mock for mysql5.7" ; - ObSysVars[391].name_ = "innodb_ft_total_cache_size" ; + ObSysVars[391].name_ = "innodb_ft_sort_pll_degree" ; ObSysVars[391].data_type_ = ObIntType ; - ObSysVars[391].min_val_ = "32000000" ; - ObSysVars[391].max_val_ = "1600000000" ; + ObSysVars[391].min_val_ = "1" ; + ObSysVars[391].max_val_ = "16" ; ObSysVars[391].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[391].id_ = SYS_VAR_INNODB_FT_TOTAL_CACHE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_TOTAL_CACHE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_TOTAL_CACHE_SIZE] = 391 ; - ObSysVars[391].base_value_ = "640000000" ; - ObSysVars[391].alias_ = "OB_SV_INNODB_FT_TOTAL_CACHE_SIZE" ; + ObSysVars[391].id_ = SYS_VAR_INNODB_FT_SORT_PLL_DEGREE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_SORT_PLL_DEGREE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_SORT_PLL_DEGREE] = 391 ; + ObSysVars[391].base_value_ = "2" ; + ObSysVars[391].alias_ = "OB_SV_INNODB_FT_SORT_PLL_DEGREE" ; }(); [&] (){ - ObSysVars[392].default_value_ = "" ; + ObSysVars[392].default_value_ = "640000000" ; ObSysVars[392].info_ = "mock for mysql5.7" ; - ObSysVars[392].name_ = "mecab_rc_file" ; - ObSysVars[392].data_type_ = ObVarcharType ; + ObSysVars[392].name_ = "innodb_ft_total_cache_size" ; + ObSysVars[392].data_type_ = ObIntType ; + ObSysVars[392].min_val_ = "32000000" ; + ObSysVars[392].max_val_ = "1600000000" ; ObSysVars[392].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[392].id_ = SYS_VAR_MECAB_RC_FILE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MECAB_RC_FILE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MECAB_RC_FILE] = 392 ; - ObSysVars[392].base_value_ = "" ; - ObSysVars[392].alias_ = "OB_SV_MECAB_RC_FILE" ; + ObSysVars[392].id_ = SYS_VAR_INNODB_FT_TOTAL_CACHE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_TOTAL_CACHE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_TOTAL_CACHE_SIZE] = 392 ; + ObSysVars[392].base_value_ = "640000000" ; + ObSysVars[392].alias_ = "OB_SV_INNODB_FT_TOTAL_CACHE_SIZE" ; }(); [&] (){ - ObSysVars[393].default_value_ = "1024" ; + ObSysVars[393].default_value_ = "" ; ObSysVars[393].info_ = "mock for mysql5.7" ; - ObSysVars[393].name_ = "metadata_locks_cache_size" ; - ObSysVars[393].data_type_ = ObIntType ; - ObSysVars[393].min_val_ = "1" ; - ObSysVars[393].max_val_ = "1048576" ; + ObSysVars[393].name_ = "mecab_rc_file" ; + ObSysVars[393].data_type_ = ObVarcharType ; ObSysVars[393].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[393].id_ = SYS_VAR_METADATA_LOCKS_CACHE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_METADATA_LOCKS_CACHE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_METADATA_LOCKS_CACHE_SIZE] = 393 ; - ObSysVars[393].base_value_ = "1024" ; - ObSysVars[393].alias_ = "OB_SV_METADATA_LOCKS_CACHE_SIZE" ; + ObSysVars[393].id_ = SYS_VAR_MECAB_RC_FILE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MECAB_RC_FILE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MECAB_RC_FILE] = 393 ; + ObSysVars[393].base_value_ = "" ; + ObSysVars[393].alias_ = "OB_SV_MECAB_RC_FILE" ; }(); [&] (){ - ObSysVars[394].default_value_ = "8" ; + ObSysVars[394].default_value_ = "1024" ; ObSysVars[394].info_ = "mock for mysql5.7" ; - ObSysVars[394].name_ = "metadata_locks_hash_instances" ; + ObSysVars[394].name_ = "metadata_locks_cache_size" ; ObSysVars[394].data_type_ = ObIntType ; ObSysVars[394].min_val_ = "1" ; - ObSysVars[394].max_val_ = "1024" ; + ObSysVars[394].max_val_ = "1048576" ; ObSysVars[394].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[394].id_ = SYS_VAR_METADATA_LOCKS_HASH_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_METADATA_LOCKS_HASH_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_METADATA_LOCKS_HASH_INSTANCES] = 394 ; - ObSysVars[394].base_value_ = "8" ; - ObSysVars[394].alias_ = "OB_SV_METADATA_LOCKS_HASH_INSTANCES" ; + ObSysVars[394].id_ = SYS_VAR_METADATA_LOCKS_CACHE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_METADATA_LOCKS_CACHE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_METADATA_LOCKS_CACHE_SIZE] = 394 ; + ObSysVars[394].base_value_ = "1024" ; + ObSysVars[394].alias_ = "OB_SV_METADATA_LOCKS_CACHE_SIZE" ; }(); [&] (){ - ObSysVars[395].default_value_ = "ibtmp1:12M:autoextend" ; + ObSysVars[395].default_value_ = "8" ; ObSysVars[395].info_ = "mock for mysql5.7" ; - ObSysVars[395].name_ = "innodb_temp_data_file_path" ; - ObSysVars[395].data_type_ = ObVarcharType ; + ObSysVars[395].name_ = "metadata_locks_hash_instances" ; + ObSysVars[395].data_type_ = ObIntType ; + ObSysVars[395].min_val_ = "1" ; + ObSysVars[395].max_val_ = "1024" ; ObSysVars[395].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[395].id_ = SYS_VAR_INNODB_TEMP_DATA_FILE_PATH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TEMP_DATA_FILE_PATH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TEMP_DATA_FILE_PATH] = 395 ; - ObSysVars[395].base_value_ = "ibtmp1:12M:autoextend" ; - ObSysVars[395].alias_ = "OB_SV_INNODB_TEMP_DATA_FILE_PATH" ; + ObSysVars[395].id_ = SYS_VAR_METADATA_LOCKS_HASH_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_METADATA_LOCKS_HASH_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_METADATA_LOCKS_HASH_INSTANCES] = 395 ; + ObSysVars[395].base_value_ = "8" ; + ObSysVars[395].alias_ = "OB_SV_METADATA_LOCKS_HASH_INSTANCES" ; }(); [&] (){ - ObSysVars[396].default_value_ = "ibdata1:12M:autoextend" ; + ObSysVars[396].default_value_ = "ibtmp1:12M:autoextend" ; ObSysVars[396].info_ = "mock for mysql5.7" ; - ObSysVars[396].name_ = "innodb_data_file_path" ; + ObSysVars[396].name_ = "innodb_temp_data_file_path" ; ObSysVars[396].data_type_ = ObVarcharType ; ObSysVars[396].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[396].id_ = SYS_VAR_INNODB_DATA_FILE_PATH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DATA_FILE_PATH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DATA_FILE_PATH] = 396 ; - ObSysVars[396].base_value_ = "ibdata1:12M:autoextend" ; - ObSysVars[396].alias_ = "OB_SV_INNODB_DATA_FILE_PATH" ; + ObSysVars[396].id_ = SYS_VAR_INNODB_TEMP_DATA_FILE_PATH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TEMP_DATA_FILE_PATH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TEMP_DATA_FILE_PATH] = 396 ; + ObSysVars[396].base_value_ = "ibtmp1:12M:autoextend" ; + ObSysVars[396].alias_ = "OB_SV_INNODB_TEMP_DATA_FILE_PATH" ; }(); [&] (){ - ObSysVars[397].default_value_ = "" ; + ObSysVars[397].default_value_ = "ibdata1:12M:autoextend" ; ObSysVars[397].info_ = "mock for mysql5.7" ; - ObSysVars[397].name_ = "innodb_data_home_dir" ; + ObSysVars[397].name_ = "innodb_data_file_path" ; ObSysVars[397].data_type_ = ObVarcharType ; ObSysVars[397].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[397].id_ = SYS_VAR_INNODB_DATA_HOME_DIR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DATA_HOME_DIR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DATA_HOME_DIR] = 397 ; - ObSysVars[397].base_value_ = "" ; - ObSysVars[397].alias_ = "OB_SV_INNODB_DATA_HOME_DIR" ; + ObSysVars[397].id_ = SYS_VAR_INNODB_DATA_FILE_PATH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DATA_FILE_PATH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DATA_FILE_PATH] = 397 ; + ObSysVars[397].base_value_ = "ibdata1:12M:autoextend" ; + ObSysVars[397].alias_ = "OB_SV_INNODB_DATA_FILE_PATH" ; }(); [&] (){ - ObSysVars[398].default_value_ = "0" ; + ObSysVars[398].default_value_ = "" ; ObSysVars[398].info_ = "mock for mysql5.7" ; - ObSysVars[398].name_ = "default_tmp_storage_engine" ; - ObSysVars[398].data_type_ = ObIntType ; - ObSysVars[398].enum_names_ = "[u'InnoDB']" ; - ObSysVars[398].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[398].id_ = SYS_VAR_DEFAULT_TMP_STORAGE_ENGINE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DEFAULT_TMP_STORAGE_ENGINE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DEFAULT_TMP_STORAGE_ENGINE] = 398 ; - ObSysVars[398].base_value_ = "0" ; - ObSysVars[398].alias_ = "OB_SV_DEFAULT_TMP_STORAGE_ENGINE" ; + ObSysVars[398].name_ = "innodb_data_home_dir" ; + ObSysVars[398].data_type_ = ObVarcharType ; + ObSysVars[398].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[398].id_ = SYS_VAR_INNODB_DATA_HOME_DIR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_DATA_HOME_DIR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_DATA_HOME_DIR] = 398 ; + ObSysVars[398].base_value_ = "" ; + ObSysVars[398].alias_ = "OB_SV_INNODB_DATA_HOME_DIR" ; }(); [&] (){ ObSysVars[399].default_value_ = "0" ; ObSysVars[399].info_ = "mock for mysql5.7" ; - ObSysVars[399].name_ = "innodb_ft_enable_diag_print" ; + ObSysVars[399].name_ = "default_tmp_storage_engine" ; ObSysVars[399].data_type_ = ObIntType ; - ObSysVars[399].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[399].id_ = SYS_VAR_INNODB_FT_ENABLE_DIAG_PRINT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_ENABLE_DIAG_PRINT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_ENABLE_DIAG_PRINT] = 399 ; + ObSysVars[399].enum_names_ = "[u'InnoDB']" ; + ObSysVars[399].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[399].id_ = SYS_VAR_DEFAULT_TMP_STORAGE_ENGINE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DEFAULT_TMP_STORAGE_ENGINE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DEFAULT_TMP_STORAGE_ENGINE] = 399 ; ObSysVars[399].base_value_ = "0" ; - ObSysVars[399].alias_ = "OB_SV_INNODB_FT_ENABLE_DIAG_PRINT" ; + ObSysVars[399].alias_ = "OB_SV_DEFAULT_TMP_STORAGE_ENGINE" ; }(); [&] (){ - ObSysVars[400].default_value_ = "2000" ; + ObSysVars[400].default_value_ = "0" ; ObSysVars[400].info_ = "mock for mysql5.7" ; - ObSysVars[400].name_ = "innodb_ft_num_word_optimize" ; + ObSysVars[400].name_ = "innodb_ft_enable_diag_print" ; ObSysVars[400].data_type_ = ObIntType ; - ObSysVars[400].min_val_ = "1000" ; - ObSysVars[400].max_val_ = "10000" ; ObSysVars[400].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[400].id_ = SYS_VAR_INNODB_FT_NUM_WORD_OPTIMIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_NUM_WORD_OPTIMIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_NUM_WORD_OPTIMIZE] = 400 ; - ObSysVars[400].base_value_ = "2000" ; - ObSysVars[400].alias_ = "OB_SV_INNODB_FT_NUM_WORD_OPTIMIZE" ; + ObSysVars[400].id_ = SYS_VAR_INNODB_FT_ENABLE_DIAG_PRINT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_ENABLE_DIAG_PRINT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_ENABLE_DIAG_PRINT] = 400 ; + ObSysVars[400].base_value_ = "0" ; + ObSysVars[400].alias_ = "OB_SV_INNODB_FT_ENABLE_DIAG_PRINT" ; }(); [&] (){ - ObSysVars[401].default_value_ = "2000000000" ; + ObSysVars[401].default_value_ = "2000" ; ObSysVars[401].info_ = "mock for mysql5.7" ; - ObSysVars[401].name_ = "innodb_ft_result_cache_limit" ; - ObSysVars[401].data_type_ = ObUInt64Type ; - ObSysVars[401].min_val_ = "1000000" ; - ObSysVars[401].max_val_ = "4294967295" ; + ObSysVars[401].name_ = "innodb_ft_num_word_optimize" ; + ObSysVars[401].data_type_ = ObIntType ; + ObSysVars[401].min_val_ = "1000" ; + ObSysVars[401].max_val_ = "10000" ; ObSysVars[401].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[401].id_ = SYS_VAR_INNODB_FT_RESULT_CACHE_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_RESULT_CACHE_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_RESULT_CACHE_LIMIT] = 401 ; - ObSysVars[401].base_value_ = "2000000000" ; - ObSysVars[401].alias_ = "OB_SV_INNODB_FT_RESULT_CACHE_LIMIT" ; + ObSysVars[401].id_ = SYS_VAR_INNODB_FT_NUM_WORD_OPTIMIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_NUM_WORD_OPTIMIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_NUM_WORD_OPTIMIZE] = 401 ; + ObSysVars[401].base_value_ = "2000" ; + ObSysVars[401].alias_ = "OB_SV_INNODB_FT_NUM_WORD_OPTIMIZE" ; }(); [&] (){ - ObSysVars[402].default_value_ = "" ; + ObSysVars[402].default_value_ = "2000000000" ; ObSysVars[402].info_ = "mock for mysql5.7" ; - ObSysVars[402].name_ = "innodb_ft_server_stopword_table" ; - ObSysVars[402].data_type_ = ObVarcharType ; + ObSysVars[402].name_ = "innodb_ft_result_cache_limit" ; + ObSysVars[402].data_type_ = ObUInt64Type ; + ObSysVars[402].min_val_ = "1000000" ; + ObSysVars[402].max_val_ = "4294967295" ; ObSysVars[402].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[402].id_ = SYS_VAR_INNODB_FT_SERVER_STOPWORD_TABLE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_SERVER_STOPWORD_TABLE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_SERVER_STOPWORD_TABLE] = 402 ; - ObSysVars[402].base_value_ = "" ; - ObSysVars[402].alias_ = "OB_SV_INNODB_FT_SERVER_STOPWORD_TABLE" ; + ObSysVars[402].id_ = SYS_VAR_INNODB_FT_RESULT_CACHE_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_RESULT_CACHE_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_RESULT_CACHE_LIMIT] = 402 ; + ObSysVars[402].base_value_ = "2000000000" ; + ObSysVars[402].alias_ = "OB_SV_INNODB_FT_RESULT_CACHE_LIMIT" ; }(); [&] (){ - ObSysVars[403].default_value_ = "0" ; + ObSysVars[403].default_value_ = "" ; ObSysVars[403].info_ = "mock for mysql5.7" ; - ObSysVars[403].name_ = "innodb_optimize_fulltext_only" ; - ObSysVars[403].data_type_ = ObIntType ; + ObSysVars[403].name_ = "innodb_ft_server_stopword_table" ; + ObSysVars[403].data_type_ = ObVarcharType ; ObSysVars[403].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[403].id_ = SYS_VAR_INNODB_OPTIMIZE_FULLTEXT_ONLY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_OPTIMIZE_FULLTEXT_ONLY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_OPTIMIZE_FULLTEXT_ONLY] = 403 ; - ObSysVars[403].base_value_ = "0" ; - ObSysVars[403].alias_ = "OB_SV_INNODB_OPTIMIZE_FULLTEXT_ONLY" ; + ObSysVars[403].id_ = SYS_VAR_INNODB_FT_SERVER_STOPWORD_TABLE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FT_SERVER_STOPWORD_TABLE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FT_SERVER_STOPWORD_TABLE] = 403 ; + ObSysVars[403].base_value_ = "" ; + ObSysVars[403].alias_ = "OB_SV_INNODB_FT_SERVER_STOPWORD_TABLE" ; }(); [&] (){ - ObSysVars[404].default_value_ = "32" ; + ObSysVars[404].default_value_ = "0" ; ObSysVars[404].info_ = "mock for mysql5.7" ; - ObSysVars[404].name_ = "max_tmp_tables" ; + ObSysVars[404].name_ = "innodb_optimize_fulltext_only" ; ObSysVars[404].data_type_ = ObIntType ; ObSysVars[404].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[404].id_ = SYS_VAR_MAX_TMP_TABLES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_TMP_TABLES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_TMP_TABLES] = 404 ; - ObSysVars[404].base_value_ = "32" ; - ObSysVars[404].alias_ = "OB_SV_MAX_TMP_TABLES" ; + ObSysVars[404].id_ = SYS_VAR_INNODB_OPTIMIZE_FULLTEXT_ONLY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_OPTIMIZE_FULLTEXT_ONLY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_OPTIMIZE_FULLTEXT_ONLY] = 404 ; + ObSysVars[404].base_value_ = "0" ; + ObSysVars[404].alias_ = "OB_SV_INNODB_OPTIMIZE_FULLTEXT_ONLY" ; }(); [&] (){ - ObSysVars[405].default_value_ = "" ; + ObSysVars[405].default_value_ = "32" ; ObSysVars[405].info_ = "mock for mysql5.7" ; - ObSysVars[405].name_ = "innodb_tmpdir" ; - ObSysVars[405].data_type_ = ObVarcharType ; - ObSysVars[405].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[405].id_ = SYS_VAR_INNODB_TMPDIR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TMPDIR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TMPDIR] = 405 ; - ObSysVars[405].base_value_ = "" ; - ObSysVars[405].alias_ = "OB_SV_INNODB_TMPDIR" ; + ObSysVars[405].name_ = "max_tmp_tables" ; + ObSysVars[405].data_type_ = ObIntType ; + ObSysVars[405].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[405].id_ = SYS_VAR_MAX_TMP_TABLES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_TMP_TABLES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_TMP_TABLES] = 405 ; + ObSysVars[405].base_value_ = "32" ; + ObSysVars[405].alias_ = "OB_SV_MAX_TMP_TABLES" ; }(); [&] (){ ObSysVars[406].default_value_ = "" ; - ObSysVars[406].info_ = "A list of group members to which a joining member can connect to obtain details of all the current group members" ; - ObSysVars[406].name_ = "group_replication_group_seeds" ; + ObSysVars[406].info_ = "mock for mysql5.7" ; + ObSysVars[406].name_ = "innodb_tmpdir" ; ObSysVars[406].data_type_ = ObVarcharType ; - ObSysVars[406].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[406].id_ = SYS_VAR_GROUP_REPLICATION_GROUP_SEEDS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_GROUP_SEEDS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_GROUP_SEEDS] = 406 ; + ObSysVars[406].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[406].id_ = SYS_VAR_INNODB_TMPDIR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_TMPDIR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_TMPDIR] = 406 ; ObSysVars[406].base_value_ = "" ; - ObSysVars[406].alias_ = "OB_SV_GROUP_REPLICATION_GROUP_SEEDS" ; + ObSysVars[406].alias_ = "OB_SV_INNODB_TMPDIR" ; }(); [&] (){ - ObSysVars[407].default_value_ = "0" ; - ObSysVars[407].info_ = "When preparing batches of rows for row-based logging and replication, this variable controls how the rows are searched for matches" ; - ObSysVars[407].name_ = "slave_rows_search_algorithms" ; - ObSysVars[407].data_type_ = ObIntType ; - ObSysVars[407].enum_names_ = "[u'TABLE_SCAN,INDEX_SCAN', u'INDEX_SCAN,HASH_SCAN', u'TABLE_SCAN,HASH_SCAN', u'TABLE_SCAN,INDEX_SCAN,HASH_SCAN']" ; + ObSysVars[407].default_value_ = "" ; + ObSysVars[407].info_ = "A list of group members to which a joining member can connect to obtain details of all the current group members" ; + ObSysVars[407].name_ = "group_replication_group_seeds" ; + ObSysVars[407].data_type_ = ObVarcharType ; ObSysVars[407].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[407].id_ = SYS_VAR_SLAVE_ROWS_SEARCH_ALGORITHMS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_ROWS_SEARCH_ALGORITHMS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_ROWS_SEARCH_ALGORITHMS] = 407 ; - ObSysVars[407].base_value_ = "0" ; - ObSysVars[407].alias_ = "OB_SV_SLAVE_ROWS_SEARCH_ALGORITHMS" ; + ObSysVars[407].id_ = SYS_VAR_GROUP_REPLICATION_GROUP_SEEDS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_GROUP_REPLICATION_GROUP_SEEDS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_GROUP_REPLICATION_GROUP_SEEDS] = 407 ; + ObSysVars[407].base_value_ = "" ; + ObSysVars[407].alias_ = "OB_SV_GROUP_REPLICATION_GROUP_SEEDS" ; }(); [&] (){ ObSysVars[408].default_value_ = "0" ; - ObSysVars[408].info_ = "Controls the type conversion mode in effect on the replica when using row-based replication" ; - ObSysVars[408].name_ = "slave_type_conversions" ; + ObSysVars[408].info_ = "When preparing batches of rows for row-based logging and replication, this variable controls how the rows are searched for matches" ; + ObSysVars[408].name_ = "slave_rows_search_algorithms" ; ObSysVars[408].data_type_ = ObIntType ; - ObSysVars[408].enum_names_ = "[u'ALL_LOSSY', u'ALL_NON_LOSSY', u'ALL_SIGNED', u'ALL_UNSIGNED']" ; + ObSysVars[408].enum_names_ = "[u'TABLE_SCAN,INDEX_SCAN', u'INDEX_SCAN,HASH_SCAN', u'TABLE_SCAN,HASH_SCAN', u'TABLE_SCAN,INDEX_SCAN,HASH_SCAN']" ; ObSysVars[408].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[408].id_ = SYS_VAR_SLAVE_TYPE_CONVERSIONS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_TYPE_CONVERSIONS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_TYPE_CONVERSIONS] = 408 ; + ObSysVars[408].id_ = SYS_VAR_SLAVE_ROWS_SEARCH_ALGORITHMS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_ROWS_SEARCH_ALGORITHMS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_ROWS_SEARCH_ALGORITHMS] = 408 ; ObSysVars[408].base_value_ = "0" ; - ObSysVars[408].alias_ = "OB_SV_SLAVE_TYPE_CONVERSIONS" ; + ObSysVars[408].alias_ = "OB_SV_SLAVE_ROWS_SEARCH_ALGORITHMS" ; }(); [&] (){ - ObSysVars[409].default_value_ = "64" ; - ObSysVars[409].info_ = "The number of neighbor nodes considered during any HNSW vector index search on the session" ; - ObSysVars[409].name_ = "ob_hnsw_ef_search" ; - ObSysVars[409].data_type_ = ObUInt64Type ; - ObSysVars[409].min_val_ = "1" ; - ObSysVars[409].max_val_ = "160000" ; - ObSysVars[409].flags_ = ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[409].id_ = SYS_VAR_OB_HNSW_EF_SEARCH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OB_HNSW_EF_SEARCH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OB_HNSW_EF_SEARCH] = 409 ; - ObSysVars[409].base_value_ = "40" ; - ObSysVars[409].alias_ = "OB_SV_HNSW_EF_SEARCH" ; + ObSysVars[409].default_value_ = "0" ; + ObSysVars[409].info_ = "Controls the type conversion mode in effect on the replica when using row-based replication" ; + ObSysVars[409].name_ = "slave_type_conversions" ; + ObSysVars[409].data_type_ = ObIntType ; + ObSysVars[409].enum_names_ = "[u'ALL_LOSSY', u'ALL_NON_LOSSY', u'ALL_SIGNED', u'ALL_UNSIGNED']" ; + ObSysVars[409].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[409].id_ = SYS_VAR_SLAVE_TYPE_CONVERSIONS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLAVE_TYPE_CONVERSIONS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLAVE_TYPE_CONVERSIONS] = 409 ; + ObSysVars[409].base_value_ = "0" ; + ObSysVars[409].alias_ = "OB_SV_SLAVE_TYPE_CONVERSIONS" ; }(); [&] (){ - ObSysVars[410].default_value_ = "0" ; - ObSysVars[410].info_ = "mock for mysql5.7" ; - ObSysVars[410].name_ = "ndb_allow_copying_alter_table" ; - ObSysVars[410].data_type_ = ObIntType ; - ObSysVars[410].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[410].id_ = SYS_VAR_NDB_ALLOW_COPYING_ALTER_TABLE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_ALLOW_COPYING_ALTER_TABLE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_ALLOW_COPYING_ALTER_TABLE] = 410 ; - ObSysVars[410].base_value_ = "0" ; - ObSysVars[410].alias_ = "OB_SV_NDB_ALLOW_COPYING_ALTER_TABLE" ; + ObSysVars[410].default_value_ = "64" ; + ObSysVars[410].info_ = "The number of neighbor nodes considered during any HNSW vector index search on the session" ; + ObSysVars[410].name_ = "ob_hnsw_ef_search" ; + ObSysVars[410].data_type_ = ObUInt64Type ; + ObSysVars[410].min_val_ = "1" ; + ObSysVars[410].max_val_ = "160000" ; + ObSysVars[410].flags_ = ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[410].id_ = SYS_VAR_OB_HNSW_EF_SEARCH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OB_HNSW_EF_SEARCH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OB_HNSW_EF_SEARCH] = 410 ; + ObSysVars[410].base_value_ = "40" ; + ObSysVars[410].alias_ = "OB_SV_HNSW_EF_SEARCH" ; }(); [&] (){ - ObSysVars[411].default_value_ = "1" ; + ObSysVars[411].default_value_ = "0" ; ObSysVars[411].info_ = "mock for mysql5.7" ; - ObSysVars[411].name_ = "ndb_autoincrement_prefetch_sz" ; + ObSysVars[411].name_ = "ndb_allow_copying_alter_table" ; ObSysVars[411].data_type_ = ObIntType ; ObSysVars[411].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[411].id_ = SYS_VAR_NDB_AUTOINCREMENT_PREFETCH_SZ ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_AUTOINCREMENT_PREFETCH_SZ)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_AUTOINCREMENT_PREFETCH_SZ] = 411 ; - ObSysVars[411].base_value_ = "1" ; - ObSysVars[411].alias_ = "OB_SV_NDB_AUTOINCREMENT_PREFETCH_SZ" ; + ObSysVars[411].id_ = SYS_VAR_NDB_ALLOW_COPYING_ALTER_TABLE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_ALLOW_COPYING_ALTER_TABLE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_ALLOW_COPYING_ALTER_TABLE] = 411 ; + ObSysVars[411].base_value_ = "0" ; + ObSysVars[411].alias_ = "OB_SV_NDB_ALLOW_COPYING_ALTER_TABLE" ; }(); [&] (){ - ObSysVars[412].default_value_ = "65536" ; + ObSysVars[412].default_value_ = "1" ; ObSysVars[412].info_ = "mock for mysql5.7" ; - ObSysVars[412].name_ = "ndb_blob_read_batch_bytes" ; + ObSysVars[412].name_ = "ndb_autoincrement_prefetch_sz" ; ObSysVars[412].data_type_ = ObIntType ; ObSysVars[412].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[412].id_ = SYS_VAR_NDB_BLOB_READ_BATCH_BYTES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_BLOB_READ_BATCH_BYTES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_BLOB_READ_BATCH_BYTES] = 412 ; - ObSysVars[412].base_value_ = "65536" ; - ObSysVars[412].alias_ = "OB_SV_NDB_BLOB_READ_BATCH_BYTES" ; + ObSysVars[412].id_ = SYS_VAR_NDB_AUTOINCREMENT_PREFETCH_SZ ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_AUTOINCREMENT_PREFETCH_SZ)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_AUTOINCREMENT_PREFETCH_SZ] = 412 ; + ObSysVars[412].base_value_ = "1" ; + ObSysVars[412].alias_ = "OB_SV_NDB_AUTOINCREMENT_PREFETCH_SZ" ; }(); [&] (){ ObSysVars[413].default_value_ = "65536" ; ObSysVars[413].info_ = "mock for mysql5.7" ; - ObSysVars[413].name_ = "ndb_blob_write_batch_bytes" ; + ObSysVars[413].name_ = "ndb_blob_read_batch_bytes" ; ObSysVars[413].data_type_ = ObIntType ; ObSysVars[413].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[413].id_ = SYS_VAR_NDB_BLOB_WRITE_BATCH_BYTES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_BLOB_WRITE_BATCH_BYTES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_BLOB_WRITE_BATCH_BYTES] = 413 ; + ObSysVars[413].id_ = SYS_VAR_NDB_BLOB_READ_BATCH_BYTES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_BLOB_READ_BATCH_BYTES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_BLOB_READ_BATCH_BYTES] = 413 ; ObSysVars[413].base_value_ = "65536" ; - ObSysVars[413].alias_ = "OB_SV_NDB_BLOB_WRITE_BATCH_BYTES" ; + ObSysVars[413].alias_ = "OB_SV_NDB_BLOB_READ_BATCH_BYTES" ; }(); [&] (){ - ObSysVars[414].default_value_ = "0" ; + ObSysVars[414].default_value_ = "65536" ; ObSysVars[414].info_ = "mock for mysql5.7" ; - ObSysVars[414].name_ = "ndb_cache_check_time" ; + ObSysVars[414].name_ = "ndb_blob_write_batch_bytes" ; ObSysVars[414].data_type_ = ObIntType ; - ObSysVars[414].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[414].id_ = SYS_VAR_NDB_CACHE_CHECK_TIME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_CACHE_CHECK_TIME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_CACHE_CHECK_TIME] = 414 ; - ObSysVars[414].base_value_ = "0" ; - ObSysVars[414].alias_ = "OB_SV_NDB_CACHE_CHECK_TIME" ; + ObSysVars[414].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[414].id_ = SYS_VAR_NDB_BLOB_WRITE_BATCH_BYTES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_BLOB_WRITE_BATCH_BYTES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_BLOB_WRITE_BATCH_BYTES] = 414 ; + ObSysVars[414].base_value_ = "65536" ; + ObSysVars[414].alias_ = "OB_SV_NDB_BLOB_WRITE_BATCH_BYTES" ; }(); [&] (){ ObSysVars[415].default_value_ = "0" ; ObSysVars[415].info_ = "mock for mysql5.7" ; - ObSysVars[415].name_ = "ndb_clear_apply_status" ; + ObSysVars[415].name_ = "ndb_cache_check_time" ; ObSysVars[415].data_type_ = ObIntType ; ObSysVars[415].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[415].id_ = SYS_VAR_NDB_CLEAR_APPLY_STATUS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_CLEAR_APPLY_STATUS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_CLEAR_APPLY_STATUS] = 415 ; + ObSysVars[415].id_ = SYS_VAR_NDB_CACHE_CHECK_TIME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_CACHE_CHECK_TIME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_CACHE_CHECK_TIME] = 415 ; ObSysVars[415].base_value_ = "0" ; - ObSysVars[415].alias_ = "OB_SV_NDB_CLEAR_APPLY_STATUS" ; + ObSysVars[415].alias_ = "OB_SV_NDB_CACHE_CHECK_TIME" ; }(); [&] (){ ObSysVars[416].default_value_ = "0" ; ObSysVars[416].info_ = "mock for mysql5.7" ; - ObSysVars[416].name_ = "ndb_data_node_neighbour" ; + ObSysVars[416].name_ = "ndb_clear_apply_status" ; ObSysVars[416].data_type_ = ObIntType ; ObSysVars[416].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[416].id_ = SYS_VAR_NDB_DATA_NODE_NEIGHBOUR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_DATA_NODE_NEIGHBOUR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_DATA_NODE_NEIGHBOUR] = 416 ; + ObSysVars[416].id_ = SYS_VAR_NDB_CLEAR_APPLY_STATUS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_CLEAR_APPLY_STATUS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_CLEAR_APPLY_STATUS] = 416 ; ObSysVars[416].base_value_ = "0" ; - ObSysVars[416].alias_ = "OB_SV_NDB_DATA_NODE_NEIGHBOUR" ; + ObSysVars[416].alias_ = "OB_SV_NDB_CLEAR_APPLY_STATUS" ; }(); [&] (){ ObSysVars[417].default_value_ = "0" ; ObSysVars[417].info_ = "mock for mysql5.7" ; - ObSysVars[417].name_ = "ndb_default_column_format" ; + ObSysVars[417].name_ = "ndb_data_node_neighbour" ; ObSysVars[417].data_type_ = ObIntType ; - ObSysVars[417].enum_names_ = "[u'FIXED', u'DYNAMIC']" ; ObSysVars[417].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[417].id_ = SYS_VAR_NDB_DEFAULT_COLUMN_FORMAT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_DEFAULT_COLUMN_FORMAT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_DEFAULT_COLUMN_FORMAT] = 417 ; + ObSysVars[417].id_ = SYS_VAR_NDB_DATA_NODE_NEIGHBOUR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_DATA_NODE_NEIGHBOUR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_DATA_NODE_NEIGHBOUR] = 417 ; ObSysVars[417].base_value_ = "0" ; - ObSysVars[417].alias_ = "OB_SV_NDB_DEFAULT_COLUMN_FORMAT" ; + ObSysVars[417].alias_ = "OB_SV_NDB_DATA_NODE_NEIGHBOUR" ; }(); [&] (){ ObSysVars[418].default_value_ = "0" ; ObSysVars[418].info_ = "mock for mysql5.7" ; - ObSysVars[418].name_ = "ndb_deferred_constraints" ; + ObSysVars[418].name_ = "ndb_default_column_format" ; ObSysVars[418].data_type_ = ObIntType ; - ObSysVars[418].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[418].id_ = SYS_VAR_NDB_DEFERRED_CONSTRAINTS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_DEFERRED_CONSTRAINTS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_DEFERRED_CONSTRAINTS] = 418 ; + ObSysVars[418].enum_names_ = "[u'FIXED', u'DYNAMIC']" ; + ObSysVars[418].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[418].id_ = SYS_VAR_NDB_DEFAULT_COLUMN_FORMAT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_DEFAULT_COLUMN_FORMAT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_DEFAULT_COLUMN_FORMAT] = 418 ; ObSysVars[418].base_value_ = "0" ; - ObSysVars[418].alias_ = "OB_SV_NDB_DEFERRED_CONSTRAINTS" ; + ObSysVars[418].alias_ = "OB_SV_NDB_DEFAULT_COLUMN_FORMAT" ; }(); [&] (){ - ObSysVars[419].default_value_ = "1" ; + ObSysVars[419].default_value_ = "0" ; ObSysVars[419].info_ = "mock for mysql5.7" ; - ObSysVars[419].name_ = "ndb_distribution" ; + ObSysVars[419].name_ = "ndb_deferred_constraints" ; ObSysVars[419].data_type_ = ObIntType ; - ObSysVars[419].enum_names_ = "[u'LINHASH', u'KEYHASH']" ; - ObSysVars[419].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[419].id_ = SYS_VAR_NDB_DISTRIBUTION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_DISTRIBUTION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_DISTRIBUTION] = 419 ; - ObSysVars[419].base_value_ = "1" ; - ObSysVars[419].alias_ = "OB_SV_NDB_DISTRIBUTION" ; + ObSysVars[419].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[419].id_ = SYS_VAR_NDB_DEFERRED_CONSTRAINTS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_DEFERRED_CONSTRAINTS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_DEFERRED_CONSTRAINTS] = 419 ; + ObSysVars[419].base_value_ = "0" ; + ObSysVars[419].alias_ = "OB_SV_NDB_DEFERRED_CONSTRAINTS" ; }(); [&] (){ - ObSysVars[420].default_value_ = "20" ; + ObSysVars[420].default_value_ = "1" ; ObSysVars[420].info_ = "mock for mysql5.7" ; - ObSysVars[420].name_ = "ndb_eventbuffer_free_percent" ; + ObSysVars[420].name_ = "ndb_distribution" ; ObSysVars[420].data_type_ = ObIntType ; + ObSysVars[420].enum_names_ = "[u'LINHASH', u'KEYHASH']" ; ObSysVars[420].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[420].id_ = SYS_VAR_NDB_EVENTBUFFER_FREE_PERCENT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_EVENTBUFFER_FREE_PERCENT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_EVENTBUFFER_FREE_PERCENT] = 420 ; - ObSysVars[420].base_value_ = "20" ; - ObSysVars[420].alias_ = "OB_SV_NDB_EVENTBUFFER_FREE_PERCENT" ; + ObSysVars[420].id_ = SYS_VAR_NDB_DISTRIBUTION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_DISTRIBUTION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_DISTRIBUTION] = 420 ; + ObSysVars[420].base_value_ = "1" ; + ObSysVars[420].alias_ = "OB_SV_NDB_DISTRIBUTION" ; }(); [&] (){ - ObSysVars[421].default_value_ = "0" ; + ObSysVars[421].default_value_ = "20" ; ObSysVars[421].info_ = "mock for mysql5.7" ; - ObSysVars[421].name_ = "ndb_eventbuffer_max_alloc" ; + ObSysVars[421].name_ = "ndb_eventbuffer_free_percent" ; ObSysVars[421].data_type_ = ObIntType ; ObSysVars[421].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[421].id_ = SYS_VAR_NDB_EVENTBUFFER_MAX_ALLOC ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_EVENTBUFFER_MAX_ALLOC)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_EVENTBUFFER_MAX_ALLOC] = 421 ; - ObSysVars[421].base_value_ = "0" ; - ObSysVars[421].alias_ = "OB_SV_NDB_EVENTBUFFER_MAX_ALLOC" ; + ObSysVars[421].id_ = SYS_VAR_NDB_EVENTBUFFER_FREE_PERCENT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_EVENTBUFFER_FREE_PERCENT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_EVENTBUFFER_FREE_PERCENT] = 421 ; + ObSysVars[421].base_value_ = "20" ; + ObSysVars[421].alias_ = "OB_SV_NDB_EVENTBUFFER_FREE_PERCENT" ; }(); [&] (){ - ObSysVars[422].default_value_ = "1" ; + ObSysVars[422].default_value_ = "0" ; ObSysVars[422].info_ = "mock for mysql5.7" ; - ObSysVars[422].name_ = "ndb_extra_logging" ; + ObSysVars[422].name_ = "ndb_eventbuffer_max_alloc" ; ObSysVars[422].data_type_ = ObIntType ; ObSysVars[422].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[422].id_ = SYS_VAR_NDB_EXTRA_LOGGING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_EXTRA_LOGGING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_EXTRA_LOGGING] = 422 ; - ObSysVars[422].base_value_ = "1" ; - ObSysVars[422].alias_ = "OB_SV_NDB_EXTRA_LOGGING" ; + ObSysVars[422].id_ = SYS_VAR_NDB_EVENTBUFFER_MAX_ALLOC ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_EVENTBUFFER_MAX_ALLOC)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_EVENTBUFFER_MAX_ALLOC] = 422 ; + ObSysVars[422].base_value_ = "0" ; + ObSysVars[422].alias_ = "OB_SV_NDB_EVENTBUFFER_MAX_ALLOC" ; }(); [&] (){ - ObSysVars[423].default_value_ = "0" ; + ObSysVars[423].default_value_ = "1" ; ObSysVars[423].info_ = "mock for mysql5.7" ; - ObSysVars[423].name_ = "ndb_force_send" ; + ObSysVars[423].name_ = "ndb_extra_logging" ; ObSysVars[423].data_type_ = ObIntType ; - ObSysVars[423].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[423].id_ = SYS_VAR_NDB_FORCE_SEND ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_FORCE_SEND)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_FORCE_SEND] = 423 ; - ObSysVars[423].base_value_ = "0" ; - ObSysVars[423].alias_ = "OB_SV_NDB_FORCE_SEND" ; + ObSysVars[423].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[423].id_ = SYS_VAR_NDB_EXTRA_LOGGING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_EXTRA_LOGGING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_EXTRA_LOGGING] = 423 ; + ObSysVars[423].base_value_ = "1" ; + ObSysVars[423].alias_ = "OB_SV_NDB_EXTRA_LOGGING" ; }(); [&] (){ ObSysVars[424].default_value_ = "0" ; ObSysVars[424].info_ = "mock for mysql5.7" ; - ObSysVars[424].name_ = "ndb_fully_replicated" ; + ObSysVars[424].name_ = "ndb_force_send" ; ObSysVars[424].data_type_ = ObIntType ; ObSysVars[424].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[424].id_ = SYS_VAR_NDB_FULLY_REPLICATED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_FULLY_REPLICATED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_FULLY_REPLICATED] = 424 ; + ObSysVars[424].id_ = SYS_VAR_NDB_FORCE_SEND ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_FORCE_SEND)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_FORCE_SEND] = 424 ; ObSysVars[424].base_value_ = "0" ; - ObSysVars[424].alias_ = "OB_SV_NDB_FULLY_REPLICATED" ; + ObSysVars[424].alias_ = "OB_SV_NDB_FORCE_SEND" ; }(); [&] (){ ObSysVars[425].default_value_ = "0" ; ObSysVars[425].info_ = "mock for mysql5.7" ; - ObSysVars[425].name_ = "ndb_index_stat_enable" ; + ObSysVars[425].name_ = "ndb_fully_replicated" ; ObSysVars[425].data_type_ = ObIntType ; ObSysVars[425].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[425].id_ = SYS_VAR_NDB_INDEX_STAT_ENABLE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_INDEX_STAT_ENABLE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_INDEX_STAT_ENABLE] = 425 ; + ObSysVars[425].id_ = SYS_VAR_NDB_FULLY_REPLICATED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_FULLY_REPLICATED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_FULLY_REPLICATED] = 425 ; ObSysVars[425].base_value_ = "0" ; - ObSysVars[425].alias_ = "OB_SV_NDB_INDEX_STAT_ENABLE" ; + ObSysVars[425].alias_ = "OB_SV_NDB_FULLY_REPLICATED" ; }(); [&] (){ - ObSysVars[426].default_value_ = "loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms, update_batch=1,read_batch=4,idle_batch=32,check_batch=32, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M, cache_lowpct=90" ; + ObSysVars[426].default_value_ = "0" ; ObSysVars[426].info_ = "mock for mysql5.7" ; - ObSysVars[426].name_ = "ndb_index_stat_option" ; - ObSysVars[426].data_type_ = ObVarcharType ; + ObSysVars[426].name_ = "ndb_index_stat_enable" ; + ObSysVars[426].data_type_ = ObIntType ; ObSysVars[426].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[426].id_ = SYS_VAR_NDB_INDEX_STAT_OPTION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_INDEX_STAT_OPTION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_INDEX_STAT_OPTION] = 426 ; - ObSysVars[426].base_value_ = "loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms, update_batch=1,read_batch=4,idle_batch=32,check_batch=32, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M, cache_lowpct=90" ; - ObSysVars[426].alias_ = "OB_SV_NDB_INDEX_STAT_OPTION" ; + ObSysVars[426].id_ = SYS_VAR_NDB_INDEX_STAT_ENABLE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_INDEX_STAT_ENABLE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_INDEX_STAT_ENABLE] = 426 ; + ObSysVars[426].base_value_ = "0" ; + ObSysVars[426].alias_ = "OB_SV_NDB_INDEX_STAT_ENABLE" ; }(); [&] (){ - ObSysVars[427].default_value_ = "0" ; + ObSysVars[427].default_value_ = "loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms, update_batch=1,read_batch=4,idle_batch=32,check_batch=32, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M, cache_lowpct=90" ; ObSysVars[427].info_ = "mock for mysql5.7" ; - ObSysVars[427].name_ = "ndb_join_pushdown" ; - ObSysVars[427].data_type_ = ObIntType ; + ObSysVars[427].name_ = "ndb_index_stat_option" ; + ObSysVars[427].data_type_ = ObVarcharType ; ObSysVars[427].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[427].id_ = SYS_VAR_NDB_JOIN_PUSHDOWN ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_JOIN_PUSHDOWN)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_JOIN_PUSHDOWN] = 427 ; - ObSysVars[427].base_value_ = "0" ; - ObSysVars[427].alias_ = "OB_SV_NDB_JOIN_PUSHDOWN" ; + ObSysVars[427].id_ = SYS_VAR_NDB_INDEX_STAT_OPTION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_INDEX_STAT_OPTION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_INDEX_STAT_OPTION] = 427 ; + ObSysVars[427].base_value_ = "loop_checkon=1000ms,loop_idle=1000ms,loop_busy=100ms, update_batch=1,read_batch=4,idle_batch=32,check_batch=32, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4, error_delay=1m,evict_batch=8,evict_delay=1m,cache_limit=32M, cache_lowpct=90" ; + ObSysVars[427].alias_ = "OB_SV_NDB_INDEX_STAT_OPTION" ; }(); [&] (){ ObSysVars[428].default_value_ = "0" ; ObSysVars[428].info_ = "mock for mysql5.7" ; - ObSysVars[428].name_ = "ndb_log_binlog_index" ; + ObSysVars[428].name_ = "ndb_join_pushdown" ; ObSysVars[428].data_type_ = ObIntType ; - ObSysVars[428].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[428].id_ = SYS_VAR_NDB_LOG_BINLOG_INDEX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_BINLOG_INDEX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_BINLOG_INDEX] = 428 ; + ObSysVars[428].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[428].id_ = SYS_VAR_NDB_JOIN_PUSHDOWN ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_JOIN_PUSHDOWN)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_JOIN_PUSHDOWN] = 428 ; ObSysVars[428].base_value_ = "0" ; - ObSysVars[428].alias_ = "OB_SV_NDB_LOG_BINLOG_INDEX" ; + ObSysVars[428].alias_ = "OB_SV_NDB_JOIN_PUSHDOWN" ; }(); [&] (){ ObSysVars[429].default_value_ = "0" ; ObSysVars[429].info_ = "mock for mysql5.7" ; - ObSysVars[429].name_ = "ndb_log_empty_epochs" ; + ObSysVars[429].name_ = "ndb_log_binlog_index" ; ObSysVars[429].data_type_ = ObIntType ; ObSysVars[429].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[429].id_ = SYS_VAR_NDB_LOG_EMPTY_EPOCHS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_EMPTY_EPOCHS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_EMPTY_EPOCHS] = 429 ; + ObSysVars[429].id_ = SYS_VAR_NDB_LOG_BINLOG_INDEX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_BINLOG_INDEX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_BINLOG_INDEX] = 429 ; ObSysVars[429].base_value_ = "0" ; - ObSysVars[429].alias_ = "OB_SV_NDB_LOG_EMPTY_EPOCHS" ; + ObSysVars[429].alias_ = "OB_SV_NDB_LOG_BINLOG_INDEX" ; }(); [&] (){ ObSysVars[430].default_value_ = "0" ; ObSysVars[430].info_ = "mock for mysql5.7" ; - ObSysVars[430].name_ = "ndb_log_empty_update" ; + ObSysVars[430].name_ = "ndb_log_empty_epochs" ; ObSysVars[430].data_type_ = ObIntType ; ObSysVars[430].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[430].id_ = SYS_VAR_NDB_LOG_EMPTY_UPDATE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_EMPTY_UPDATE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_EMPTY_UPDATE] = 430 ; + ObSysVars[430].id_ = SYS_VAR_NDB_LOG_EMPTY_EPOCHS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_EMPTY_EPOCHS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_EMPTY_EPOCHS] = 430 ; ObSysVars[430].base_value_ = "0" ; - ObSysVars[430].alias_ = "OB_SV_NDB_LOG_EMPTY_UPDATE" ; + ObSysVars[430].alias_ = "OB_SV_NDB_LOG_EMPTY_EPOCHS" ; }(); [&] (){ ObSysVars[431].default_value_ = "0" ; ObSysVars[431].info_ = "mock for mysql5.7" ; - ObSysVars[431].name_ = "ndb_log_exclusive_reads" ; + ObSysVars[431].name_ = "ndb_log_empty_update" ; ObSysVars[431].data_type_ = ObIntType ; - ObSysVars[431].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[431].id_ = SYS_VAR_NDB_LOG_EXCLUSIVE_READS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_EXCLUSIVE_READS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_EXCLUSIVE_READS] = 431 ; + ObSysVars[431].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[431].id_ = SYS_VAR_NDB_LOG_EMPTY_UPDATE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_EMPTY_UPDATE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_EMPTY_UPDATE] = 431 ; ObSysVars[431].base_value_ = "0" ; - ObSysVars[431].alias_ = "OB_SV_NDB_LOG_EXCLUSIVE_READS" ; + ObSysVars[431].alias_ = "OB_SV_NDB_LOG_EMPTY_UPDATE" ; }(); [&] (){ ObSysVars[432].default_value_ = "0" ; ObSysVars[432].info_ = "mock for mysql5.7" ; - ObSysVars[432].name_ = "ndb_log_update_as_write" ; + ObSysVars[432].name_ = "ndb_log_exclusive_reads" ; ObSysVars[432].data_type_ = ObIntType ; - ObSysVars[432].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[432].id_ = SYS_VAR_NDB_LOG_UPDATE_AS_WRITE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_UPDATE_AS_WRITE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_UPDATE_AS_WRITE] = 432 ; + ObSysVars[432].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[432].id_ = SYS_VAR_NDB_LOG_EXCLUSIVE_READS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_EXCLUSIVE_READS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_EXCLUSIVE_READS] = 432 ; ObSysVars[432].base_value_ = "0" ; - ObSysVars[432].alias_ = "OB_SV_NDB_LOG_UPDATE_AS_WRITE" ; + ObSysVars[432].alias_ = "OB_SV_NDB_LOG_EXCLUSIVE_READS" ; }(); [&] (){ ObSysVars[433].default_value_ = "0" ; ObSysVars[433].info_ = "mock for mysql5.7" ; - ObSysVars[433].name_ = "ndb_log_update_minimal" ; + ObSysVars[433].name_ = "ndb_log_update_as_write" ; ObSysVars[433].data_type_ = ObIntType ; ObSysVars[433].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[433].id_ = SYS_VAR_NDB_LOG_UPDATE_MINIMAL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_UPDATE_MINIMAL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_UPDATE_MINIMAL] = 433 ; + ObSysVars[433].id_ = SYS_VAR_NDB_LOG_UPDATE_AS_WRITE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_UPDATE_AS_WRITE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_UPDATE_AS_WRITE] = 433 ; ObSysVars[433].base_value_ = "0" ; - ObSysVars[433].alias_ = "OB_SV_NDB_LOG_UPDATE_MINIMAL" ; + ObSysVars[433].alias_ = "OB_SV_NDB_LOG_UPDATE_AS_WRITE" ; }(); [&] (){ ObSysVars[434].default_value_ = "0" ; ObSysVars[434].info_ = "mock for mysql5.7" ; - ObSysVars[434].name_ = "ndb_log_updated_only" ; + ObSysVars[434].name_ = "ndb_log_update_minimal" ; ObSysVars[434].data_type_ = ObIntType ; ObSysVars[434].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[434].id_ = SYS_VAR_NDB_LOG_UPDATED_ONLY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_UPDATED_ONLY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_UPDATED_ONLY] = 434 ; + ObSysVars[434].id_ = SYS_VAR_NDB_LOG_UPDATE_MINIMAL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_UPDATE_MINIMAL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_UPDATE_MINIMAL] = 434 ; ObSysVars[434].base_value_ = "0" ; - ObSysVars[434].alias_ = "OB_SV_NDB_LOG_UPDATED_ONLY" ; + ObSysVars[434].alias_ = "OB_SV_NDB_LOG_UPDATE_MINIMAL" ; }(); [&] (){ - ObSysVars[435].default_value_ = "10" ; + ObSysVars[435].default_value_ = "0" ; ObSysVars[435].info_ = "mock for mysql5.7" ; - ObSysVars[435].name_ = "ndb_optimization_delay" ; + ObSysVars[435].name_ = "ndb_log_updated_only" ; ObSysVars[435].data_type_ = ObIntType ; ObSysVars[435].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[435].id_ = SYS_VAR_NDB_OPTIMIZATION_DELAY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_OPTIMIZATION_DELAY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_OPTIMIZATION_DELAY] = 435 ; - ObSysVars[435].base_value_ = "10" ; - ObSysVars[435].alias_ = "OB_SV_NDB_OPTIMIZATION_DELAY" ; + ObSysVars[435].id_ = SYS_VAR_NDB_LOG_UPDATED_ONLY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_UPDATED_ONLY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_UPDATED_ONLY] = 435 ; + ObSysVars[435].base_value_ = "0" ; + ObSysVars[435].alias_ = "OB_SV_NDB_LOG_UPDATED_ONLY" ; }(); [&] (){ - ObSysVars[436].default_value_ = "0" ; + ObSysVars[436].default_value_ = "10" ; ObSysVars[436].info_ = "mock for mysql5.7" ; - ObSysVars[436].name_ = "ndb_read_backup" ; + ObSysVars[436].name_ = "ndb_optimization_delay" ; ObSysVars[436].data_type_ = ObIntType ; ObSysVars[436].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[436].id_ = SYS_VAR_NDB_READ_BACKUP ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_READ_BACKUP)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_READ_BACKUP] = 436 ; - ObSysVars[436].base_value_ = "0" ; - ObSysVars[436].alias_ = "OB_SV_NDB_READ_BACKUP" ; + ObSysVars[436].id_ = SYS_VAR_NDB_OPTIMIZATION_DELAY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_OPTIMIZATION_DELAY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_OPTIMIZATION_DELAY] = 436 ; + ObSysVars[436].base_value_ = "10" ; + ObSysVars[436].alias_ = "OB_SV_NDB_OPTIMIZATION_DELAY" ; }(); [&] (){ - ObSysVars[437].default_value_ = "8" ; + ObSysVars[437].default_value_ = "0" ; ObSysVars[437].info_ = "mock for mysql5.7" ; - ObSysVars[437].name_ = "ndb_recv_thread_activation_threshold" ; + ObSysVars[437].name_ = "ndb_read_backup" ; ObSysVars[437].data_type_ = ObIntType ; ObSysVars[437].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[437].id_ = SYS_VAR_NDB_RECV_THREAD_ACTIVATION_THRESHOLD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_RECV_THREAD_ACTIVATION_THRESHOLD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_RECV_THREAD_ACTIVATION_THRESHOLD] = 437 ; - ObSysVars[437].base_value_ = "8" ; - ObSysVars[437].alias_ = "OB_SV_NDB_RECV_THREAD_ACTIVATION_THRESHOLD" ; + ObSysVars[437].id_ = SYS_VAR_NDB_READ_BACKUP ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_READ_BACKUP)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_READ_BACKUP] = 437 ; + ObSysVars[437].base_value_ = "0" ; + ObSysVars[437].alias_ = "OB_SV_NDB_READ_BACKUP" ; }(); [&] (){ - ObSysVars[438].default_value_ = "[empty]" ; + ObSysVars[438].default_value_ = "8" ; ObSysVars[438].info_ = "mock for mysql5.7" ; - ObSysVars[438].name_ = "ndb_recv_thread_cpu_mask" ; - ObSysVars[438].data_type_ = ObVarcharType ; + ObSysVars[438].name_ = "ndb_recv_thread_activation_threshold" ; + ObSysVars[438].data_type_ = ObIntType ; ObSysVars[438].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[438].id_ = SYS_VAR_NDB_RECV_THREAD_CPU_MASK ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_RECV_THREAD_CPU_MASK)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_RECV_THREAD_CPU_MASK] = 438 ; - ObSysVars[438].base_value_ = "[empty]" ; - ObSysVars[438].alias_ = "OB_SV_NDB_RECV_THREAD_CPU_MASK" ; + ObSysVars[438].id_ = SYS_VAR_NDB_RECV_THREAD_ACTIVATION_THRESHOLD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_RECV_THREAD_ACTIVATION_THRESHOLD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_RECV_THREAD_ACTIVATION_THRESHOLD] = 438 ; + ObSysVars[438].base_value_ = "8" ; + ObSysVars[438].alias_ = "OB_SV_NDB_RECV_THREAD_ACTIVATION_THRESHOLD" ; }(); [&] (){ - ObSysVars[439].default_value_ = "10" ; + ObSysVars[439].default_value_ = "[empty]" ; ObSysVars[439].info_ = "mock for mysql5.7" ; - ObSysVars[439].name_ = "ndb_report_thresh_binlog_epoch_slip" ; - ObSysVars[439].data_type_ = ObIntType ; + ObSysVars[439].name_ = "ndb_recv_thread_cpu_mask" ; + ObSysVars[439].data_type_ = ObVarcharType ; ObSysVars[439].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[439].id_ = SYS_VAR_NDB_REPORT_THRESH_BINLOG_EPOCH_SLIP ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_REPORT_THRESH_BINLOG_EPOCH_SLIP)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_REPORT_THRESH_BINLOG_EPOCH_SLIP] = 439 ; - ObSysVars[439].base_value_ = "10" ; - ObSysVars[439].alias_ = "OB_SV_NDB_REPORT_THRESH_BINLOG_EPOCH_SLIP" ; + ObSysVars[439].id_ = SYS_VAR_NDB_RECV_THREAD_CPU_MASK ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_RECV_THREAD_CPU_MASK)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_RECV_THREAD_CPU_MASK] = 439 ; + ObSysVars[439].base_value_ = "[empty]" ; + ObSysVars[439].alias_ = "OB_SV_NDB_RECV_THREAD_CPU_MASK" ; }(); [&] (){ ObSysVars[440].default_value_ = "10" ; ObSysVars[440].info_ = "mock for mysql5.7" ; - ObSysVars[440].name_ = "ndb_report_thresh_binlog_mem_usage" ; + ObSysVars[440].name_ = "ndb_report_thresh_binlog_epoch_slip" ; ObSysVars[440].data_type_ = ObIntType ; ObSysVars[440].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[440].id_ = SYS_VAR_NDB_REPORT_THRESH_BINLOG_MEM_USAGE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_REPORT_THRESH_BINLOG_MEM_USAGE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_REPORT_THRESH_BINLOG_MEM_USAGE] = 440 ; + ObSysVars[440].id_ = SYS_VAR_NDB_REPORT_THRESH_BINLOG_EPOCH_SLIP ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_REPORT_THRESH_BINLOG_EPOCH_SLIP)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_REPORT_THRESH_BINLOG_EPOCH_SLIP] = 440 ; ObSysVars[440].base_value_ = "10" ; - ObSysVars[440].alias_ = "OB_SV_NDB_REPORT_THRESH_BINLOG_MEM_USAGE" ; + ObSysVars[440].alias_ = "OB_SV_NDB_REPORT_THRESH_BINLOG_EPOCH_SLIP" ; }(); [&] (){ - ObSysVars[441].default_value_ = "1" ; + ObSysVars[441].default_value_ = "10" ; ObSysVars[441].info_ = "mock for mysql5.7" ; - ObSysVars[441].name_ = "ndb_row_checksum" ; + ObSysVars[441].name_ = "ndb_report_thresh_binlog_mem_usage" ; ObSysVars[441].data_type_ = ObIntType ; - ObSysVars[441].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[441].id_ = SYS_VAR_NDB_ROW_CHECKSUM ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_ROW_CHECKSUM)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_ROW_CHECKSUM] = 441 ; - ObSysVars[441].base_value_ = "1" ; - ObSysVars[441].alias_ = "OB_SV_NDB_ROW_CHECKSUM" ; + ObSysVars[441].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[441].id_ = SYS_VAR_NDB_REPORT_THRESH_BINLOG_MEM_USAGE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_REPORT_THRESH_BINLOG_MEM_USAGE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_REPORT_THRESH_BINLOG_MEM_USAGE] = 441 ; + ObSysVars[441].base_value_ = "10" ; + ObSysVars[441].alias_ = "OB_SV_NDB_REPORT_THRESH_BINLOG_MEM_USAGE" ; }(); [&] (){ - ObSysVars[442].default_value_ = "0" ; + ObSysVars[442].default_value_ = "1" ; ObSysVars[442].info_ = "mock for mysql5.7" ; - ObSysVars[442].name_ = "ndb_show_foreign_key_mock_tables" ; + ObSysVars[442].name_ = "ndb_row_checksum" ; ObSysVars[442].data_type_ = ObIntType ; - ObSysVars[442].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[442].id_ = SYS_VAR_NDB_SHOW_FOREIGN_KEY_MOCK_TABLES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_SHOW_FOREIGN_KEY_MOCK_TABLES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_SHOW_FOREIGN_KEY_MOCK_TABLES] = 442 ; - ObSysVars[442].base_value_ = "0" ; - ObSysVars[442].alias_ = "OB_SV_NDB_SHOW_FOREIGN_KEY_MOCK_TABLES" ; + ObSysVars[442].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[442].id_ = SYS_VAR_NDB_ROW_CHECKSUM ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_ROW_CHECKSUM)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_ROW_CHECKSUM] = 442 ; + ObSysVars[442].base_value_ = "1" ; + ObSysVars[442].alias_ = "OB_SV_NDB_ROW_CHECKSUM" ; }(); [&] (){ ObSysVars[443].default_value_ = "0" ; ObSysVars[443].info_ = "mock for mysql5.7" ; - ObSysVars[443].name_ = "ndb_slave_conflict_role" ; + ObSysVars[443].name_ = "ndb_show_foreign_key_mock_tables" ; ObSysVars[443].data_type_ = ObIntType ; - ObSysVars[443].enum_names_ = "[u'NONE', u'PRIMARY', u'SECONDARY', u'PASS']" ; ObSysVars[443].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[443].id_ = SYS_VAR_NDB_SLAVE_CONFLICT_ROLE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_SLAVE_CONFLICT_ROLE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_SLAVE_CONFLICT_ROLE] = 443 ; + ObSysVars[443].id_ = SYS_VAR_NDB_SHOW_FOREIGN_KEY_MOCK_TABLES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_SHOW_FOREIGN_KEY_MOCK_TABLES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_SHOW_FOREIGN_KEY_MOCK_TABLES] = 443 ; ObSysVars[443].base_value_ = "0" ; - ObSysVars[443].alias_ = "OB_SV_NDB_SLAVE_CONFLICT_ROLE" ; + ObSysVars[443].alias_ = "OB_SV_NDB_SHOW_FOREIGN_KEY_MOCK_TABLES" ; }(); [&] (){ ObSysVars[444].default_value_ = "0" ; ObSysVars[444].info_ = "mock for mysql5.7" ; - ObSysVars[444].name_ = "ndb_table_no_logging" ; + ObSysVars[444].name_ = "ndb_slave_conflict_role" ; ObSysVars[444].data_type_ = ObIntType ; - ObSysVars[444].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[444].id_ = SYS_VAR_NDB_TABLE_NO_LOGGING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_TABLE_NO_LOGGING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_TABLE_NO_LOGGING] = 444 ; + ObSysVars[444].enum_names_ = "[u'NONE', u'PRIMARY', u'SECONDARY', u'PASS']" ; + ObSysVars[444].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[444].id_ = SYS_VAR_NDB_SLAVE_CONFLICT_ROLE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_SLAVE_CONFLICT_ROLE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_SLAVE_CONFLICT_ROLE] = 444 ; ObSysVars[444].base_value_ = "0" ; - ObSysVars[444].alias_ = "OB_SV_NDB_TABLE_NO_LOGGING" ; + ObSysVars[444].alias_ = "OB_SV_NDB_SLAVE_CONFLICT_ROLE" ; }(); [&] (){ ObSysVars[445].default_value_ = "0" ; ObSysVars[445].info_ = "mock for mysql5.7" ; - ObSysVars[445].name_ = "ndb_table_temporary" ; + ObSysVars[445].name_ = "ndb_table_no_logging" ; ObSysVars[445].data_type_ = ObIntType ; ObSysVars[445].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[445].id_ = SYS_VAR_NDB_TABLE_TEMPORARY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_TABLE_TEMPORARY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_TABLE_TEMPORARY] = 445 ; + ObSysVars[445].id_ = SYS_VAR_NDB_TABLE_NO_LOGGING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_TABLE_NO_LOGGING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_TABLE_NO_LOGGING] = 445 ; ObSysVars[445].base_value_ = "0" ; - ObSysVars[445].alias_ = "OB_SV_NDB_TABLE_TEMPORARY" ; + ObSysVars[445].alias_ = "OB_SV_NDB_TABLE_NO_LOGGING" ; }(); [&] (){ ObSysVars[446].default_value_ = "0" ; ObSysVars[446].info_ = "mock for mysql5.7" ; - ObSysVars[446].name_ = "ndb_use_exact_count" ; + ObSysVars[446].name_ = "ndb_table_temporary" ; ObSysVars[446].data_type_ = ObIntType ; - ObSysVars[446].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[446].id_ = SYS_VAR_NDB_USE_EXACT_COUNT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_USE_EXACT_COUNT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_USE_EXACT_COUNT] = 446 ; + ObSysVars[446].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[446].id_ = SYS_VAR_NDB_TABLE_TEMPORARY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_TABLE_TEMPORARY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_TABLE_TEMPORARY] = 446 ; ObSysVars[446].base_value_ = "0" ; - ObSysVars[446].alias_ = "OB_SV_NDB_USE_EXACT_COUNT" ; + ObSysVars[446].alias_ = "OB_SV_NDB_TABLE_TEMPORARY" ; }(); [&] (){ ObSysVars[447].default_value_ = "0" ; ObSysVars[447].info_ = "mock for mysql5.7" ; - ObSysVars[447].name_ = "ndb_use_transactions" ; + ObSysVars[447].name_ = "ndb_use_exact_count" ; ObSysVars[447].data_type_ = ObIntType ; ObSysVars[447].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[447].id_ = SYS_VAR_NDB_USE_TRANSACTIONS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_USE_TRANSACTIONS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_USE_TRANSACTIONS] = 447 ; + ObSysVars[447].id_ = SYS_VAR_NDB_USE_EXACT_COUNT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_USE_EXACT_COUNT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_USE_EXACT_COUNT] = 447 ; ObSysVars[447].base_value_ = "0" ; - ObSysVars[447].alias_ = "OB_SV_NDB_USE_TRANSACTIONS" ; + ObSysVars[447].alias_ = "OB_SV_NDB_USE_EXACT_COUNT" ; }(); [&] (){ ObSysVars[448].default_value_ = "0" ; ObSysVars[448].info_ = "mock for mysql5.7" ; - ObSysVars[448].name_ = "ndbinfo_max_bytes" ; + ObSysVars[448].name_ = "ndb_use_transactions" ; ObSysVars[448].data_type_ = ObIntType ; ObSysVars[448].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[448].id_ = SYS_VAR_NDBINFO_MAX_BYTES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_MAX_BYTES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_MAX_BYTES] = 448 ; + ObSysVars[448].id_ = SYS_VAR_NDB_USE_TRANSACTIONS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_USE_TRANSACTIONS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_USE_TRANSACTIONS] = 448 ; ObSysVars[448].base_value_ = "0" ; - ObSysVars[448].alias_ = "OB_SV_NDBINFO_MAX_BYTES" ; + ObSysVars[448].alias_ = "OB_SV_NDB_USE_TRANSACTIONS" ; }(); [&] (){ - ObSysVars[449].default_value_ = "10" ; + ObSysVars[449].default_value_ = "0" ; ObSysVars[449].info_ = "mock for mysql5.7" ; - ObSysVars[449].name_ = "ndbinfo_max_rows" ; + ObSysVars[449].name_ = "ndbinfo_max_bytes" ; ObSysVars[449].data_type_ = ObIntType ; ObSysVars[449].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[449].id_ = SYS_VAR_NDBINFO_MAX_ROWS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_MAX_ROWS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_MAX_ROWS] = 449 ; - ObSysVars[449].base_value_ = "10" ; - ObSysVars[449].alias_ = "OB_SV_NDBINFO_MAX_ROWS" ; + ObSysVars[449].id_ = SYS_VAR_NDBINFO_MAX_BYTES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_MAX_BYTES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_MAX_BYTES] = 449 ; + ObSysVars[449].base_value_ = "0" ; + ObSysVars[449].alias_ = "OB_SV_NDBINFO_MAX_BYTES" ; }(); [&] (){ - ObSysVars[450].default_value_ = "0" ; + ObSysVars[450].default_value_ = "10" ; ObSysVars[450].info_ = "mock for mysql5.7" ; - ObSysVars[450].name_ = "ndbinfo_offline" ; + ObSysVars[450].name_ = "ndbinfo_max_rows" ; ObSysVars[450].data_type_ = ObIntType ; - ObSysVars[450].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[450].id_ = SYS_VAR_NDBINFO_OFFLINE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_OFFLINE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_OFFLINE] = 450 ; - ObSysVars[450].base_value_ = "0" ; - ObSysVars[450].alias_ = "OB_SV_NDBINFO_OFFLINE" ; + ObSysVars[450].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[450].id_ = SYS_VAR_NDBINFO_MAX_ROWS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_MAX_ROWS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_MAX_ROWS] = 450 ; + ObSysVars[450].base_value_ = "10" ; + ObSysVars[450].alias_ = "OB_SV_NDBINFO_MAX_ROWS" ; }(); [&] (){ ObSysVars[451].default_value_ = "0" ; ObSysVars[451].info_ = "mock for mysql5.7" ; - ObSysVars[451].name_ = "ndbinfo_show_hidden" ; + ObSysVars[451].name_ = "ndbinfo_offline" ; ObSysVars[451].data_type_ = ObIntType ; - ObSysVars[451].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[451].id_ = SYS_VAR_NDBINFO_SHOW_HIDDEN ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_SHOW_HIDDEN)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_SHOW_HIDDEN] = 451 ; + ObSysVars[451].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[451].id_ = SYS_VAR_NDBINFO_OFFLINE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_OFFLINE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_OFFLINE] = 451 ; ObSysVars[451].base_value_ = "0" ; - ObSysVars[451].alias_ = "OB_SV_NDBINFO_SHOW_HIDDEN" ; + ObSysVars[451].alias_ = "OB_SV_NDBINFO_OFFLINE" ; }(); [&] (){ - ObSysVars[452].default_value_ = "6" ; + ObSysVars[452].default_value_ = "0" ; ObSysVars[452].info_ = "mock for mysql5.7" ; - ObSysVars[452].name_ = "myisam_data_pointer_size" ; + ObSysVars[452].name_ = "ndbinfo_show_hidden" ; ObSysVars[452].data_type_ = ObIntType ; - ObSysVars[452].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[452].id_ = SYS_VAR_MYISAM_DATA_POINTER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_DATA_POINTER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_DATA_POINTER_SIZE] = 452 ; - ObSysVars[452].base_value_ = "6" ; - ObSysVars[452].alias_ = "OB_SV_MYISAM_DATA_POINTER_SIZE" ; + ObSysVars[452].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[452].id_ = SYS_VAR_NDBINFO_SHOW_HIDDEN ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_SHOW_HIDDEN)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_SHOW_HIDDEN] = 452 ; + ObSysVars[452].base_value_ = "0" ; + ObSysVars[452].alias_ = "OB_SV_NDBINFO_SHOW_HIDDEN" ; }(); [&] (){ - ObSysVars[453].default_value_ = "9223372036853720064" ; + ObSysVars[453].default_value_ = "6" ; ObSysVars[453].info_ = "mock for mysql5.7" ; - ObSysVars[453].name_ = "myisam_max_sort_file_size" ; + ObSysVars[453].name_ = "myisam_data_pointer_size" ; ObSysVars[453].data_type_ = ObIntType ; ObSysVars[453].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[453].id_ = SYS_VAR_MYISAM_MAX_SORT_FILE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_MAX_SORT_FILE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_MAX_SORT_FILE_SIZE] = 453 ; - ObSysVars[453].base_value_ = "9223372036853720064" ; - ObSysVars[453].alias_ = "OB_SV_MYISAM_MAX_SORT_FILE_SIZE" ; + ObSysVars[453].id_ = SYS_VAR_MYISAM_DATA_POINTER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_DATA_POINTER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_DATA_POINTER_SIZE] = 453 ; + ObSysVars[453].base_value_ = "6" ; + ObSysVars[453].alias_ = "OB_SV_MYISAM_DATA_POINTER_SIZE" ; }(); [&] (){ - ObSysVars[454].default_value_ = "1" ; + ObSysVars[454].default_value_ = "9223372036853720064" ; ObSysVars[454].info_ = "mock for mysql5.7" ; - ObSysVars[454].name_ = "myisam_repair_threads" ; + ObSysVars[454].name_ = "myisam_max_sort_file_size" ; ObSysVars[454].data_type_ = ObIntType ; - ObSysVars[454].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[454].id_ = SYS_VAR_MYISAM_REPAIR_THREADS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_REPAIR_THREADS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_REPAIR_THREADS] = 454 ; - ObSysVars[454].base_value_ = "1" ; - ObSysVars[454].alias_ = "OB_SV_MYISAM_REPAIR_THREADS" ; + ObSysVars[454].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[454].id_ = SYS_VAR_MYISAM_MAX_SORT_FILE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_MAX_SORT_FILE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_MAX_SORT_FILE_SIZE] = 454 ; + ObSysVars[454].base_value_ = "9223372036853720064" ; + ObSysVars[454].alias_ = "OB_SV_MYISAM_MAX_SORT_FILE_SIZE" ; }(); [&] (){ - ObSysVars[455].default_value_ = "8388608" ; + ObSysVars[455].default_value_ = "1" ; ObSysVars[455].info_ = "mock for mysql5.7" ; - ObSysVars[455].name_ = "myisam_sort_buffer_size" ; + ObSysVars[455].name_ = "myisam_repair_threads" ; ObSysVars[455].data_type_ = ObIntType ; ObSysVars[455].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[455].id_ = SYS_VAR_MYISAM_SORT_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_SORT_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_SORT_BUFFER_SIZE] = 455 ; - ObSysVars[455].base_value_ = "8388608" ; - ObSysVars[455].alias_ = "OB_SV_MYISAM_SORT_BUFFER_SIZE" ; + ObSysVars[455].id_ = SYS_VAR_MYISAM_REPAIR_THREADS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_REPAIR_THREADS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_REPAIR_THREADS] = 455 ; + ObSysVars[455].base_value_ = "1" ; + ObSysVars[455].alias_ = "OB_SV_MYISAM_REPAIR_THREADS" ; }(); [&] (){ - ObSysVars[456].default_value_ = "0" ; + ObSysVars[456].default_value_ = "8388608" ; ObSysVars[456].info_ = "mock for mysql5.7" ; - ObSysVars[456].name_ = "myisam_stats_method" ; + ObSysVars[456].name_ = "myisam_sort_buffer_size" ; ObSysVars[456].data_type_ = ObIntType ; - ObSysVars[456].enum_names_ = "[u'nulls_unequal', u'nulls_equal', u'nulls_ignored']" ; ObSysVars[456].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[456].id_ = SYS_VAR_MYISAM_STATS_METHOD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_STATS_METHOD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_STATS_METHOD] = 456 ; - ObSysVars[456].base_value_ = "0" ; - ObSysVars[456].alias_ = "OB_SV_MYISAM_STATS_METHOD" ; + ObSysVars[456].id_ = SYS_VAR_MYISAM_SORT_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_SORT_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_SORT_BUFFER_SIZE] = 456 ; + ObSysVars[456].base_value_ = "8388608" ; + ObSysVars[456].alias_ = "OB_SV_MYISAM_SORT_BUFFER_SIZE" ; }(); [&] (){ ObSysVars[457].default_value_ = "0" ; ObSysVars[457].info_ = "mock for mysql5.7" ; - ObSysVars[457].name_ = "myisam_use_mmap" ; + ObSysVars[457].name_ = "myisam_stats_method" ; ObSysVars[457].data_type_ = ObIntType ; - ObSysVars[457].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[457].id_ = SYS_VAR_MYISAM_USE_MMAP ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_USE_MMAP)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_USE_MMAP] = 457 ; + ObSysVars[457].enum_names_ = "[u'nulls_unequal', u'nulls_equal', u'nulls_ignored']" ; + ObSysVars[457].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[457].id_ = SYS_VAR_MYISAM_STATS_METHOD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_STATS_METHOD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_STATS_METHOD] = 457 ; ObSysVars[457].base_value_ = "0" ; - ObSysVars[457].alias_ = "OB_SV_MYISAM_USE_MMAP" ; + ObSysVars[457].alias_ = "OB_SV_MYISAM_STATS_METHOD" ; }(); [&] (){ - ObSysVars[458].default_value_ = "32768" ; + ObSysVars[458].default_value_ = "0" ; ObSysVars[458].info_ = "mock for mysql5.7" ; - ObSysVars[458].name_ = "preload_buffer_size" ; + ObSysVars[458].name_ = "myisam_use_mmap" ; ObSysVars[458].data_type_ = ObIntType ; - ObSysVars[458].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[458].id_ = SYS_VAR_PRELOAD_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PRELOAD_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PRELOAD_BUFFER_SIZE] = 458 ; - ObSysVars[458].base_value_ = "32768" ; - ObSysVars[458].alias_ = "OB_SV_PRELOAD_BUFFER_SIZE" ; + ObSysVars[458].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[458].id_ = SYS_VAR_MYISAM_USE_MMAP ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYISAM_USE_MMAP)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYISAM_USE_MMAP] = 458 ; + ObSysVars[458].base_value_ = "0" ; + ObSysVars[458].alias_ = "OB_SV_MYISAM_USE_MMAP" ; }(); [&] (){ - ObSysVars[459].default_value_ = "131072" ; + ObSysVars[459].default_value_ = "32768" ; ObSysVars[459].info_ = "mock for mysql5.7" ; - ObSysVars[459].name_ = "read_buffer_size" ; + ObSysVars[459].name_ = "preload_buffer_size" ; ObSysVars[459].data_type_ = ObIntType ; ObSysVars[459].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[459].id_ = SYS_VAR_READ_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_READ_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_READ_BUFFER_SIZE] = 459 ; - ObSysVars[459].base_value_ = "131072" ; - ObSysVars[459].alias_ = "OB_SV_READ_BUFFER_SIZE" ; + ObSysVars[459].id_ = SYS_VAR_PRELOAD_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PRELOAD_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PRELOAD_BUFFER_SIZE] = 459 ; + ObSysVars[459].base_value_ = "32768" ; + ObSysVars[459].alias_ = "OB_SV_PRELOAD_BUFFER_SIZE" ; }(); [&] (){ - ObSysVars[460].default_value_ = "262144" ; + ObSysVars[460].default_value_ = "131072" ; ObSysVars[460].info_ = "mock for mysql5.7" ; - ObSysVars[460].name_ = "read_rnd_buffer_size" ; + ObSysVars[460].name_ = "read_buffer_size" ; ObSysVars[460].data_type_ = ObIntType ; ObSysVars[460].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[460].id_ = SYS_VAR_READ_RND_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_READ_RND_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_READ_RND_BUFFER_SIZE] = 460 ; - ObSysVars[460].base_value_ = "262144" ; - ObSysVars[460].alias_ = "OB_SV_READ_RND_BUFFER_SIZE" ; + ObSysVars[460].id_ = SYS_VAR_READ_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_READ_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_READ_BUFFER_SIZE] = 460 ; + ObSysVars[460].base_value_ = "131072" ; + ObSysVars[460].alias_ = "OB_SV_READ_BUFFER_SIZE" ; }(); [&] (){ - ObSysVars[461].default_value_ = "1" ; + ObSysVars[461].default_value_ = "262144" ; ObSysVars[461].info_ = "mock for mysql5.7" ; - ObSysVars[461].name_ = "sync_frm" ; + ObSysVars[461].name_ = "read_rnd_buffer_size" ; ObSysVars[461].data_type_ = ObIntType ; - ObSysVars[461].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[461].id_ = SYS_VAR_SYNC_FRM ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_FRM)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_FRM] = 461 ; - ObSysVars[461].base_value_ = "1" ; - ObSysVars[461].alias_ = "OB_SV_SYNC_FRM" ; + ObSysVars[461].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[461].id_ = SYS_VAR_READ_RND_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_READ_RND_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_READ_RND_BUFFER_SIZE] = 461 ; + ObSysVars[461].base_value_ = "262144" ; + ObSysVars[461].alias_ = "OB_SV_READ_RND_BUFFER_SIZE" ; }(); [&] (){ - ObSysVars[462].default_value_ = "10000" ; + ObSysVars[462].default_value_ = "1" ; ObSysVars[462].info_ = "mock for mysql5.7" ; - ObSysVars[462].name_ = "sync_master_info" ; + ObSysVars[462].name_ = "sync_frm" ; ObSysVars[462].data_type_ = ObIntType ; ObSysVars[462].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[462].id_ = SYS_VAR_SYNC_MASTER_INFO ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_MASTER_INFO)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_MASTER_INFO] = 462 ; - ObSysVars[462].base_value_ = "10000" ; - ObSysVars[462].alias_ = "OB_SV_SYNC_MASTER_INFO" ; + ObSysVars[462].id_ = SYS_VAR_SYNC_FRM ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_FRM)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_FRM] = 462 ; + ObSysVars[462].base_value_ = "1" ; + ObSysVars[462].alias_ = "OB_SV_SYNC_FRM" ; }(); [&] (){ - ObSysVars[463].default_value_ = "2000" ; + ObSysVars[463].default_value_ = "10000" ; ObSysVars[463].info_ = "mock for mysql5.7" ; - ObSysVars[463].name_ = "table_open_cache" ; + ObSysVars[463].name_ = "sync_master_info" ; ObSysVars[463].data_type_ = ObIntType ; ObSysVars[463].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[463].id_ = SYS_VAR_TABLE_OPEN_CACHE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TABLE_OPEN_CACHE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_TABLE_OPEN_CACHE] = 463 ; - ObSysVars[463].base_value_ = "2000" ; - ObSysVars[463].alias_ = "OB_SV_TABLE_OPEN_CACHE" ; + ObSysVars[463].id_ = SYS_VAR_SYNC_MASTER_INFO ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SYNC_MASTER_INFO)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SYNC_MASTER_INFO] = 463 ; + ObSysVars[463].base_value_ = "10000" ; + ObSysVars[463].alias_ = "OB_SV_SYNC_MASTER_INFO" ; }(); [&] (){ - ObSysVars[464].default_value_ = "" ; + ObSysVars[464].default_value_ = "2000" ; ObSysVars[464].info_ = "mock for mysql5.7" ; - ObSysVars[464].name_ = "innodb_monitor_disable" ; - ObSysVars[464].data_type_ = ObVarcharType ; + ObSysVars[464].name_ = "table_open_cache" ; + ObSysVars[464].data_type_ = ObIntType ; ObSysVars[464].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[464].id_ = SYS_VAR_INNODB_MONITOR_DISABLE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MONITOR_DISABLE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MONITOR_DISABLE] = 464 ; - ObSysVars[464].base_value_ = "" ; - ObSysVars[464].alias_ = "OB_SV_INNODB_MONITOR_DISABLE" ; + ObSysVars[464].id_ = SYS_VAR_TABLE_OPEN_CACHE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TABLE_OPEN_CACHE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_TABLE_OPEN_CACHE] = 464 ; + ObSysVars[464].base_value_ = "2000" ; + ObSysVars[464].alias_ = "OB_SV_TABLE_OPEN_CACHE" ; }(); [&] (){ ObSysVars[465].default_value_ = "" ; ObSysVars[465].info_ = "mock for mysql5.7" ; - ObSysVars[465].name_ = "innodb_monitor_enable" ; + ObSysVars[465].name_ = "innodb_monitor_disable" ; ObSysVars[465].data_type_ = ObVarcharType ; ObSysVars[465].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[465].id_ = SYS_VAR_INNODB_MONITOR_ENABLE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MONITOR_ENABLE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MONITOR_ENABLE] = 465 ; + ObSysVars[465].id_ = SYS_VAR_INNODB_MONITOR_DISABLE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MONITOR_DISABLE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MONITOR_DISABLE] = 465 ; ObSysVars[465].base_value_ = "" ; - ObSysVars[465].alias_ = "OB_SV_INNODB_MONITOR_ENABLE" ; + ObSysVars[465].alias_ = "OB_SV_INNODB_MONITOR_DISABLE" ; }(); [&] (){ ObSysVars[466].default_value_ = "" ; ObSysVars[466].info_ = "mock for mysql5.7" ; - ObSysVars[466].name_ = "innodb_monitor_reset" ; + ObSysVars[466].name_ = "innodb_monitor_enable" ; ObSysVars[466].data_type_ = ObVarcharType ; ObSysVars[466].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[466].id_ = SYS_VAR_INNODB_MONITOR_RESET ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MONITOR_RESET)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MONITOR_RESET] = 466 ; + ObSysVars[466].id_ = SYS_VAR_INNODB_MONITOR_ENABLE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MONITOR_ENABLE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MONITOR_ENABLE] = 466 ; ObSysVars[466].base_value_ = "" ; - ObSysVars[466].alias_ = "OB_SV_INNODB_MONITOR_RESET" ; + ObSysVars[466].alias_ = "OB_SV_INNODB_MONITOR_ENABLE" ; }(); [&] (){ ObSysVars[467].default_value_ = "" ; ObSysVars[467].info_ = "mock for mysql5.7" ; - ObSysVars[467].name_ = "innodb_monitor_reset_all" ; + ObSysVars[467].name_ = "innodb_monitor_reset" ; ObSysVars[467].data_type_ = ObVarcharType ; ObSysVars[467].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[467].id_ = SYS_VAR_INNODB_MONITOR_RESET_ALL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MONITOR_RESET_ALL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MONITOR_RESET_ALL] = 467 ; + ObSysVars[467].id_ = SYS_VAR_INNODB_MONITOR_RESET ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MONITOR_RESET)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MONITOR_RESET] = 467 ; ObSysVars[467].base_value_ = "" ; - ObSysVars[467].alias_ = "OB_SV_INNODB_MONITOR_RESET_ALL" ; + ObSysVars[467].alias_ = "OB_SV_INNODB_MONITOR_RESET" ; }(); [&] (){ - ObSysVars[468].default_value_ = "37" ; + ObSysVars[468].default_value_ = "" ; ObSysVars[468].info_ = "mock for mysql5.7" ; - ObSysVars[468].name_ = "innodb_old_blocks_pct" ; - ObSysVars[468].data_type_ = ObIntType ; + ObSysVars[468].name_ = "innodb_monitor_reset_all" ; + ObSysVars[468].data_type_ = ObVarcharType ; ObSysVars[468].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[468].id_ = SYS_VAR_INNODB_OLD_BLOCKS_PCT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_OLD_BLOCKS_PCT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_OLD_BLOCKS_PCT] = 468 ; - ObSysVars[468].base_value_ = "37" ; - ObSysVars[468].alias_ = "OB_SV_INNODB_OLD_BLOCKS_PCT" ; + ObSysVars[468].id_ = SYS_VAR_INNODB_MONITOR_RESET_ALL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_MONITOR_RESET_ALL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_MONITOR_RESET_ALL] = 468 ; + ObSysVars[468].base_value_ = "" ; + ObSysVars[468].alias_ = "OB_SV_INNODB_MONITOR_RESET_ALL" ; }(); [&] (){ - ObSysVars[469].default_value_ = "1000" ; + ObSysVars[469].default_value_ = "37" ; ObSysVars[469].info_ = "mock for mysql5.7" ; - ObSysVars[469].name_ = "innodb_old_blocks_time" ; + ObSysVars[469].name_ = "innodb_old_blocks_pct" ; ObSysVars[469].data_type_ = ObIntType ; ObSysVars[469].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[469].id_ = SYS_VAR_INNODB_OLD_BLOCKS_TIME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_OLD_BLOCKS_TIME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_OLD_BLOCKS_TIME] = 469 ; - ObSysVars[469].base_value_ = "1000" ; - ObSysVars[469].alias_ = "OB_SV_INNODB_OLD_BLOCKS_TIME" ; + ObSysVars[469].id_ = SYS_VAR_INNODB_OLD_BLOCKS_PCT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_OLD_BLOCKS_PCT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_OLD_BLOCKS_PCT] = 469 ; + ObSysVars[469].base_value_ = "37" ; + ObSysVars[469].alias_ = "OB_SV_INNODB_OLD_BLOCKS_PCT" ; }(); [&] (){ - ObSysVars[470].default_value_ = "300" ; + ObSysVars[470].default_value_ = "1000" ; ObSysVars[470].info_ = "mock for mysql5.7" ; - ObSysVars[470].name_ = "innodb_purge_batch_size" ; + ObSysVars[470].name_ = "innodb_old_blocks_time" ; ObSysVars[470].data_type_ = ObIntType ; ObSysVars[470].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[470].id_ = SYS_VAR_INNODB_PURGE_BATCH_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PURGE_BATCH_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PURGE_BATCH_SIZE] = 470 ; - ObSysVars[470].base_value_ = "300" ; - ObSysVars[470].alias_ = "OB_SV_INNODB_PURGE_BATCH_SIZE" ; + ObSysVars[470].id_ = SYS_VAR_INNODB_OLD_BLOCKS_TIME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_OLD_BLOCKS_TIME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_OLD_BLOCKS_TIME] = 470 ; + ObSysVars[470].base_value_ = "1000" ; + ObSysVars[470].alias_ = "OB_SV_INNODB_OLD_BLOCKS_TIME" ; }(); [&] (){ - ObSysVars[471].default_value_ = "128" ; + ObSysVars[471].default_value_ = "300" ; ObSysVars[471].info_ = "mock for mysql5.7" ; - ObSysVars[471].name_ = "innodb_purge_rseg_truncate_frequency" ; + ObSysVars[471].name_ = "innodb_purge_batch_size" ; ObSysVars[471].data_type_ = ObIntType ; ObSysVars[471].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[471].id_ = SYS_VAR_INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY] = 471 ; - ObSysVars[471].base_value_ = "128" ; - ObSysVars[471].alias_ = "OB_SV_INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY" ; + ObSysVars[471].id_ = SYS_VAR_INNODB_PURGE_BATCH_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PURGE_BATCH_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PURGE_BATCH_SIZE] = 471 ; + ObSysVars[471].base_value_ = "300" ; + ObSysVars[471].alias_ = "OB_SV_INNODB_PURGE_BATCH_SIZE" ; }(); [&] (){ - ObSysVars[472].default_value_ = "0" ; + ObSysVars[472].default_value_ = "128" ; ObSysVars[472].info_ = "mock for mysql5.7" ; - ObSysVars[472].name_ = "innodb_random_read_ahead" ; + ObSysVars[472].name_ = "innodb_purge_rseg_truncate_frequency" ; ObSysVars[472].data_type_ = ObIntType ; ObSysVars[472].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[472].id_ = SYS_VAR_INNODB_RANDOM_READ_AHEAD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_RANDOM_READ_AHEAD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_RANDOM_READ_AHEAD] = 472 ; - ObSysVars[472].base_value_ = "0" ; - ObSysVars[472].alias_ = "OB_SV_INNODB_RANDOM_READ_AHEAD" ; + ObSysVars[472].id_ = SYS_VAR_INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY] = 472 ; + ObSysVars[472].base_value_ = "128" ; + ObSysVars[472].alias_ = "OB_SV_INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY" ; }(); [&] (){ - ObSysVars[473].default_value_ = "56" ; + ObSysVars[473].default_value_ = "0" ; ObSysVars[473].info_ = "mock for mysql5.7" ; - ObSysVars[473].name_ = "innodb_read_ahead_threshold" ; + ObSysVars[473].name_ = "innodb_random_read_ahead" ; ObSysVars[473].data_type_ = ObIntType ; ObSysVars[473].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[473].id_ = SYS_VAR_INNODB_READ_AHEAD_THRESHOLD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_READ_AHEAD_THRESHOLD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_READ_AHEAD_THRESHOLD] = 473 ; - ObSysVars[473].base_value_ = "56" ; - ObSysVars[473].alias_ = "OB_SV_INNODB_READ_AHEAD_THRESHOLD" ; + ObSysVars[473].id_ = SYS_VAR_INNODB_RANDOM_READ_AHEAD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_RANDOM_READ_AHEAD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_RANDOM_READ_AHEAD] = 473 ; + ObSysVars[473].base_value_ = "0" ; + ObSysVars[473].alias_ = "OB_SV_INNODB_RANDOM_READ_AHEAD" ; }(); [&] (){ - ObSysVars[474].default_value_ = "128" ; + ObSysVars[474].default_value_ = "56" ; ObSysVars[474].info_ = "mock for mysql5.7" ; - ObSysVars[474].name_ = "innodb_rollback_segments" ; + ObSysVars[474].name_ = "innodb_read_ahead_threshold" ; ObSysVars[474].data_type_ = ObIntType ; ObSysVars[474].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[474].id_ = SYS_VAR_INNODB_ROLLBACK_SEGMENTS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ROLLBACK_SEGMENTS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ROLLBACK_SEGMENTS] = 474 ; - ObSysVars[474].base_value_ = "128" ; - ObSysVars[474].alias_ = "OB_SV_INNODB_ROLLBACK_SEGMENTS" ; + ObSysVars[474].id_ = SYS_VAR_INNODB_READ_AHEAD_THRESHOLD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_READ_AHEAD_THRESHOLD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_READ_AHEAD_THRESHOLD] = 474 ; + ObSysVars[474].base_value_ = "56" ; + ObSysVars[474].alias_ = "OB_SV_INNODB_READ_AHEAD_THRESHOLD" ; }(); [&] (){ - ObSysVars[475].default_value_ = "6" ; + ObSysVars[475].default_value_ = "128" ; ObSysVars[475].info_ = "mock for mysql5.7" ; - ObSysVars[475].name_ = "innodb_spin_wait_delay" ; + ObSysVars[475].name_ = "innodb_rollback_segments" ; ObSysVars[475].data_type_ = ObIntType ; ObSysVars[475].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[475].id_ = SYS_VAR_INNODB_SPIN_WAIT_DELAY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SPIN_WAIT_DELAY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SPIN_WAIT_DELAY] = 475 ; - ObSysVars[475].base_value_ = "6" ; - ObSysVars[475].alias_ = "OB_SV_INNODB_SPIN_WAIT_DELAY" ; + ObSysVars[475].id_ = SYS_VAR_INNODB_ROLLBACK_SEGMENTS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_ROLLBACK_SEGMENTS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_ROLLBACK_SEGMENTS] = 475 ; + ObSysVars[475].base_value_ = "128" ; + ObSysVars[475].alias_ = "OB_SV_INNODB_ROLLBACK_SEGMENTS" ; }(); [&] (){ - ObSysVars[476].default_value_ = "0" ; + ObSysVars[476].default_value_ = "6" ; ObSysVars[476].info_ = "mock for mysql5.7" ; - ObSysVars[476].name_ = "innodb_status_output" ; + ObSysVars[476].name_ = "innodb_spin_wait_delay" ; ObSysVars[476].data_type_ = ObIntType ; ObSysVars[476].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[476].id_ = SYS_VAR_INNODB_STATUS_OUTPUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATUS_OUTPUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATUS_OUTPUT] = 476 ; - ObSysVars[476].base_value_ = "0" ; - ObSysVars[476].alias_ = "OB_SV_INNODB_STATUS_OUTPUT" ; + ObSysVars[476].id_ = SYS_VAR_INNODB_SPIN_WAIT_DELAY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SPIN_WAIT_DELAY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SPIN_WAIT_DELAY] = 476 ; + ObSysVars[476].base_value_ = "6" ; + ObSysVars[476].alias_ = "OB_SV_INNODB_SPIN_WAIT_DELAY" ; }(); [&] (){ ObSysVars[477].default_value_ = "0" ; ObSysVars[477].info_ = "mock for mysql5.7" ; - ObSysVars[477].name_ = "innodb_status_output_locks" ; + ObSysVars[477].name_ = "innodb_status_output" ; ObSysVars[477].data_type_ = ObIntType ; ObSysVars[477].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[477].id_ = SYS_VAR_INNODB_STATUS_OUTPUT_LOCKS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATUS_OUTPUT_LOCKS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATUS_OUTPUT_LOCKS] = 477 ; + ObSysVars[477].id_ = SYS_VAR_INNODB_STATUS_OUTPUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATUS_OUTPUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATUS_OUTPUT] = 477 ; ObSysVars[477].base_value_ = "0" ; - ObSysVars[477].alias_ = "OB_SV_INNODB_STATUS_OUTPUT_LOCKS" ; + ObSysVars[477].alias_ = "OB_SV_INNODB_STATUS_OUTPUT" ; }(); [&] (){ - ObSysVars[478].default_value_ = "30" ; + ObSysVars[478].default_value_ = "0" ; ObSysVars[478].info_ = "mock for mysql5.7" ; - ObSysVars[478].name_ = "innodb_sync_spin_loops" ; + ObSysVars[478].name_ = "innodb_status_output_locks" ; ObSysVars[478].data_type_ = ObIntType ; ObSysVars[478].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[478].id_ = SYS_VAR_INNODB_SYNC_SPIN_LOOPS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SYNC_SPIN_LOOPS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SYNC_SPIN_LOOPS] = 478 ; - ObSysVars[478].base_value_ = "30" ; - ObSysVars[478].alias_ = "OB_SV_INNODB_SYNC_SPIN_LOOPS" ; + ObSysVars[478].id_ = SYS_VAR_INNODB_STATUS_OUTPUT_LOCKS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATUS_OUTPUT_LOCKS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATUS_OUTPUT_LOCKS] = 478 ; + ObSysVars[478].base_value_ = "0" ; + ObSysVars[478].alias_ = "OB_SV_INNODB_STATUS_OUTPUT_LOCKS" ; }(); [&] (){ - ObSysVars[479].default_value_ = "1" ; + ObSysVars[479].default_value_ = "30" ; ObSysVars[479].info_ = "mock for mysql5.7" ; - ObSysVars[479].name_ = "internal_tmp_disk_storage_engine" ; + ObSysVars[479].name_ = "innodb_sync_spin_loops" ; ObSysVars[479].data_type_ = ObIntType ; - ObSysVars[479].enum_names_ = "[u'MYISAM', u'INNODB']" ; ObSysVars[479].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[479].id_ = SYS_VAR_INTERNAL_TMP_DISK_STORAGE_ENGINE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INTERNAL_TMP_DISK_STORAGE_ENGINE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INTERNAL_TMP_DISK_STORAGE_ENGINE] = 479 ; - ObSysVars[479].base_value_ = "1" ; - ObSysVars[479].alias_ = "OB_SV_INTERNAL_TMP_DISK_STORAGE_ENGINE" ; + ObSysVars[479].id_ = SYS_VAR_INNODB_SYNC_SPIN_LOOPS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SYNC_SPIN_LOOPS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SYNC_SPIN_LOOPS] = 479 ; + ObSysVars[479].base_value_ = "30" ; + ObSysVars[479].alias_ = "OB_SV_INNODB_SYNC_SPIN_LOOPS" ; }(); [&] (){ - ObSysVars[480].default_value_ = "0" ; + ObSysVars[480].default_value_ = "1" ; ObSysVars[480].info_ = "mock for mysql5.7" ; - ObSysVars[480].name_ = "keep_files_on_create" ; + ObSysVars[480].name_ = "internal_tmp_disk_storage_engine" ; ObSysVars[480].data_type_ = ObIntType ; - ObSysVars[480].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[480].id_ = SYS_VAR_KEEP_FILES_ON_CREATE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEEP_FILES_ON_CREATE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_KEEP_FILES_ON_CREATE] = 480 ; - ObSysVars[480].base_value_ = "0" ; - ObSysVars[480].alias_ = "OB_SV_KEEP_FILES_ON_CREATE" ; + ObSysVars[480].enum_names_ = "[u'MYISAM', u'INNODB']" ; + ObSysVars[480].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[480].id_ = SYS_VAR_INTERNAL_TMP_DISK_STORAGE_ENGINE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INTERNAL_TMP_DISK_STORAGE_ENGINE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INTERNAL_TMP_DISK_STORAGE_ENGINE] = 480 ; + ObSysVars[480].base_value_ = "1" ; + ObSysVars[480].alias_ = "OB_SV_INTERNAL_TMP_DISK_STORAGE_ENGINE" ; }(); [&] (){ - ObSysVars[481].default_value_ = "16777216" ; + ObSysVars[481].default_value_ = "0" ; ObSysVars[481].info_ = "mock for mysql5.7" ; - ObSysVars[481].name_ = "max_heap_table_size" ; + ObSysVars[481].name_ = "keep_files_on_create" ; ObSysVars[481].data_type_ = ObIntType ; ObSysVars[481].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[481].id_ = SYS_VAR_MAX_HEAP_TABLE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_HEAP_TABLE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_HEAP_TABLE_SIZE] = 481 ; - ObSysVars[481].base_value_ = "16777216" ; - ObSysVars[481].alias_ = "OB_SV_MAX_HEAP_TABLE_SIZE" ; + ObSysVars[481].id_ = SYS_VAR_KEEP_FILES_ON_CREATE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEEP_FILES_ON_CREATE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_KEEP_FILES_ON_CREATE] = 481 ; + ObSysVars[481].base_value_ = "0" ; + ObSysVars[481].alias_ = "OB_SV_KEEP_FILES_ON_CREATE" ; }(); [&] (){ - ObSysVars[482].default_value_ = "8388608" ; + ObSysVars[482].default_value_ = "16777216" ; ObSysVars[482].info_ = "mock for mysql5.7" ; - ObSysVars[482].name_ = "bulk_insert_buffer_size" ; + ObSysVars[482].name_ = "max_heap_table_size" ; ObSysVars[482].data_type_ = ObIntType ; ObSysVars[482].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[482].id_ = SYS_VAR_BULK_INSERT_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BULK_INSERT_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BULK_INSERT_BUFFER_SIZE] = 482 ; - ObSysVars[482].base_value_ = "8388608" ; - ObSysVars[482].alias_ = "OB_SV_BULK_INSERT_BUFFER_SIZE" ; + ObSysVars[482].id_ = SYS_VAR_MAX_HEAP_TABLE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_HEAP_TABLE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_HEAP_TABLE_SIZE] = 482 ; + ObSysVars[482].base_value_ = "16777216" ; + ObSysVars[482].alias_ = "OB_SV_MAX_HEAP_TABLE_SIZE" ; }(); [&] (){ - ObSysVars[483].default_value_ = "279" ; + ObSysVars[483].default_value_ = "8388608" ; ObSysVars[483].info_ = "mock for mysql5.7" ; - ObSysVars[483].name_ = "host_cache_size" ; + ObSysVars[483].name_ = "bulk_insert_buffer_size" ; ObSysVars[483].data_type_ = ObIntType ; - ObSysVars[483].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[483].id_ = SYS_VAR_HOST_CACHE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HOST_CACHE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_HOST_CACHE_SIZE] = 483 ; - ObSysVars[483].base_value_ = "279" ; - ObSysVars[483].alias_ = "OB_SV_HOST_CACHE_SIZE" ; + ObSysVars[483].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[483].id_ = SYS_VAR_BULK_INSERT_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BULK_INSERT_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BULK_INSERT_BUFFER_SIZE] = 483 ; + ObSysVars[483].base_value_ = "8388608" ; + ObSysVars[483].alias_ = "OB_SV_BULK_INSERT_BUFFER_SIZE" ; }(); [&] (){ - ObSysVars[484].default_value_ = "null" ; + ObSysVars[484].default_value_ = "279" ; ObSysVars[484].info_ = "mock for mysql5.7" ; - ObSysVars[484].name_ = "init_slave" ; - ObSysVars[484].data_type_ = ObVarcharType ; + ObSysVars[484].name_ = "host_cache_size" ; + ObSysVars[484].data_type_ = ObIntType ; ObSysVars[484].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[484].id_ = SYS_VAR_INIT_SLAVE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INIT_SLAVE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INIT_SLAVE] = 484 ; - ObSysVars[484].base_value_ = "null" ; - ObSysVars[484].alias_ = "OB_SV_INIT_SLAVE" ; + ObSysVars[484].id_ = SYS_VAR_HOST_CACHE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HOST_CACHE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_HOST_CACHE_SIZE] = 484 ; + ObSysVars[484].base_value_ = "279" ; + ObSysVars[484].alias_ = "OB_SV_HOST_CACHE_SIZE" ; }(); [&] (){ - ObSysVars[485].default_value_ = "1" ; + ObSysVars[485].default_value_ = "null" ; ObSysVars[485].info_ = "mock for mysql5.7" ; - ObSysVars[485].name_ = "innodb_fast_shutdown" ; - ObSysVars[485].data_type_ = ObIntType ; + ObSysVars[485].name_ = "init_slave" ; + ObSysVars[485].data_type_ = ObVarcharType ; ObSysVars[485].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[485].id_ = SYS_VAR_INNODB_FAST_SHUTDOWN ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FAST_SHUTDOWN)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FAST_SHUTDOWN] = 485 ; - ObSysVars[485].base_value_ = "1" ; - ObSysVars[485].alias_ = "OB_SV_INNODB_FAST_SHUTDOWN" ; + ObSysVars[485].id_ = SYS_VAR_INIT_SLAVE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INIT_SLAVE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INIT_SLAVE] = 485 ; + ObSysVars[485].base_value_ = "null" ; + ObSysVars[485].alias_ = "OB_SV_INIT_SLAVE" ; }(); [&] (){ - ObSysVars[486].default_value_ = "200" ; + ObSysVars[486].default_value_ = "1" ; ObSysVars[486].info_ = "mock for mysql5.7" ; - ObSysVars[486].name_ = "innodb_io_capacity" ; + ObSysVars[486].name_ = "innodb_fast_shutdown" ; ObSysVars[486].data_type_ = ObIntType ; ObSysVars[486].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[486].id_ = SYS_VAR_INNODB_IO_CAPACITY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_IO_CAPACITY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_IO_CAPACITY] = 486 ; - ObSysVars[486].base_value_ = "200" ; - ObSysVars[486].alias_ = "OB_SV_INNODB_IO_CAPACITY" ; + ObSysVars[486].id_ = SYS_VAR_INNODB_FAST_SHUTDOWN ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_FAST_SHUTDOWN)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_FAST_SHUTDOWN] = 486 ; + ObSysVars[486].base_value_ = "1" ; + ObSysVars[486].alias_ = "OB_SV_INNODB_FAST_SHUTDOWN" ; }(); [&] (){ - ObSysVars[487].default_value_ = "2000" ; + ObSysVars[487].default_value_ = "200" ; ObSysVars[487].info_ = "mock for mysql5.7" ; - ObSysVars[487].name_ = "innodb_io_capacity_max" ; + ObSysVars[487].name_ = "innodb_io_capacity" ; ObSysVars[487].data_type_ = ObIntType ; ObSysVars[487].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[487].id_ = SYS_VAR_INNODB_IO_CAPACITY_MAX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_IO_CAPACITY_MAX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_IO_CAPACITY_MAX] = 487 ; - ObSysVars[487].base_value_ = "2000" ; - ObSysVars[487].alias_ = "OB_SV_INNODB_IO_CAPACITY_MAX" ; + ObSysVars[487].id_ = SYS_VAR_INNODB_IO_CAPACITY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_IO_CAPACITY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_IO_CAPACITY] = 487 ; + ObSysVars[487].base_value_ = "200" ; + ObSysVars[487].alias_ = "OB_SV_INNODB_IO_CAPACITY" ; }(); [&] (){ - ObSysVars[488].default_value_ = "0" ; + ObSysVars[488].default_value_ = "2000" ; ObSysVars[488].info_ = "mock for mysql5.7" ; - ObSysVars[488].name_ = "innodb_thread_concurrency" ; + ObSysVars[488].name_ = "innodb_io_capacity_max" ; ObSysVars[488].data_type_ = ObIntType ; ObSysVars[488].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[488].id_ = SYS_VAR_INNODB_THREAD_CONCURRENCY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_THREAD_CONCURRENCY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_THREAD_CONCURRENCY] = 488 ; - ObSysVars[488].base_value_ = "0" ; - ObSysVars[488].alias_ = "OB_SV_INNODB_THREAD_CONCURRENCY" ; + ObSysVars[488].id_ = SYS_VAR_INNODB_IO_CAPACITY_MAX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_IO_CAPACITY_MAX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_IO_CAPACITY_MAX] = 488 ; + ObSysVars[488].base_value_ = "2000" ; + ObSysVars[488].alias_ = "OB_SV_INNODB_IO_CAPACITY_MAX" ; }(); [&] (){ - ObSysVars[489].default_value_ = "10000" ; + ObSysVars[489].default_value_ = "0" ; ObSysVars[489].info_ = "mock for mysql5.7" ; - ObSysVars[489].name_ = "innodb_thread_sleep_delay" ; + ObSysVars[489].name_ = "innodb_thread_concurrency" ; ObSysVars[489].data_type_ = ObIntType ; ObSysVars[489].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[489].id_ = SYS_VAR_INNODB_THREAD_SLEEP_DELAY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_THREAD_SLEEP_DELAY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_THREAD_SLEEP_DELAY] = 489 ; - ObSysVars[489].base_value_ = "10000" ; - ObSysVars[489].alias_ = "OB_SV_INNODB_THREAD_SLEEP_DELAY" ; + ObSysVars[489].id_ = SYS_VAR_INNODB_THREAD_CONCURRENCY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_THREAD_CONCURRENCY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_THREAD_CONCURRENCY] = 489 ; + ObSysVars[489].base_value_ = "0" ; + ObSysVars[489].alias_ = "OB_SV_INNODB_THREAD_CONCURRENCY" ; }(); [&] (){ - ObSysVars[490].default_value_ = "3" ; + ObSysVars[490].default_value_ = "10000" ; ObSysVars[490].info_ = "mock for mysql5.7" ; - ObSysVars[490].name_ = "log_error_verbosity" ; + ObSysVars[490].name_ = "innodb_thread_sleep_delay" ; ObSysVars[490].data_type_ = ObIntType ; ObSysVars[490].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[490].id_ = SYS_VAR_LOG_ERROR_VERBOSITY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_ERROR_VERBOSITY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_ERROR_VERBOSITY] = 490 ; - ObSysVars[490].base_value_ = "3" ; - ObSysVars[490].alias_ = "OB_SV_LOG_ERROR_VERBOSITY" ; + ObSysVars[490].id_ = SYS_VAR_INNODB_THREAD_SLEEP_DELAY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_THREAD_SLEEP_DELAY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_THREAD_SLEEP_DELAY] = 490 ; + ObSysVars[490].base_value_ = "10000" ; + ObSysVars[490].alias_ = "OB_SV_INNODB_THREAD_SLEEP_DELAY" ; }(); [&] (){ - ObSysVars[491].default_value_ = "FILE" ; + ObSysVars[491].default_value_ = "3" ; ObSysVars[491].info_ = "mock for mysql5.7" ; - ObSysVars[491].name_ = "log_output" ; - ObSysVars[491].data_type_ = ObVarcharType ; + ObSysVars[491].name_ = "log_error_verbosity" ; + ObSysVars[491].data_type_ = ObIntType ; ObSysVars[491].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[491].id_ = SYS_VAR_LOG_OUTPUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_OUTPUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_OUTPUT] = 491 ; - ObSysVars[491].base_value_ = "FILE" ; - ObSysVars[491].alias_ = "OB_SV_LOG_OUTPUT" ; + ObSysVars[491].id_ = SYS_VAR_LOG_ERROR_VERBOSITY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_ERROR_VERBOSITY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_ERROR_VERBOSITY] = 491 ; + ObSysVars[491].base_value_ = "3" ; + ObSysVars[491].alias_ = "OB_SV_LOG_ERROR_VERBOSITY" ; }(); [&] (){ - ObSysVars[492].default_value_ = "0" ; + ObSysVars[492].default_value_ = "FILE" ; ObSysVars[492].info_ = "mock for mysql5.7" ; - ObSysVars[492].name_ = "log_queries_not_using_indexes" ; - ObSysVars[492].data_type_ = ObIntType ; + ObSysVars[492].name_ = "log_output" ; + ObSysVars[492].data_type_ = ObVarcharType ; ObSysVars[492].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[492].id_ = SYS_VAR_LOG_QUERIES_NOT_USING_INDEXES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_QUERIES_NOT_USING_INDEXES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_QUERIES_NOT_USING_INDEXES] = 492 ; - ObSysVars[492].base_value_ = "0" ; - ObSysVars[492].alias_ = "OB_SV_LOG_QUERIES_NOT_USING_INDEXES" ; + ObSysVars[492].id_ = SYS_VAR_LOG_OUTPUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_OUTPUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_OUTPUT] = 492 ; + ObSysVars[492].base_value_ = "FILE" ; + ObSysVars[492].alias_ = "OB_SV_LOG_OUTPUT" ; }(); [&] (){ ObSysVars[493].default_value_ = "0" ; ObSysVars[493].info_ = "mock for mysql5.7" ; - ObSysVars[493].name_ = "log_slow_admin_statements" ; + ObSysVars[493].name_ = "log_queries_not_using_indexes" ; ObSysVars[493].data_type_ = ObIntType ; ObSysVars[493].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[493].id_ = SYS_VAR_LOG_SLOW_ADMIN_STATEMENTS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SLOW_ADMIN_STATEMENTS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SLOW_ADMIN_STATEMENTS] = 493 ; + ObSysVars[493].id_ = SYS_VAR_LOG_QUERIES_NOT_USING_INDEXES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_QUERIES_NOT_USING_INDEXES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_QUERIES_NOT_USING_INDEXES] = 493 ; ObSysVars[493].base_value_ = "0" ; - ObSysVars[493].alias_ = "OB_SV_LOG_SLOW_ADMIN_STATEMENTS" ; + ObSysVars[493].alias_ = "OB_SV_LOG_QUERIES_NOT_USING_INDEXES" ; }(); [&] (){ ObSysVars[494].default_value_ = "0" ; ObSysVars[494].info_ = "mock for mysql5.7" ; - ObSysVars[494].name_ = "log_slow_slave_statements" ; + ObSysVars[494].name_ = "log_slow_admin_statements" ; ObSysVars[494].data_type_ = ObIntType ; ObSysVars[494].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[494].id_ = SYS_VAR_LOG_SLOW_SLAVE_STATEMENTS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SLOW_SLAVE_STATEMENTS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SLOW_SLAVE_STATEMENTS] = 494 ; + ObSysVars[494].id_ = SYS_VAR_LOG_SLOW_ADMIN_STATEMENTS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SLOW_ADMIN_STATEMENTS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SLOW_ADMIN_STATEMENTS] = 494 ; ObSysVars[494].base_value_ = "0" ; - ObSysVars[494].alias_ = "OB_SV_LOG_SLOW_SLAVE_STATEMENTS" ; + ObSysVars[494].alias_ = "OB_SV_LOG_SLOW_ADMIN_STATEMENTS" ; }(); [&] (){ - ObSysVars[495].default_value_ = "1" ; + ObSysVars[495].default_value_ = "0" ; ObSysVars[495].info_ = "mock for mysql5.7" ; - ObSysVars[495].name_ = "log_statements_unsafe_for_binlog" ; + ObSysVars[495].name_ = "log_slow_slave_statements" ; ObSysVars[495].data_type_ = ObIntType ; ObSysVars[495].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[495].id_ = SYS_VAR_LOG_STATEMENTS_UNSAFE_FOR_BINLOG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_STATEMENTS_UNSAFE_FOR_BINLOG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_STATEMENTS_UNSAFE_FOR_BINLOG] = 495 ; - ObSysVars[495].base_value_ = "1" ; - ObSysVars[495].alias_ = "OB_SV_LOG_STATEMENTS_UNSAFE_FOR_BINLOG" ; + ObSysVars[495].id_ = SYS_VAR_LOG_SLOW_SLAVE_STATEMENTS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SLOW_SLAVE_STATEMENTS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SLOW_SLAVE_STATEMENTS] = 495 ; + ObSysVars[495].base_value_ = "0" ; + ObSysVars[495].alias_ = "OB_SV_LOG_SLOW_SLAVE_STATEMENTS" ; }(); [&] (){ - ObSysVars[496].default_value_ = "0" ; + ObSysVars[496].default_value_ = "1" ; ObSysVars[496].info_ = "mock for mysql5.7" ; - ObSysVars[496].name_ = "log_syslog" ; + ObSysVars[496].name_ = "log_statements_unsafe_for_binlog" ; ObSysVars[496].data_type_ = ObIntType ; ObSysVars[496].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[496].id_ = SYS_VAR_LOG_SYSLOG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SYSLOG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SYSLOG] = 496 ; - ObSysVars[496].base_value_ = "0" ; - ObSysVars[496].alias_ = "OB_SV_LOG_SYSLOG" ; + ObSysVars[496].id_ = SYS_VAR_LOG_STATEMENTS_UNSAFE_FOR_BINLOG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_STATEMENTS_UNSAFE_FOR_BINLOG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_STATEMENTS_UNSAFE_FOR_BINLOG] = 496 ; + ObSysVars[496].base_value_ = "1" ; + ObSysVars[496].alias_ = "OB_SV_LOG_STATEMENTS_UNSAFE_FOR_BINLOG" ; }(); [&] (){ - ObSysVars[497].default_value_ = "daemon" ; + ObSysVars[497].default_value_ = "0" ; ObSysVars[497].info_ = "mock for mysql5.7" ; - ObSysVars[497].name_ = "log_syslog_facility" ; - ObSysVars[497].data_type_ = ObVarcharType ; + ObSysVars[497].name_ = "log_syslog" ; + ObSysVars[497].data_type_ = ObIntType ; ObSysVars[497].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[497].id_ = SYS_VAR_LOG_SYSLOG_FACILITY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SYSLOG_FACILITY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SYSLOG_FACILITY] = 497 ; - ObSysVars[497].base_value_ = "daemon" ; - ObSysVars[497].alias_ = "OB_SV_LOG_SYSLOG_FACILITY" ; + ObSysVars[497].id_ = SYS_VAR_LOG_SYSLOG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SYSLOG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SYSLOG] = 497 ; + ObSysVars[497].base_value_ = "0" ; + ObSysVars[497].alias_ = "OB_SV_LOG_SYSLOG" ; }(); [&] (){ - ObSysVars[498].default_value_ = "1" ; + ObSysVars[498].default_value_ = "daemon" ; ObSysVars[498].info_ = "mock for mysql5.7" ; - ObSysVars[498].name_ = "log_syslog_include_pid" ; - ObSysVars[498].data_type_ = ObIntType ; + ObSysVars[498].name_ = "log_syslog_facility" ; + ObSysVars[498].data_type_ = ObVarcharType ; ObSysVars[498].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[498].id_ = SYS_VAR_LOG_SYSLOG_INCLUDE_PID ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SYSLOG_INCLUDE_PID)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SYSLOG_INCLUDE_PID] = 498 ; - ObSysVars[498].base_value_ = "1" ; - ObSysVars[498].alias_ = "OB_SV_LOG_SYSLOG_INCLUDE_PID" ; + ObSysVars[498].id_ = SYS_VAR_LOG_SYSLOG_FACILITY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SYSLOG_FACILITY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SYSLOG_FACILITY] = 498 ; + ObSysVars[498].base_value_ = "daemon" ; + ObSysVars[498].alias_ = "OB_SV_LOG_SYSLOG_FACILITY" ; }(); [&] (){ - ObSysVars[499].default_value_ = "null" ; + ObSysVars[499].default_value_ = "1" ; ObSysVars[499].info_ = "mock for mysql5.7" ; - ObSysVars[499].name_ = "log_syslog_tag" ; - ObSysVars[499].data_type_ = ObVarcharType ; + ObSysVars[499].name_ = "log_syslog_include_pid" ; + ObSysVars[499].data_type_ = ObIntType ; ObSysVars[499].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[499].id_ = SYS_VAR_LOG_SYSLOG_TAG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SYSLOG_TAG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SYSLOG_TAG] = 499 ; - ObSysVars[499].base_value_ = "null" ; - ObSysVars[499].alias_ = "OB_SV_LOG_SYSLOG_TAG" ; + ObSysVars[499].id_ = SYS_VAR_LOG_SYSLOG_INCLUDE_PID ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SYSLOG_INCLUDE_PID)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SYSLOG_INCLUDE_PID] = 499 ; + ObSysVars[499].base_value_ = "1" ; + ObSysVars[499].alias_ = "OB_SV_LOG_SYSLOG_INCLUDE_PID" ; }(); [&] (){ - ObSysVars[500].default_value_ = "0" ; + ObSysVars[500].default_value_ = "null" ; ObSysVars[500].info_ = "mock for mysql5.7" ; - ObSysVars[500].name_ = "log_throttle_queries_not_using_indexes" ; - ObSysVars[500].data_type_ = ObIntType ; + ObSysVars[500].name_ = "log_syslog_tag" ; + ObSysVars[500].data_type_ = ObVarcharType ; ObSysVars[500].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[500].id_ = SYS_VAR_LOG_THROTTLE_QUERIES_NOT_USING_INDEXES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_THROTTLE_QUERIES_NOT_USING_INDEXES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_THROTTLE_QUERIES_NOT_USING_INDEXES] = 500 ; - ObSysVars[500].base_value_ = "0" ; - ObSysVars[500].alias_ = "OB_SV_LOG_THROTTLE_QUERIES_NOT_USING_INDEXES" ; + ObSysVars[500].id_ = SYS_VAR_LOG_SYSLOG_TAG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SYSLOG_TAG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SYSLOG_TAG] = 500 ; + ObSysVars[500].base_value_ = "null" ; + ObSysVars[500].alias_ = "OB_SV_LOG_SYSLOG_TAG" ; }(); [&] (){ ObSysVars[501].default_value_ = "0" ; ObSysVars[501].info_ = "mock for mysql5.7" ; - ObSysVars[501].name_ = "log_timestamps" ; + ObSysVars[501].name_ = "log_throttle_queries_not_using_indexes" ; ObSysVars[501].data_type_ = ObIntType ; - ObSysVars[501].enum_names_ = "[u'UTC', u'SYSTEM']" ; ObSysVars[501].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[501].id_ = SYS_VAR_LOG_TIMESTAMPS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_TIMESTAMPS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_TIMESTAMPS] = 501 ; + ObSysVars[501].id_ = SYS_VAR_LOG_THROTTLE_QUERIES_NOT_USING_INDEXES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_THROTTLE_QUERIES_NOT_USING_INDEXES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_THROTTLE_QUERIES_NOT_USING_INDEXES] = 501 ; ObSysVars[501].base_value_ = "0" ; - ObSysVars[501].alias_ = "OB_SV_LOG_TIMESTAMPS" ; + ObSysVars[501].alias_ = "OB_SV_LOG_THROTTLE_QUERIES_NOT_USING_INDEXES" ; }(); [&] (){ - ObSysVars[502].default_value_ = "2" ; + ObSysVars[502].default_value_ = "0" ; ObSysVars[502].info_ = "mock for mysql5.7" ; - ObSysVars[502].name_ = "log_warnings" ; + ObSysVars[502].name_ = "log_timestamps" ; ObSysVars[502].data_type_ = ObIntType ; + ObSysVars[502].enum_names_ = "[u'UTC', u'SYSTEM']" ; ObSysVars[502].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[502].id_ = SYS_VAR_LOG_WARNINGS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_WARNINGS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_WARNINGS] = 502 ; - ObSysVars[502].base_value_ = "2" ; - ObSysVars[502].alias_ = "OB_SV_LOG_WARNINGS" ; + ObSysVars[502].id_ = SYS_VAR_LOG_TIMESTAMPS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_TIMESTAMPS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_TIMESTAMPS] = 502 ; + ObSysVars[502].base_value_ = "0" ; + ObSysVars[502].alias_ = "OB_SV_LOG_TIMESTAMPS" ; }(); [&] (){ - ObSysVars[503].default_value_ = "20" ; + ObSysVars[503].default_value_ = "2" ; ObSysVars[503].info_ = "mock for mysql5.7" ; - ObSysVars[503].name_ = "max_delayed_threads" ; + ObSysVars[503].name_ = "log_warnings" ; ObSysVars[503].data_type_ = ObIntType ; - ObSysVars[503].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[503].id_ = SYS_VAR_MAX_DELAYED_THREADS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_DELAYED_THREADS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_DELAYED_THREADS] = 503 ; - ObSysVars[503].base_value_ = "20" ; - ObSysVars[503].alias_ = "OB_SV_MAX_DELAYED_THREADS" ; + ObSysVars[503].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[503].id_ = SYS_VAR_LOG_WARNINGS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_WARNINGS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_WARNINGS] = 503 ; + ObSysVars[503].base_value_ = "2" ; + ObSysVars[503].alias_ = "OB_SV_LOG_WARNINGS" ; }(); [&] (){ - ObSysVars[504].default_value_ = "0" ; + ObSysVars[504].default_value_ = "20" ; ObSysVars[504].info_ = "mock for mysql5.7" ; - ObSysVars[504].name_ = "offline_mode" ; + ObSysVars[504].name_ = "max_delayed_threads" ; ObSysVars[504].data_type_ = ObIntType ; - ObSysVars[504].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[504].id_ = SYS_VAR_OFFLINE_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OFFLINE_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OFFLINE_MODE] = 504 ; - ObSysVars[504].base_value_ = "0" ; - ObSysVars[504].alias_ = "OB_SV_OFFLINE_MODE" ; + ObSysVars[504].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[504].id_ = SYS_VAR_MAX_DELAYED_THREADS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_DELAYED_THREADS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_DELAYED_THREADS] = 504 ; + ObSysVars[504].base_value_ = "20" ; + ObSysVars[504].alias_ = "OB_SV_MAX_DELAYED_THREADS" ; }(); [&] (){ ObSysVars[505].default_value_ = "0" ; ObSysVars[505].info_ = "mock for mysql5.7" ; - ObSysVars[505].name_ = "require_secure_transport" ; + ObSysVars[505].name_ = "offline_mode" ; ObSysVars[505].data_type_ = ObIntType ; ObSysVars[505].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[505].id_ = SYS_VAR_REQUIRE_SECURE_TRANSPORT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REQUIRE_SECURE_TRANSPORT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_REQUIRE_SECURE_TRANSPORT] = 505 ; + ObSysVars[505].id_ = SYS_VAR_OFFLINE_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OFFLINE_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OFFLINE_MODE] = 505 ; ObSysVars[505].base_value_ = "0" ; - ObSysVars[505].alias_ = "OB_SV_REQUIRE_SECURE_TRANSPORT" ; + ObSysVars[505].alias_ = "OB_SV_OFFLINE_MODE" ; }(); [&] (){ - ObSysVars[506].default_value_ = "2" ; + ObSysVars[506].default_value_ = "0" ; ObSysVars[506].info_ = "mock for mysql5.7" ; - ObSysVars[506].name_ = "slow_launch_time" ; + ObSysVars[506].name_ = "require_secure_transport" ; ObSysVars[506].data_type_ = ObIntType ; ObSysVars[506].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[506].id_ = SYS_VAR_SLOW_LAUNCH_TIME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLOW_LAUNCH_TIME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SLOW_LAUNCH_TIME] = 506 ; - ObSysVars[506].base_value_ = "2" ; - ObSysVars[506].alias_ = "OB_SV_SLOW_LAUNCH_TIME" ; + ObSysVars[506].id_ = SYS_VAR_REQUIRE_SECURE_TRANSPORT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REQUIRE_SECURE_TRANSPORT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_REQUIRE_SECURE_TRANSPORT] = 506 ; + ObSysVars[506].base_value_ = "0" ; + ObSysVars[506].alias_ = "OB_SV_REQUIRE_SECURE_TRANSPORT" ; }(); [&] (){ - ObSysVars[507].default_value_ = "0" ; + ObSysVars[507].default_value_ = "2" ; ObSysVars[507].info_ = "mock for mysql5.7" ; - ObSysVars[507].name_ = "sql_log_off" ; + ObSysVars[507].name_ = "slow_launch_time" ; ObSysVars[507].data_type_ = ObIntType ; - ObSysVars[507].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[507].id_ = SYS_VAR_SQL_LOG_OFF ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SQL_LOG_OFF)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SQL_LOG_OFF] = 507 ; - ObSysVars[507].base_value_ = "0" ; - ObSysVars[507].alias_ = "OB_SV_SQL_LOG_OFF" ; + ObSysVars[507].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[507].id_ = SYS_VAR_SLOW_LAUNCH_TIME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SLOW_LAUNCH_TIME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SLOW_LAUNCH_TIME] = 507 ; + ObSysVars[507].base_value_ = "2" ; + ObSysVars[507].alias_ = "OB_SV_SLOW_LAUNCH_TIME" ; }(); [&] (){ - ObSysVars[508].default_value_ = "9" ; + ObSysVars[508].default_value_ = "0" ; ObSysVars[508].info_ = "mock for mysql5.7" ; - ObSysVars[508].name_ = "thread_cache_size" ; + ObSysVars[508].name_ = "sql_log_off" ; ObSysVars[508].data_type_ = ObIntType ; - ObSysVars[508].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[508].id_ = SYS_VAR_THREAD_CACHE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_CACHE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_CACHE_SIZE] = 508 ; - ObSysVars[508].base_value_ = "9" ; - ObSysVars[508].alias_ = "OB_SV_THREAD_CACHE_SIZE" ; + ObSysVars[508].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[508].id_ = SYS_VAR_SQL_LOG_OFF ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SQL_LOG_OFF)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SQL_LOG_OFF] = 508 ; + ObSysVars[508].base_value_ = "0" ; + ObSysVars[508].alias_ = "OB_SV_SQL_LOG_OFF" ; }(); [&] (){ - ObSysVars[509].default_value_ = "0" ; + ObSysVars[509].default_value_ = "9" ; ObSysVars[509].info_ = "mock for mysql5.7" ; - ObSysVars[509].name_ = "thread_pool_high_priority_connection" ; + ObSysVars[509].name_ = "thread_cache_size" ; ObSysVars[509].data_type_ = ObIntType ; ObSysVars[509].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[509].id_ = SYS_VAR_THREAD_POOL_HIGH_PRIORITY_CONNECTION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_HIGH_PRIORITY_CONNECTION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_HIGH_PRIORITY_CONNECTION] = 509 ; - ObSysVars[509].base_value_ = "0" ; - ObSysVars[509].alias_ = "OB_SV_THREAD_POOL_HIGH_PRIORITY_CONNECTION" ; + ObSysVars[509].id_ = SYS_VAR_THREAD_CACHE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_CACHE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_CACHE_SIZE] = 509 ; + ObSysVars[509].base_value_ = "9" ; + ObSysVars[509].alias_ = "OB_SV_THREAD_CACHE_SIZE" ; }(); [&] (){ ObSysVars[510].default_value_ = "0" ; ObSysVars[510].info_ = "mock for mysql5.7" ; - ObSysVars[510].name_ = "thread_pool_max_unused_threads" ; + ObSysVars[510].name_ = "thread_pool_high_priority_connection" ; ObSysVars[510].data_type_ = ObIntType ; ObSysVars[510].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[510].id_ = SYS_VAR_THREAD_POOL_MAX_UNUSED_THREADS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_MAX_UNUSED_THREADS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_MAX_UNUSED_THREADS] = 510 ; + ObSysVars[510].id_ = SYS_VAR_THREAD_POOL_HIGH_PRIORITY_CONNECTION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_HIGH_PRIORITY_CONNECTION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_HIGH_PRIORITY_CONNECTION] = 510 ; ObSysVars[510].base_value_ = "0" ; - ObSysVars[510].alias_ = "OB_SV_THREAD_POOL_MAX_UNUSED_THREADS" ; + ObSysVars[510].alias_ = "OB_SV_THREAD_POOL_HIGH_PRIORITY_CONNECTION" ; }(); [&] (){ - ObSysVars[511].default_value_ = "1000" ; + ObSysVars[511].default_value_ = "0" ; ObSysVars[511].info_ = "mock for mysql5.7" ; - ObSysVars[511].name_ = "thread_pool_prio_kickup_timer" ; + ObSysVars[511].name_ = "thread_pool_max_unused_threads" ; ObSysVars[511].data_type_ = ObIntType ; ObSysVars[511].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[511].id_ = SYS_VAR_THREAD_POOL_PRIO_KICKUP_TIMER ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_PRIO_KICKUP_TIMER)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_PRIO_KICKUP_TIMER] = 511 ; - ObSysVars[511].base_value_ = "1000" ; - ObSysVars[511].alias_ = "OB_SV_THREAD_POOL_PRIO_KICKUP_TIMER" ; + ObSysVars[511].id_ = SYS_VAR_THREAD_POOL_MAX_UNUSED_THREADS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_MAX_UNUSED_THREADS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_MAX_UNUSED_THREADS] = 511 ; + ObSysVars[511].base_value_ = "0" ; + ObSysVars[511].alias_ = "OB_SV_THREAD_POOL_MAX_UNUSED_THREADS" ; }(); [&] (){ - ObSysVars[512].default_value_ = "6" ; + ObSysVars[512].default_value_ = "1000" ; ObSysVars[512].info_ = "mock for mysql5.7" ; - ObSysVars[512].name_ = "thread_pool_stall_limit" ; + ObSysVars[512].name_ = "thread_pool_prio_kickup_timer" ; ObSysVars[512].data_type_ = ObIntType ; ObSysVars[512].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[512].id_ = SYS_VAR_THREAD_POOL_STALL_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_STALL_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_STALL_LIMIT] = 512 ; - ObSysVars[512].base_value_ = "6" ; - ObSysVars[512].alias_ = "OB_SV_THREAD_POOL_STALL_LIMIT" ; + ObSysVars[512].id_ = SYS_VAR_THREAD_POOL_PRIO_KICKUP_TIMER ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_PRIO_KICKUP_TIMER)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_PRIO_KICKUP_TIMER] = 512 ; + ObSysVars[512].base_value_ = "1000" ; + ObSysVars[512].alias_ = "OB_SV_THREAD_POOL_PRIO_KICKUP_TIMER" ; }(); [&] (){ - ObSysVars[513].default_value_ = "1" ; + ObSysVars[513].default_value_ = "6" ; ObSysVars[513].info_ = "mock for mysql5.7" ; - ObSysVars[513].name_ = "have_statement_timeout" ; + ObSysVars[513].name_ = "thread_pool_stall_limit" ; ObSysVars[513].data_type_ = ObIntType ; - ObSysVars[513].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[513].id_ = SYS_VAR_HAVE_STATEMENT_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HAVE_STATEMENT_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_HAVE_STATEMENT_TIMEOUT] = 513 ; - ObSysVars[513].base_value_ = "1" ; - ObSysVars[513].alias_ = "OB_SV_HAVE_STATEMENT_TIMEOUT" ; + ObSysVars[513].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[513].id_ = SYS_VAR_THREAD_POOL_STALL_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_STALL_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_STALL_LIMIT] = 513 ; + ObSysVars[513].base_value_ = "6" ; + ObSysVars[513].alias_ = "OB_SV_THREAD_POOL_STALL_LIMIT" ; }(); [&] (){ - ObSysVars[514].default_value_ = "*" ; + ObSysVars[514].default_value_ = "1" ; ObSysVars[514].info_ = "mock for mysql5.7" ; - ObSysVars[514].name_ = "mysqlx_bind_address" ; - ObSysVars[514].data_type_ = ObVarcharType ; - ObSysVars[514].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[514].id_ = SYS_VAR_MYSQLX_BIND_ADDRESS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_BIND_ADDRESS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_BIND_ADDRESS] = 514 ; - ObSysVars[514].base_value_ = "*" ; - ObSysVars[514].alias_ = "OB_SV_MYSQLX_BIND_ADDRESS" ; + ObSysVars[514].name_ = "have_statement_timeout" ; + ObSysVars[514].data_type_ = ObIntType ; + ObSysVars[514].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[514].id_ = SYS_VAR_HAVE_STATEMENT_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HAVE_STATEMENT_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_HAVE_STATEMENT_TIMEOUT] = 514 ; + ObSysVars[514].base_value_ = "1" ; + ObSysVars[514].alias_ = "OB_SV_HAVE_STATEMENT_TIMEOUT" ; }(); [&] (){ - ObSysVars[515].default_value_ = "33060" ; + ObSysVars[515].default_value_ = "*" ; ObSysVars[515].info_ = "mock for mysql5.7" ; - ObSysVars[515].name_ = "mysqlx_port" ; - ObSysVars[515].data_type_ = ObIntType ; + ObSysVars[515].name_ = "mysqlx_bind_address" ; + ObSysVars[515].data_type_ = ObVarcharType ; ObSysVars[515].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[515].id_ = SYS_VAR_MYSQLX_PORT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_PORT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_PORT] = 515 ; - ObSysVars[515].base_value_ = "33060" ; - ObSysVars[515].alias_ = "OB_SV_MYSQLX_PORT" ; + ObSysVars[515].id_ = SYS_VAR_MYSQLX_BIND_ADDRESS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_BIND_ADDRESS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_BIND_ADDRESS] = 515 ; + ObSysVars[515].base_value_ = "*" ; + ObSysVars[515].alias_ = "OB_SV_MYSQLX_BIND_ADDRESS" ; }(); [&] (){ - ObSysVars[516].default_value_ = "0" ; + ObSysVars[516].default_value_ = "33060" ; ObSysVars[516].info_ = "mock for mysql5.7" ; - ObSysVars[516].name_ = "mysqlx_port_open_timeout" ; + ObSysVars[516].name_ = "mysqlx_port" ; ObSysVars[516].data_type_ = ObIntType ; ObSysVars[516].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[516].id_ = SYS_VAR_MYSQLX_PORT_OPEN_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_PORT_OPEN_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_PORT_OPEN_TIMEOUT] = 516 ; - ObSysVars[516].base_value_ = "0" ; - ObSysVars[516].alias_ = "OB_SV_MYSQLX_PORT_OPEN_TIMEOUT" ; + ObSysVars[516].id_ = SYS_VAR_MYSQLX_PORT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_PORT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_PORT] = 516 ; + ObSysVars[516].base_value_ = "33060" ; + ObSysVars[516].alias_ = "OB_SV_MYSQLX_PORT" ; }(); [&] (){ - ObSysVars[517].default_value_ = "/tmp/mysqlx.sock" ; + ObSysVars[517].default_value_ = "0" ; ObSysVars[517].info_ = "mock for mysql5.7" ; - ObSysVars[517].name_ = "mysqlx_socket" ; - ObSysVars[517].data_type_ = ObVarcharType ; + ObSysVars[517].name_ = "mysqlx_port_open_timeout" ; + ObSysVars[517].data_type_ = ObIntType ; ObSysVars[517].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[517].id_ = SYS_VAR_MYSQLX_SOCKET ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SOCKET)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SOCKET] = 517 ; - ObSysVars[517].base_value_ = "/tmp/mysqlx.sock" ; - ObSysVars[517].alias_ = "OB_SV_MYSQLX_SOCKET" ; + ObSysVars[517].id_ = SYS_VAR_MYSQLX_PORT_OPEN_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_PORT_OPEN_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_PORT_OPEN_TIMEOUT] = 517 ; + ObSysVars[517].base_value_ = "0" ; + ObSysVars[517].alias_ = "OB_SV_MYSQLX_PORT_OPEN_TIMEOUT" ; }(); [&] (){ - ObSysVars[518].default_value_ = "" ; + ObSysVars[518].default_value_ = "/tmp/mysqlx.sock" ; ObSysVars[518].info_ = "mock for mysql5.7" ; - ObSysVars[518].name_ = "mysqlx_ssl_ca" ; + ObSysVars[518].name_ = "mysqlx_socket" ; ObSysVars[518].data_type_ = ObVarcharType ; ObSysVars[518].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[518].id_ = SYS_VAR_MYSQLX_SSL_CA ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CA)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CA] = 518 ; - ObSysVars[518].base_value_ = "" ; - ObSysVars[518].alias_ = "OB_SV_MYSQLX_SSL_CA" ; + ObSysVars[518].id_ = SYS_VAR_MYSQLX_SOCKET ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SOCKET)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SOCKET] = 518 ; + ObSysVars[518].base_value_ = "/tmp/mysqlx.sock" ; + ObSysVars[518].alias_ = "OB_SV_MYSQLX_SOCKET" ; }(); [&] (){ ObSysVars[519].default_value_ = "" ; ObSysVars[519].info_ = "mock for mysql5.7" ; - ObSysVars[519].name_ = "mysqlx_ssl_capath" ; + ObSysVars[519].name_ = "mysqlx_ssl_ca" ; ObSysVars[519].data_type_ = ObVarcharType ; ObSysVars[519].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[519].id_ = SYS_VAR_MYSQLX_SSL_CAPATH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CAPATH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CAPATH] = 519 ; + ObSysVars[519].id_ = SYS_VAR_MYSQLX_SSL_CA ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CA)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CA] = 519 ; ObSysVars[519].base_value_ = "" ; - ObSysVars[519].alias_ = "OB_SV_MYSQLX_SSL_CAPATH" ; + ObSysVars[519].alias_ = "OB_SV_MYSQLX_SSL_CA" ; }(); [&] (){ ObSysVars[520].default_value_ = "" ; ObSysVars[520].info_ = "mock for mysql5.7" ; - ObSysVars[520].name_ = "mysqlx_ssl_cert" ; + ObSysVars[520].name_ = "mysqlx_ssl_capath" ; ObSysVars[520].data_type_ = ObVarcharType ; ObSysVars[520].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[520].id_ = SYS_VAR_MYSQLX_SSL_CERT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CERT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CERT] = 520 ; + ObSysVars[520].id_ = SYS_VAR_MYSQLX_SSL_CAPATH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CAPATH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CAPATH] = 520 ; ObSysVars[520].base_value_ = "" ; - ObSysVars[520].alias_ = "OB_SV_MYSQLX_SSL_CERT" ; + ObSysVars[520].alias_ = "OB_SV_MYSQLX_SSL_CAPATH" ; }(); [&] (){ ObSysVars[521].default_value_ = "" ; ObSysVars[521].info_ = "mock for mysql5.7" ; - ObSysVars[521].name_ = "mysqlx_ssl_cipher" ; + ObSysVars[521].name_ = "mysqlx_ssl_cert" ; ObSysVars[521].data_type_ = ObVarcharType ; ObSysVars[521].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[521].id_ = SYS_VAR_MYSQLX_SSL_CIPHER ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CIPHER)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CIPHER] = 521 ; + ObSysVars[521].id_ = SYS_VAR_MYSQLX_SSL_CERT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CERT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CERT] = 521 ; ObSysVars[521].base_value_ = "" ; - ObSysVars[521].alias_ = "OB_SV_MYSQLX_SSL_CIPHER" ; + ObSysVars[521].alias_ = "OB_SV_MYSQLX_SSL_CERT" ; }(); [&] (){ ObSysVars[522].default_value_ = "" ; ObSysVars[522].info_ = "mock for mysql5.7" ; - ObSysVars[522].name_ = "mysqlx_ssl_crl" ; + ObSysVars[522].name_ = "mysqlx_ssl_cipher" ; ObSysVars[522].data_type_ = ObVarcharType ; ObSysVars[522].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[522].id_ = SYS_VAR_MYSQLX_SSL_CRL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CRL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CRL] = 522 ; + ObSysVars[522].id_ = SYS_VAR_MYSQLX_SSL_CIPHER ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CIPHER)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CIPHER] = 522 ; ObSysVars[522].base_value_ = "" ; - ObSysVars[522].alias_ = "OB_SV_MYSQLX_SSL_CRL" ; + ObSysVars[522].alias_ = "OB_SV_MYSQLX_SSL_CIPHER" ; }(); [&] (){ ObSysVars[523].default_value_ = "" ; ObSysVars[523].info_ = "mock for mysql5.7" ; - ObSysVars[523].name_ = "mysqlx_ssl_crlpath" ; + ObSysVars[523].name_ = "mysqlx_ssl_crl" ; ObSysVars[523].data_type_ = ObVarcharType ; ObSysVars[523].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[523].id_ = SYS_VAR_MYSQLX_SSL_CRLPATH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CRLPATH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CRLPATH] = 523 ; + ObSysVars[523].id_ = SYS_VAR_MYSQLX_SSL_CRL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CRL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CRL] = 523 ; ObSysVars[523].base_value_ = "" ; - ObSysVars[523].alias_ = "OB_SV_MYSQLX_SSL_CRLPATH" ; + ObSysVars[523].alias_ = "OB_SV_MYSQLX_SSL_CRL" ; }(); [&] (){ ObSysVars[524].default_value_ = "" ; ObSysVars[524].info_ = "mock for mysql5.7" ; - ObSysVars[524].name_ = "mysqlx_ssl_key" ; + ObSysVars[524].name_ = "mysqlx_ssl_crlpath" ; ObSysVars[524].data_type_ = ObVarcharType ; ObSysVars[524].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[524].id_ = SYS_VAR_MYSQLX_SSL_KEY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_KEY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_KEY] = 524 ; + ObSysVars[524].id_ = SYS_VAR_MYSQLX_SSL_CRLPATH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_CRLPATH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_CRLPATH] = 524 ; ObSysVars[524].base_value_ = "" ; - ObSysVars[524].alias_ = "OB_SV_MYSQLX_SSL_KEY" ; + ObSysVars[524].alias_ = "OB_SV_MYSQLX_SSL_CRLPATH" ; }(); [&] (){ - ObSysVars[525].default_value_ = "0" ; + ObSysVars[525].default_value_ = "" ; ObSysVars[525].info_ = "mock for mysql5.7" ; - ObSysVars[525].name_ = "old" ; - ObSysVars[525].data_type_ = ObIntType ; - ObSysVars[525].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[525].id_ = SYS_VAR_OLD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OLD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OLD] = 525 ; - ObSysVars[525].base_value_ = "0" ; - ObSysVars[525].alias_ = "OB_SV_OLD" ; + ObSysVars[525].name_ = "mysqlx_ssl_key" ; + ObSysVars[525].data_type_ = ObVarcharType ; + ObSysVars[525].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[525].id_ = SYS_VAR_MYSQLX_SSL_KEY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQLX_SSL_KEY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQLX_SSL_KEY] = 525 ; + ObSysVars[525].base_value_ = "" ; + ObSysVars[525].alias_ = "OB_SV_MYSQLX_SSL_KEY" ; }(); [&] (){ - ObSysVars[526].default_value_ = "-1" ; + ObSysVars[526].default_value_ = "0" ; ObSysVars[526].info_ = "mock for mysql5.7" ; - ObSysVars[526].name_ = "performance_schema_accounts_size" ; + ObSysVars[526].name_ = "old" ; ObSysVars[526].data_type_ = ObIntType ; ObSysVars[526].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[526].id_ = SYS_VAR_PERFORMANCE_SCHEMA_ACCOUNTS_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_ACCOUNTS_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_ACCOUNTS_SIZE] = 526 ; - ObSysVars[526].base_value_ = "-1" ; - ObSysVars[526].alias_ = "OB_SV_PERFORMANCE_SCHEMA_ACCOUNTS_SIZE" ; + ObSysVars[526].id_ = SYS_VAR_OLD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OLD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OLD] = 526 ; + ObSysVars[526].base_value_ = "0" ; + ObSysVars[526].alias_ = "OB_SV_OLD" ; }(); [&] (){ - ObSysVars[527].default_value_ = "10000" ; + ObSysVars[527].default_value_ = "-1" ; ObSysVars[527].info_ = "mock for mysql5.7" ; - ObSysVars[527].name_ = "performance_schema_digests_size" ; + ObSysVars[527].name_ = "performance_schema_accounts_size" ; ObSysVars[527].data_type_ = ObIntType ; ObSysVars[527].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[527].id_ = SYS_VAR_PERFORMANCE_SCHEMA_DIGESTS_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_DIGESTS_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_DIGESTS_SIZE] = 527 ; - ObSysVars[527].base_value_ = "10000" ; - ObSysVars[527].alias_ = "OB_SV_PERFORMANCE_SCHEMA_DIGESTS_SIZE" ; + ObSysVars[527].id_ = SYS_VAR_PERFORMANCE_SCHEMA_ACCOUNTS_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_ACCOUNTS_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_ACCOUNTS_SIZE] = 527 ; + ObSysVars[527].base_value_ = "-1" ; + ObSysVars[527].alias_ = "OB_SV_PERFORMANCE_SCHEMA_ACCOUNTS_SIZE" ; }(); [&] (){ ObSysVars[528].default_value_ = "10000" ; ObSysVars[528].info_ = "mock for mysql5.7" ; - ObSysVars[528].name_ = "performance_schema_events_stages_history_long_size" ; + ObSysVars[528].name_ = "performance_schema_digests_size" ; ObSysVars[528].data_type_ = ObIntType ; ObSysVars[528].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[528].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE] = 528 ; + ObSysVars[528].id_ = SYS_VAR_PERFORMANCE_SCHEMA_DIGESTS_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_DIGESTS_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_DIGESTS_SIZE] = 528 ; ObSysVars[528].base_value_ = "10000" ; - ObSysVars[528].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE" ; + ObSysVars[528].alias_ = "OB_SV_PERFORMANCE_SCHEMA_DIGESTS_SIZE" ; }(); [&] (){ - ObSysVars[529].default_value_ = "10" ; + ObSysVars[529].default_value_ = "10000" ; ObSysVars[529].info_ = "mock for mysql5.7" ; - ObSysVars[529].name_ = "performance_schema_events_stages_history_size" ; + ObSysVars[529].name_ = "performance_schema_events_stages_history_long_size" ; ObSysVars[529].data_type_ = ObIntType ; ObSysVars[529].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[529].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE] = 529 ; - ObSysVars[529].base_value_ = "10" ; - ObSysVars[529].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE" ; + ObSysVars[529].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE] = 529 ; + ObSysVars[529].base_value_ = "10000" ; + ObSysVars[529].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE" ; }(); [&] (){ - ObSysVars[530].default_value_ = "10000" ; + ObSysVars[530].default_value_ = "10" ; ObSysVars[530].info_ = "mock for mysql5.7" ; - ObSysVars[530].name_ = "performance_schema_events_statements_history_long_size" ; + ObSysVars[530].name_ = "performance_schema_events_stages_history_size" ; ObSysVars[530].data_type_ = ObIntType ; ObSysVars[530].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[530].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE] = 530 ; - ObSysVars[530].base_value_ = "10000" ; - ObSysVars[530].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE" ; + ObSysVars[530].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE] = 530 ; + ObSysVars[530].base_value_ = "10" ; + ObSysVars[530].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE" ; }(); [&] (){ - ObSysVars[531].default_value_ = "10" ; + ObSysVars[531].default_value_ = "10000" ; ObSysVars[531].info_ = "mock for mysql5.7" ; - ObSysVars[531].name_ = "performance_schema_events_statements_history_size" ; + ObSysVars[531].name_ = "performance_schema_events_statements_history_long_size" ; ObSysVars[531].data_type_ = ObIntType ; ObSysVars[531].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[531].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE] = 531 ; - ObSysVars[531].base_value_ = "10" ; - ObSysVars[531].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE" ; + ObSysVars[531].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE] = 531 ; + ObSysVars[531].base_value_ = "10000" ; + ObSysVars[531].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE" ; }(); [&] (){ - ObSysVars[532].default_value_ = "10000" ; + ObSysVars[532].default_value_ = "10" ; ObSysVars[532].info_ = "mock for mysql5.7" ; - ObSysVars[532].name_ = "performance_schema_events_transactions_history_long_size" ; + ObSysVars[532].name_ = "performance_schema_events_statements_history_size" ; ObSysVars[532].data_type_ = ObIntType ; ObSysVars[532].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[532].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE] = 532 ; - ObSysVars[532].base_value_ = "10000" ; - ObSysVars[532].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE" ; + ObSysVars[532].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE] = 532 ; + ObSysVars[532].base_value_ = "10" ; + ObSysVars[532].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE" ; }(); [&] (){ - ObSysVars[533].default_value_ = "10" ; + ObSysVars[533].default_value_ = "10000" ; ObSysVars[533].info_ = "mock for mysql5.7" ; - ObSysVars[533].name_ = "performance_schema_events_transactions_history_size" ; + ObSysVars[533].name_ = "performance_schema_events_transactions_history_long_size" ; ObSysVars[533].data_type_ = ObIntType ; ObSysVars[533].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[533].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE] = 533 ; - ObSysVars[533].base_value_ = "10" ; - ObSysVars[533].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE" ; + ObSysVars[533].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE] = 533 ; + ObSysVars[533].base_value_ = "10000" ; + ObSysVars[533].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE" ; }(); [&] (){ - ObSysVars[534].default_value_ = "10000" ; + ObSysVars[534].default_value_ = "10" ; ObSysVars[534].info_ = "mock for mysql5.7" ; - ObSysVars[534].name_ = "performance_schema_events_waits_history_long_size" ; + ObSysVars[534].name_ = "performance_schema_events_transactions_history_size" ; ObSysVars[534].data_type_ = ObIntType ; ObSysVars[534].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[534].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE] = 534 ; - ObSysVars[534].base_value_ = "10000" ; - ObSysVars[534].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE" ; + ObSysVars[534].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE] = 534 ; + ObSysVars[534].base_value_ = "10" ; + ObSysVars[534].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE" ; }(); [&] (){ - ObSysVars[535].default_value_ = "10" ; + ObSysVars[535].default_value_ = "10000" ; ObSysVars[535].info_ = "mock for mysql5.7" ; - ObSysVars[535].name_ = "performance_schema_events_waits_history_size" ; + ObSysVars[535].name_ = "performance_schema_events_waits_history_long_size" ; ObSysVars[535].data_type_ = ObIntType ; ObSysVars[535].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[535].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE] = 535 ; - ObSysVars[535].base_value_ = "10" ; - ObSysVars[535].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE" ; + ObSysVars[535].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE] = 535 ; + ObSysVars[535].base_value_ = "10000" ; + ObSysVars[535].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE" ; }(); [&] (){ - ObSysVars[536].default_value_ = "-1" ; + ObSysVars[536].default_value_ = "10" ; ObSysVars[536].info_ = "mock for mysql5.7" ; - ObSysVars[536].name_ = "performance_schema_hosts_size" ; + ObSysVars[536].name_ = "performance_schema_events_waits_history_size" ; ObSysVars[536].data_type_ = ObIntType ; ObSysVars[536].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[536].id_ = SYS_VAR_PERFORMANCE_SCHEMA_HOSTS_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_HOSTS_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_HOSTS_SIZE] = 536 ; - ObSysVars[536].base_value_ = "-1" ; - ObSysVars[536].alias_ = "OB_SV_PERFORMANCE_SCHEMA_HOSTS_SIZE" ; + ObSysVars[536].id_ = SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE] = 536 ; + ObSysVars[536].base_value_ = "10" ; + ObSysVars[536].alias_ = "OB_SV_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE" ; }(); [&] (){ - ObSysVars[537].default_value_ = "80" ; + ObSysVars[537].default_value_ = "-1" ; ObSysVars[537].info_ = "mock for mysql5.7" ; - ObSysVars[537].name_ = "performance_schema_max_cond_classes" ; + ObSysVars[537].name_ = "performance_schema_hosts_size" ; ObSysVars[537].data_type_ = ObIntType ; ObSysVars[537].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[537].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_CLASSES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_CLASSES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_CLASSES] = 537 ; - ObSysVars[537].base_value_ = "80" ; - ObSysVars[537].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_COND_CLASSES" ; + ObSysVars[537].id_ = SYS_VAR_PERFORMANCE_SCHEMA_HOSTS_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_HOSTS_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_HOSTS_SIZE] = 537 ; + ObSysVars[537].base_value_ = "-1" ; + ObSysVars[537].alias_ = "OB_SV_PERFORMANCE_SCHEMA_HOSTS_SIZE" ; }(); [&] (){ - ObSysVars[538].default_value_ = "-1" ; + ObSysVars[538].default_value_ = "80" ; ObSysVars[538].info_ = "mock for mysql5.7" ; - ObSysVars[538].name_ = "performance_schema_max_cond_instances" ; + ObSysVars[538].name_ = "performance_schema_max_cond_classes" ; ObSysVars[538].data_type_ = ObIntType ; ObSysVars[538].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[538].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_INSTANCES] = 538 ; - ObSysVars[538].base_value_ = "-1" ; - ObSysVars[538].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_COND_INSTANCES" ; + ObSysVars[538].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_CLASSES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_CLASSES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_CLASSES] = 538 ; + ObSysVars[538].base_value_ = "80" ; + ObSysVars[538].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_COND_CLASSES" ; }(); [&] (){ - ObSysVars[539].default_value_ = "1024" ; + ObSysVars[539].default_value_ = "-1" ; ObSysVars[539].info_ = "mock for mysql5.7" ; - ObSysVars[539].name_ = "performance_schema_max_digest_length" ; + ObSysVars[539].name_ = "performance_schema_max_cond_instances" ; ObSysVars[539].data_type_ = ObIntType ; ObSysVars[539].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[539].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH] = 539 ; - ObSysVars[539].base_value_ = "1024" ; - ObSysVars[539].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH" ; + ObSysVars[539].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_INSTANCES] = 539 ; + ObSysVars[539].base_value_ = "-1" ; + ObSysVars[539].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_COND_INSTANCES" ; }(); [&] (){ - ObSysVars[540].default_value_ = "80" ; + ObSysVars[540].default_value_ = "1024" ; ObSysVars[540].info_ = "mock for mysql5.7" ; - ObSysVars[540].name_ = "performance_schema_max_file_classes" ; + ObSysVars[540].name_ = "performance_schema_max_digest_length" ; ObSysVars[540].data_type_ = ObIntType ; ObSysVars[540].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[540].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_CLASSES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_CLASSES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_CLASSES] = 540 ; - ObSysVars[540].base_value_ = "80" ; - ObSysVars[540].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_FILE_CLASSES" ; + ObSysVars[540].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH] = 540 ; + ObSysVars[540].base_value_ = "1024" ; + ObSysVars[540].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH" ; }(); [&] (){ - ObSysVars[541].default_value_ = "32768" ; + ObSysVars[541].default_value_ = "80" ; ObSysVars[541].info_ = "mock for mysql5.7" ; - ObSysVars[541].name_ = "performance_schema_max_file_handles" ; + ObSysVars[541].name_ = "performance_schema_max_file_classes" ; ObSysVars[541].data_type_ = ObIntType ; ObSysVars[541].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[541].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_HANDLES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_HANDLES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_HANDLES] = 541 ; - ObSysVars[541].base_value_ = "32768" ; - ObSysVars[541].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_FILE_HANDLES" ; + ObSysVars[541].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_CLASSES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_CLASSES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_CLASSES] = 541 ; + ObSysVars[541].base_value_ = "80" ; + ObSysVars[541].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_FILE_CLASSES" ; }(); [&] (){ - ObSysVars[542].default_value_ = "-1" ; + ObSysVars[542].default_value_ = "32768" ; ObSysVars[542].info_ = "mock for mysql5.7" ; - ObSysVars[542].name_ = "performance_schema_max_file_instances" ; + ObSysVars[542].name_ = "performance_schema_max_file_handles" ; ObSysVars[542].data_type_ = ObIntType ; ObSysVars[542].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[542].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES] = 542 ; - ObSysVars[542].base_value_ = "-1" ; - ObSysVars[542].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES" ; + ObSysVars[542].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_HANDLES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_HANDLES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_HANDLES] = 542 ; + ObSysVars[542].base_value_ = "32768" ; + ObSysVars[542].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_FILE_HANDLES" ; }(); [&] (){ ObSysVars[543].default_value_ = "-1" ; ObSysVars[543].info_ = "mock for mysql5.7" ; - ObSysVars[543].name_ = "performance_schema_max_index_stat" ; + ObSysVars[543].name_ = "performance_schema_max_file_instances" ; ObSysVars[543].data_type_ = ObIntType ; ObSysVars[543].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[543].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_INDEX_STAT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_INDEX_STAT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_INDEX_STAT] = 543 ; + ObSysVars[543].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES] = 543 ; ObSysVars[543].base_value_ = "-1" ; - ObSysVars[543].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_INDEX_STAT" ; + ObSysVars[543].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES" ; }(); [&] (){ - ObSysVars[544].default_value_ = "320" ; + ObSysVars[544].default_value_ = "-1" ; ObSysVars[544].info_ = "mock for mysql5.7" ; - ObSysVars[544].name_ = "performance_schema_max_memory_classes" ; + ObSysVars[544].name_ = "performance_schema_max_index_stat" ; ObSysVars[544].data_type_ = ObIntType ; ObSysVars[544].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[544].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES] = 544 ; - ObSysVars[544].base_value_ = "320" ; - ObSysVars[544].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES" ; + ObSysVars[544].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_INDEX_STAT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_INDEX_STAT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_INDEX_STAT] = 544 ; + ObSysVars[544].base_value_ = "-1" ; + ObSysVars[544].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_INDEX_STAT" ; }(); [&] (){ - ObSysVars[545].default_value_ = "-1" ; + ObSysVars[545].default_value_ = "320" ; ObSysVars[545].info_ = "mock for mysql5.7" ; - ObSysVars[545].name_ = "performance_schema_max_metadata_locks" ; + ObSysVars[545].name_ = "performance_schema_max_memory_classes" ; ObSysVars[545].data_type_ = ObIntType ; ObSysVars[545].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[545].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS] = 545 ; - ObSysVars[545].base_value_ = "-1" ; - ObSysVars[545].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS" ; + ObSysVars[545].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES] = 545 ; + ObSysVars[545].base_value_ = "320" ; + ObSysVars[545].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES" ; }(); [&] (){ - ObSysVars[546].default_value_ = "210" ; + ObSysVars[546].default_value_ = "-1" ; ObSysVars[546].info_ = "mock for mysql5.7" ; - ObSysVars[546].name_ = "performance_schema_max_mutex_classes" ; + ObSysVars[546].name_ = "performance_schema_max_metadata_locks" ; ObSysVars[546].data_type_ = ObIntType ; ObSysVars[546].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[546].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES] = 546 ; - ObSysVars[546].base_value_ = "210" ; - ObSysVars[546].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES" ; + ObSysVars[546].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS] = 546 ; + ObSysVars[546].base_value_ = "-1" ; + ObSysVars[546].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS" ; }(); [&] (){ - ObSysVars[547].default_value_ = "-1" ; + ObSysVars[547].default_value_ = "210" ; ObSysVars[547].info_ = "mock for mysql5.7" ; - ObSysVars[547].name_ = "performance_schema_max_mutex_instances" ; + ObSysVars[547].name_ = "performance_schema_max_mutex_classes" ; ObSysVars[547].data_type_ = ObIntType ; ObSysVars[547].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[547].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES] = 547 ; - ObSysVars[547].base_value_ = "-1" ; - ObSysVars[547].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES" ; + ObSysVars[547].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES] = 547 ; + ObSysVars[547].base_value_ = "210" ; + ObSysVars[547].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES" ; }(); [&] (){ ObSysVars[548].default_value_ = "-1" ; ObSysVars[548].info_ = "mock for mysql5.7" ; - ObSysVars[548].name_ = "performance_schema_max_prepared_statements_instances" ; + ObSysVars[548].name_ = "performance_schema_max_mutex_instances" ; ObSysVars[548].data_type_ = ObIntType ; ObSysVars[548].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[548].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES] = 548 ; + ObSysVars[548].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES] = 548 ; ObSysVars[548].base_value_ = "-1" ; - ObSysVars[548].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES" ; + ObSysVars[548].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES" ; }(); [&] (){ ObSysVars[549].default_value_ = "-1" ; ObSysVars[549].info_ = "mock for mysql5.7" ; - ObSysVars[549].name_ = "performance_schema_max_program_instances" ; + ObSysVars[549].name_ = "performance_schema_max_prepared_statements_instances" ; ObSysVars[549].data_type_ = ObIntType ; ObSysVars[549].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[549].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES] = 549 ; + ObSysVars[549].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES] = 549 ; ObSysVars[549].base_value_ = "-1" ; - ObSysVars[549].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES" ; + ObSysVars[549].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES" ; }(); [&] (){ - ObSysVars[550].default_value_ = "50" ; + ObSysVars[550].default_value_ = "-1" ; ObSysVars[550].info_ = "mock for mysql5.7" ; - ObSysVars[550].name_ = "performance_schema_max_rwlock_classes" ; + ObSysVars[550].name_ = "performance_schema_max_program_instances" ; ObSysVars[550].data_type_ = ObIntType ; ObSysVars[550].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[550].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES] = 550 ; - ObSysVars[550].base_value_ = "50" ; - ObSysVars[550].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES" ; + ObSysVars[550].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES] = 550 ; + ObSysVars[550].base_value_ = "-1" ; + ObSysVars[550].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES" ; }(); [&] (){ - ObSysVars[551].default_value_ = "-1" ; + ObSysVars[551].default_value_ = "50" ; ObSysVars[551].info_ = "mock for mysql5.7" ; - ObSysVars[551].name_ = "performance_schema_max_rwlock_instances" ; + ObSysVars[551].name_ = "performance_schema_max_rwlock_classes" ; ObSysVars[551].data_type_ = ObIntType ; ObSysVars[551].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[551].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES] = 551 ; - ObSysVars[551].base_value_ = "-1" ; - ObSysVars[551].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES" ; + ObSysVars[551].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES] = 551 ; + ObSysVars[551].base_value_ = "50" ; + ObSysVars[551].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES" ; }(); [&] (){ - ObSysVars[552].default_value_ = "10" ; + ObSysVars[552].default_value_ = "-1" ; ObSysVars[552].info_ = "mock for mysql5.7" ; - ObSysVars[552].name_ = "performance_schema_max_socket_classes" ; + ObSysVars[552].name_ = "performance_schema_max_rwlock_instances" ; ObSysVars[552].data_type_ = ObIntType ; ObSysVars[552].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[552].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES] = 552 ; - ObSysVars[552].base_value_ = "10" ; - ObSysVars[552].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES" ; + ObSysVars[552].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES] = 552 ; + ObSysVars[552].base_value_ = "-1" ; + ObSysVars[552].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES" ; }(); [&] (){ - ObSysVars[553].default_value_ = "-1" ; + ObSysVars[553].default_value_ = "10" ; ObSysVars[553].info_ = "mock for mysql5.7" ; - ObSysVars[553].name_ = "performance_schema_max_socket_instances" ; + ObSysVars[553].name_ = "performance_schema_max_socket_classes" ; ObSysVars[553].data_type_ = ObIntType ; ObSysVars[553].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[553].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES] = 553 ; - ObSysVars[553].base_value_ = "-1" ; - ObSysVars[553].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES" ; + ObSysVars[553].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES] = 553 ; + ObSysVars[553].base_value_ = "10" ; + ObSysVars[553].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES" ; }(); [&] (){ - ObSysVars[554].default_value_ = "1024" ; + ObSysVars[554].default_value_ = "-1" ; ObSysVars[554].info_ = "mock for mysql5.7" ; - ObSysVars[554].name_ = "performance_schema_max_sql_text_length" ; + ObSysVars[554].name_ = "performance_schema_max_socket_instances" ; ObSysVars[554].data_type_ = ObIntType ; ObSysVars[554].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[554].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH] = 554 ; - ObSysVars[554].base_value_ = "1024" ; - ObSysVars[554].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH" ; + ObSysVars[554].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES] = 554 ; + ObSysVars[554].base_value_ = "-1" ; + ObSysVars[554].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES" ; }(); [&] (){ - ObSysVars[555].default_value_ = "150" ; + ObSysVars[555].default_value_ = "1024" ; ObSysVars[555].info_ = "mock for mysql5.7" ; - ObSysVars[555].name_ = "performance_schema_max_stage_classes" ; + ObSysVars[555].name_ = "performance_schema_max_sql_text_length" ; ObSysVars[555].data_type_ = ObIntType ; ObSysVars[555].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[555].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES] = 555 ; - ObSysVars[555].base_value_ = "150" ; - ObSysVars[555].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES" ; + ObSysVars[555].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH] = 555 ; + ObSysVars[555].base_value_ = "1024" ; + ObSysVars[555].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH" ; }(); [&] (){ - ObSysVars[556].default_value_ = "193" ; + ObSysVars[556].default_value_ = "150" ; ObSysVars[556].info_ = "mock for mysql5.7" ; - ObSysVars[556].name_ = "performance_schema_max_statement_classes" ; + ObSysVars[556].name_ = "performance_schema_max_stage_classes" ; ObSysVars[556].data_type_ = ObIntType ; ObSysVars[556].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[556].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES] = 556 ; - ObSysVars[556].base_value_ = "193" ; - ObSysVars[556].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES" ; + ObSysVars[556].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES] = 556 ; + ObSysVars[556].base_value_ = "150" ; + ObSysVars[556].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES" ; }(); [&] (){ - ObSysVars[557].default_value_ = "10" ; + ObSysVars[557].default_value_ = "193" ; ObSysVars[557].info_ = "mock for mysql5.7" ; - ObSysVars[557].name_ = "performance_schema_max_statement_stack" ; + ObSysVars[557].name_ = "performance_schema_max_statement_classes" ; ObSysVars[557].data_type_ = ObIntType ; ObSysVars[557].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[557].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK] = 557 ; - ObSysVars[557].base_value_ = "10" ; - ObSysVars[557].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK" ; + ObSysVars[557].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES] = 557 ; + ObSysVars[557].base_value_ = "193" ; + ObSysVars[557].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES" ; }(); [&] (){ - ObSysVars[558].default_value_ = "-1" ; + ObSysVars[558].default_value_ = "10" ; ObSysVars[558].info_ = "mock for mysql5.7" ; - ObSysVars[558].name_ = "performance_schema_max_table_handles" ; + ObSysVars[558].name_ = "performance_schema_max_statement_stack" ; ObSysVars[558].data_type_ = ObIntType ; ObSysVars[558].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[558].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES] = 558 ; - ObSysVars[558].base_value_ = "-1" ; - ObSysVars[558].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES" ; + ObSysVars[558].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK] = 558 ; + ObSysVars[558].base_value_ = "10" ; + ObSysVars[558].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK" ; }(); [&] (){ ObSysVars[559].default_value_ = "-1" ; ObSysVars[559].info_ = "mock for mysql5.7" ; - ObSysVars[559].name_ = "performance_schema_max_table_instances" ; + ObSysVars[559].name_ = "performance_schema_max_table_handles" ; ObSysVars[559].data_type_ = ObIntType ; ObSysVars[559].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[559].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES] = 559 ; + ObSysVars[559].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES] = 559 ; ObSysVars[559].base_value_ = "-1" ; - ObSysVars[559].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES" ; + ObSysVars[559].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES" ; }(); [&] (){ ObSysVars[560].default_value_ = "-1" ; ObSysVars[560].info_ = "mock for mysql5.7" ; - ObSysVars[560].name_ = "performance_schema_max_table_lock_stat" ; + ObSysVars[560].name_ = "performance_schema_max_table_instances" ; ObSysVars[560].data_type_ = ObIntType ; ObSysVars[560].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[560].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT] = 560 ; + ObSysVars[560].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES] = 560 ; ObSysVars[560].base_value_ = "-1" ; - ObSysVars[560].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT" ; + ObSysVars[560].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES" ; }(); [&] (){ - ObSysVars[561].default_value_ = "50" ; + ObSysVars[561].default_value_ = "-1" ; ObSysVars[561].info_ = "mock for mysql5.7" ; - ObSysVars[561].name_ = "performance_schema_max_thread_classes" ; + ObSysVars[561].name_ = "performance_schema_max_table_lock_stat" ; ObSysVars[561].data_type_ = ObIntType ; ObSysVars[561].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[561].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES] = 561 ; - ObSysVars[561].base_value_ = "50" ; - ObSysVars[561].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES" ; + ObSysVars[561].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT] = 561 ; + ObSysVars[561].base_value_ = "-1" ; + ObSysVars[561].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT" ; }(); [&] (){ - ObSysVars[562].default_value_ = "-1" ; + ObSysVars[562].default_value_ = "50" ; ObSysVars[562].info_ = "mock for mysql5.7" ; - ObSysVars[562].name_ = "performance_schema_max_thread_instances" ; + ObSysVars[562].name_ = "performance_schema_max_thread_classes" ; ObSysVars[562].data_type_ = ObIntType ; ObSysVars[562].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[562].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES] = 562 ; - ObSysVars[562].base_value_ = "-1" ; - ObSysVars[562].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES" ; + ObSysVars[562].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES] = 562 ; + ObSysVars[562].base_value_ = "50" ; + ObSysVars[562].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES" ; }(); [&] (){ - ObSysVars[563].default_value_ = "512" ; + ObSysVars[563].default_value_ = "-1" ; ObSysVars[563].info_ = "mock for mysql5.7" ; - ObSysVars[563].name_ = "performance_schema_session_connect_attrs_size" ; + ObSysVars[563].name_ = "performance_schema_max_thread_instances" ; ObSysVars[563].data_type_ = ObIntType ; ObSysVars[563].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[563].id_ = SYS_VAR_PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE] = 563 ; - ObSysVars[563].base_value_ = "512" ; - ObSysVars[563].alias_ = "OB_SV_PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE" ; + ObSysVars[563].id_ = SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES] = 563 ; + ObSysVars[563].base_value_ = "-1" ; + ObSysVars[563].alias_ = "OB_SV_PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES" ; }(); [&] (){ - ObSysVars[564].default_value_ = "-1" ; + ObSysVars[564].default_value_ = "512" ; ObSysVars[564].info_ = "mock for mysql5.7" ; - ObSysVars[564].name_ = "performance_schema_setup_actors_size" ; + ObSysVars[564].name_ = "performance_schema_session_connect_attrs_size" ; ObSysVars[564].data_type_ = ObIntType ; ObSysVars[564].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[564].id_ = SYS_VAR_PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE] = 564 ; - ObSysVars[564].base_value_ = "-1" ; - ObSysVars[564].alias_ = "OB_SV_PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE" ; + ObSysVars[564].id_ = SYS_VAR_PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE] = 564 ; + ObSysVars[564].base_value_ = "512" ; + ObSysVars[564].alias_ = "OB_SV_PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE" ; }(); [&] (){ ObSysVars[565].default_value_ = "-1" ; ObSysVars[565].info_ = "mock for mysql5.7" ; - ObSysVars[565].name_ = "performance_schema_setup_objects_size" ; + ObSysVars[565].name_ = "performance_schema_setup_actors_size" ; ObSysVars[565].data_type_ = ObIntType ; ObSysVars[565].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[565].id_ = SYS_VAR_PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE] = 565 ; + ObSysVars[565].id_ = SYS_VAR_PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE] = 565 ; ObSysVars[565].base_value_ = "-1" ; - ObSysVars[565].alias_ = "OB_SV_PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE" ; + ObSysVars[565].alias_ = "OB_SV_PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE" ; }(); [&] (){ ObSysVars[566].default_value_ = "-1" ; ObSysVars[566].info_ = "mock for mysql5.7" ; - ObSysVars[566].name_ = "performance_schema_users_size" ; + ObSysVars[566].name_ = "performance_schema_setup_objects_size" ; ObSysVars[566].data_type_ = ObIntType ; ObSysVars[566].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[566].id_ = SYS_VAR_PERFORMANCE_SCHEMA_USERS_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_USERS_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_USERS_SIZE] = 566 ; + ObSysVars[566].id_ = SYS_VAR_PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE] = 566 ; ObSysVars[566].base_value_ = "-1" ; - ObSysVars[566].alias_ = "OB_SV_PERFORMANCE_SCHEMA_USERS_SIZE" ; + ObSysVars[566].alias_ = "OB_SV_PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE" ; }(); [&] (){ - ObSysVars[567].default_value_ = "0" ; + ObSysVars[567].default_value_ = "-1" ; ObSysVars[567].info_ = "mock for mysql5.7" ; - ObSysVars[567].name_ = "version_tokens_session_number" ; + ObSysVars[567].name_ = "performance_schema_users_size" ; ObSysVars[567].data_type_ = ObIntType ; ObSysVars[567].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[567].id_ = SYS_VAR_VERSION_TOKENS_SESSION_NUMBER ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_VERSION_TOKENS_SESSION_NUMBER)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_VERSION_TOKENS_SESSION_NUMBER] = 567 ; - ObSysVars[567].base_value_ = "0" ; - ObSysVars[567].alias_ = "OB_SV_VERSION_TOKENS_SESSION_NUMBER" ; + ObSysVars[567].id_ = SYS_VAR_PERFORMANCE_SCHEMA_USERS_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PERFORMANCE_SCHEMA_USERS_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PERFORMANCE_SCHEMA_USERS_SIZE] = 567 ; + ObSysVars[567].base_value_ = "-1" ; + ObSysVars[567].alias_ = "OB_SV_PERFORMANCE_SCHEMA_USERS_SIZE" ; }(); [&] (){ - ObSysVars[568].default_value_ = "80" ; + ObSysVars[568].default_value_ = "0" ; ObSysVars[568].info_ = "mock for mysql5.7" ; - ObSysVars[568].name_ = "back_log" ; + ObSysVars[568].name_ = "version_tokens_session_number" ; ObSysVars[568].data_type_ = ObIntType ; ObSysVars[568].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[568].id_ = SYS_VAR_BACK_LOG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BACK_LOG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BACK_LOG] = 568 ; - ObSysVars[568].base_value_ = "80" ; - ObSysVars[568].alias_ = "OB_SV_BACK_LOG" ; + ObSysVars[568].id_ = SYS_VAR_VERSION_TOKENS_SESSION_NUMBER ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_VERSION_TOKENS_SESSION_NUMBER)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_VERSION_TOKENS_SESSION_NUMBER] = 568 ; + ObSysVars[568].base_value_ = "0" ; + ObSysVars[568].alias_ = "OB_SV_VERSION_TOKENS_SESSION_NUMBER" ; }(); [&] (){ - ObSysVars[569].default_value_ = "/usr/local/mysql/" ; + ObSysVars[569].default_value_ = "80" ; ObSysVars[569].info_ = "mock for mysql5.7" ; - ObSysVars[569].name_ = "basedir" ; - ObSysVars[569].data_type_ = ObVarcharType ; - ObSysVars[569].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[569].id_ = SYS_VAR_BASEDIR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BASEDIR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BASEDIR] = 569 ; - ObSysVars[569].base_value_ = "/usr/local/mysql/" ; - ObSysVars[569].alias_ = "OB_SV_BASEDIR" ; + ObSysVars[569].name_ = "back_log" ; + ObSysVars[569].data_type_ = ObIntType ; + ObSysVars[569].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[569].id_ = SYS_VAR_BACK_LOG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BACK_LOG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BACK_LOG] = 569 ; + ObSysVars[569].base_value_ = "80" ; + ObSysVars[569].alias_ = "OB_SV_BACK_LOG" ; }(); [&] (){ - ObSysVars[570].default_value_ = "*" ; + ObSysVars[570].default_value_ = "/usr/local/mysql/" ; ObSysVars[570].info_ = "mock for mysql5.7" ; - ObSysVars[570].name_ = "bind_address" ; + ObSysVars[570].name_ = "basedir" ; ObSysVars[570].data_type_ = ObVarcharType ; ObSysVars[570].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[570].id_ = SYS_VAR_BIND_ADDRESS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BIND_ADDRESS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BIND_ADDRESS] = 570 ; - ObSysVars[570].base_value_ = "*" ; - ObSysVars[570].alias_ = "OB_SV_BIND_ADDRESS" ; + ObSysVars[570].id_ = SYS_VAR_BASEDIR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BASEDIR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BASEDIR] = 570 ; + ObSysVars[570].base_value_ = "/usr/local/mysql/" ; + ObSysVars[570].alias_ = "OB_SV_BASEDIR" ; }(); [&] (){ - ObSysVars[571].default_value_ = "0" ; + ObSysVars[571].default_value_ = "*" ; ObSysVars[571].info_ = "mock for mysql5.7" ; - ObSysVars[571].name_ = "core_file" ; - ObSysVars[571].data_type_ = ObIntType ; - ObSysVars[571].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[571].id_ = SYS_VAR_CORE_FILE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_CORE_FILE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_CORE_FILE] = 571 ; - ObSysVars[571].base_value_ = "0" ; - ObSysVars[571].alias_ = "OB_SV_CORE_FILE" ; + ObSysVars[571].name_ = "bind_address" ; + ObSysVars[571].data_type_ = ObVarcharType ; + ObSysVars[571].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[571].id_ = SYS_VAR_BIND_ADDRESS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BIND_ADDRESS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BIND_ADDRESS] = 571 ; + ObSysVars[571].base_value_ = "*" ; + ObSysVars[571].alias_ = "OB_SV_BIND_ADDRESS" ; }(); [&] (){ - ObSysVars[572].default_value_ = "1" ; + ObSysVars[572].default_value_ = "0" ; ObSysVars[572].info_ = "mock for mysql5.7" ; - ObSysVars[572].name_ = "have_compress" ; + ObSysVars[572].name_ = "core_file" ; ObSysVars[572].data_type_ = ObIntType ; ObSysVars[572].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[572].id_ = SYS_VAR_HAVE_COMPRESS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HAVE_COMPRESS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_HAVE_COMPRESS] = 572 ; - ObSysVars[572].base_value_ = "1" ; - ObSysVars[572].alias_ = "OB_SV_HAVE_COMPRESS" ; + ObSysVars[572].id_ = SYS_VAR_CORE_FILE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_CORE_FILE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_CORE_FILE] = 572 ; + ObSysVars[572].base_value_ = "0" ; + ObSysVars[572].alias_ = "OB_SV_CORE_FILE" ; }(); [&] (){ - ObSysVars[573].default_value_ = "null" ; + ObSysVars[573].default_value_ = "1" ; ObSysVars[573].info_ = "mock for mysql5.7" ; - ObSysVars[573].name_ = "ignore_db_dirs" ; - ObSysVars[573].data_type_ = ObVarcharType ; + ObSysVars[573].name_ = "have_compress" ; + ObSysVars[573].data_type_ = ObIntType ; ObSysVars[573].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[573].id_ = SYS_VAR_IGNORE_DB_DIRS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_IGNORE_DB_DIRS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_IGNORE_DB_DIRS] = 573 ; - ObSysVars[573].base_value_ = "null" ; - ObSysVars[573].alias_ = "OB_SV_IGNORE_DB_DIRS" ; + ObSysVars[573].id_ = SYS_VAR_HAVE_COMPRESS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HAVE_COMPRESS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_HAVE_COMPRESS] = 573 ; + ObSysVars[573].base_value_ = "1" ; + ObSysVars[573].alias_ = "OB_SV_HAVE_COMPRESS" ; }(); [&] (){ ObSysVars[574].default_value_ = "null" ; ObSysVars[574].info_ = "mock for mysql5.7" ; - ObSysVars[574].name_ = "init_file" ; + ObSysVars[574].name_ = "ignore_db_dirs" ; ObSysVars[574].data_type_ = ObVarcharType ; ObSysVars[574].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[574].id_ = SYS_VAR_INIT_FILE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INIT_FILE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INIT_FILE] = 574 ; + ObSysVars[574].id_ = SYS_VAR_IGNORE_DB_DIRS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_IGNORE_DB_DIRS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_IGNORE_DB_DIRS] = 574 ; ObSysVars[574].base_value_ = "null" ; - ObSysVars[574].alias_ = "OB_SV_INIT_FILE" ; + ObSysVars[574].alias_ = "OB_SV_IGNORE_DB_DIRS" ; }(); [&] (){ - ObSysVars[575].default_value_ = "2000" ; + ObSysVars[575].default_value_ = "null" ; ObSysVars[575].info_ = "mock for mysql5.7" ; - ObSysVars[575].name_ = "innodb_open_files" ; - ObSysVars[575].data_type_ = ObIntType ; + ObSysVars[575].name_ = "init_file" ; + ObSysVars[575].data_type_ = ObVarcharType ; ObSysVars[575].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[575].id_ = SYS_VAR_INNODB_OPEN_FILES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_OPEN_FILES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_OPEN_FILES] = 575 ; - ObSysVars[575].base_value_ = "2000" ; - ObSysVars[575].alias_ = "OB_SV_INNODB_OPEN_FILES" ; + ObSysVars[575].id_ = SYS_VAR_INIT_FILE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INIT_FILE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INIT_FILE] = 575 ; + ObSysVars[575].base_value_ = "null" ; + ObSysVars[575].alias_ = "OB_SV_INIT_FILE" ; }(); [&] (){ - ObSysVars[576].default_value_ = "1" ; + ObSysVars[576].default_value_ = "2000" ; ObSysVars[576].info_ = "mock for mysql5.7" ; - ObSysVars[576].name_ = "innodb_page_cleaners" ; + ObSysVars[576].name_ = "innodb_open_files" ; ObSysVars[576].data_type_ = ObIntType ; ObSysVars[576].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[576].id_ = SYS_VAR_INNODB_PAGE_CLEANERS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PAGE_CLEANERS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PAGE_CLEANERS] = 576 ; - ObSysVars[576].base_value_ = "1" ; - ObSysVars[576].alias_ = "OB_SV_INNODB_PAGE_CLEANERS" ; + ObSysVars[576].id_ = SYS_VAR_INNODB_OPEN_FILES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_OPEN_FILES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_OPEN_FILES] = 576 ; + ObSysVars[576].base_value_ = "2000" ; + ObSysVars[576].alias_ = "OB_SV_INNODB_OPEN_FILES" ; }(); [&] (){ - ObSysVars[577].default_value_ = "4" ; + ObSysVars[577].default_value_ = "1" ; ObSysVars[577].info_ = "mock for mysql5.7" ; - ObSysVars[577].name_ = "innodb_purge_threads" ; + ObSysVars[577].name_ = "innodb_page_cleaners" ; ObSysVars[577].data_type_ = ObIntType ; ObSysVars[577].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[577].id_ = SYS_VAR_INNODB_PURGE_THREADS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PURGE_THREADS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PURGE_THREADS] = 577 ; - ObSysVars[577].base_value_ = "4" ; - ObSysVars[577].alias_ = "OB_SV_INNODB_PURGE_THREADS" ; + ObSysVars[577].id_ = SYS_VAR_INNODB_PAGE_CLEANERS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PAGE_CLEANERS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PAGE_CLEANERS] = 577 ; + ObSysVars[577].base_value_ = "1" ; + ObSysVars[577].alias_ = "OB_SV_INNODB_PAGE_CLEANERS" ; }(); [&] (){ ObSysVars[578].default_value_ = "4" ; ObSysVars[578].info_ = "mock for mysql5.7" ; - ObSysVars[578].name_ = "innodb_read_io_threads" ; + ObSysVars[578].name_ = "innodb_purge_threads" ; ObSysVars[578].data_type_ = ObIntType ; ObSysVars[578].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[578].id_ = SYS_VAR_INNODB_READ_IO_THREADS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_READ_IO_THREADS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_READ_IO_THREADS] = 578 ; + ObSysVars[578].id_ = SYS_VAR_INNODB_PURGE_THREADS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_PURGE_THREADS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_PURGE_THREADS] = 578 ; ObSysVars[578].base_value_ = "4" ; - ObSysVars[578].alias_ = "OB_SV_INNODB_READ_IO_THREADS" ; + ObSysVars[578].alias_ = "OB_SV_INNODB_PURGE_THREADS" ; }(); [&] (){ - ObSysVars[579].default_value_ = "1" ; + ObSysVars[579].default_value_ = "4" ; ObSysVars[579].info_ = "mock for mysql5.7" ; - ObSysVars[579].name_ = "innodb_sync_array_size" ; + ObSysVars[579].name_ = "innodb_read_io_threads" ; ObSysVars[579].data_type_ = ObIntType ; ObSysVars[579].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[579].id_ = SYS_VAR_INNODB_SYNC_ARRAY_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SYNC_ARRAY_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SYNC_ARRAY_SIZE] = 579 ; - ObSysVars[579].base_value_ = "1" ; - ObSysVars[579].alias_ = "OB_SV_INNODB_SYNC_ARRAY_SIZE" ; + ObSysVars[579].id_ = SYS_VAR_INNODB_READ_IO_THREADS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_READ_IO_THREADS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_READ_IO_THREADS] = 579 ; + ObSysVars[579].base_value_ = "4" ; + ObSysVars[579].alias_ = "OB_SV_INNODB_READ_IO_THREADS" ; }(); [&] (){ ObSysVars[580].default_value_ = "1" ; ObSysVars[580].info_ = "mock for mysql5.7" ; - ObSysVars[580].name_ = "innodb_use_native_aio" ; + ObSysVars[580].name_ = "innodb_sync_array_size" ; ObSysVars[580].data_type_ = ObIntType ; ObSysVars[580].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[580].id_ = SYS_VAR_INNODB_USE_NATIVE_AIO ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_USE_NATIVE_AIO)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_USE_NATIVE_AIO] = 580 ; + ObSysVars[580].id_ = SYS_VAR_INNODB_SYNC_ARRAY_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SYNC_ARRAY_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SYNC_ARRAY_SIZE] = 580 ; ObSysVars[580].base_value_ = "1" ; - ObSysVars[580].alias_ = "OB_SV_INNODB_USE_NATIVE_AIO" ; + ObSysVars[580].alias_ = "OB_SV_INNODB_SYNC_ARRAY_SIZE" ; }(); [&] (){ - ObSysVars[581].default_value_ = "4" ; + ObSysVars[581].default_value_ = "1" ; ObSysVars[581].info_ = "mock for mysql5.7" ; - ObSysVars[581].name_ = "innodb_write_io_threads" ; + ObSysVars[581].name_ = "innodb_use_native_aio" ; ObSysVars[581].data_type_ = ObIntType ; ObSysVars[581].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[581].id_ = SYS_VAR_INNODB_WRITE_IO_THREADS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_WRITE_IO_THREADS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_WRITE_IO_THREADS] = 581 ; - ObSysVars[581].base_value_ = "4" ; - ObSysVars[581].alias_ = "OB_SV_INNODB_WRITE_IO_THREADS" ; + ObSysVars[581].id_ = SYS_VAR_INNODB_USE_NATIVE_AIO ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_USE_NATIVE_AIO)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_USE_NATIVE_AIO] = 581 ; + ObSysVars[581].base_value_ = "1" ; + ObSysVars[581].alias_ = "OB_SV_INNODB_USE_NATIVE_AIO" ; }(); [&] (){ - ObSysVars[582].default_value_ = "1" ; + ObSysVars[582].default_value_ = "4" ; ObSysVars[582].info_ = "mock for mysql5.7" ; - ObSysVars[582].name_ = "large_files_support" ; + ObSysVars[582].name_ = "innodb_write_io_threads" ; ObSysVars[582].data_type_ = ObIntType ; ObSysVars[582].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[582].id_ = SYS_VAR_LARGE_FILES_SUPPORT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LARGE_FILES_SUPPORT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LARGE_FILES_SUPPORT] = 582 ; - ObSysVars[582].base_value_ = "1" ; - ObSysVars[582].alias_ = "OB_SV_LARGE_FILES_SUPPORT" ; + ObSysVars[582].id_ = SYS_VAR_INNODB_WRITE_IO_THREADS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_WRITE_IO_THREADS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_WRITE_IO_THREADS] = 582 ; + ObSysVars[582].base_value_ = "4" ; + ObSysVars[582].alias_ = "OB_SV_INNODB_WRITE_IO_THREADS" ; }(); [&] (){ - ObSysVars[583].default_value_ = "0" ; + ObSysVars[583].default_value_ = "1" ; ObSysVars[583].info_ = "mock for mysql5.7" ; - ObSysVars[583].name_ = "locked_in_memory" ; + ObSysVars[583].name_ = "large_files_support" ; ObSysVars[583].data_type_ = ObIntType ; ObSysVars[583].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[583].id_ = SYS_VAR_LOCKED_IN_MEMORY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOCKED_IN_MEMORY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOCKED_IN_MEMORY] = 583 ; - ObSysVars[583].base_value_ = "0" ; - ObSysVars[583].alias_ = "OB_SV_LOCKED_IN_MEMORY" ; + ObSysVars[583].id_ = SYS_VAR_LARGE_FILES_SUPPORT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LARGE_FILES_SUPPORT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LARGE_FILES_SUPPORT] = 583 ; + ObSysVars[583].base_value_ = "1" ; + ObSysVars[583].alias_ = "OB_SV_LARGE_FILES_SUPPORT" ; }(); [&] (){ - ObSysVars[584].default_value_ = "./obrd.16c.vd3-s2h6-n3.err" ; + ObSysVars[584].default_value_ = "0" ; ObSysVars[584].info_ = "mock for mysql5.7" ; - ObSysVars[584].name_ = "log_error" ; - ObSysVars[584].data_type_ = ObVarcharType ; - ObSysVars[584].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[584].id_ = SYS_VAR_LOG_ERROR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_ERROR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_ERROR] = 584 ; - ObSysVars[584].base_value_ = "./obrd.16c.vd3-s2h6-n3.err" ; - ObSysVars[584].alias_ = "OB_SV_LOG_ERROR" ; + ObSysVars[584].name_ = "locked_in_memory" ; + ObSysVars[584].data_type_ = ObIntType ; + ObSysVars[584].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[584].id_ = SYS_VAR_LOCKED_IN_MEMORY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOCKED_IN_MEMORY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOCKED_IN_MEMORY] = 584 ; + ObSysVars[584].base_value_ = "0" ; + ObSysVars[584].alias_ = "OB_SV_LOCKED_IN_MEMORY" ; }(); [&] (){ - ObSysVars[585].default_value_ = "0" ; + ObSysVars[585].default_value_ = "./obrd.16c.vd3-s2h6-n3.err" ; ObSysVars[585].info_ = "mock for mysql5.7" ; - ObSysVars[585].name_ = "named_pipe" ; - ObSysVars[585].data_type_ = ObIntType ; + ObSysVars[585].name_ = "log_error" ; + ObSysVars[585].data_type_ = ObVarcharType ; ObSysVars[585].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[585].id_ = SYS_VAR_NAMED_PIPE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NAMED_PIPE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NAMED_PIPE] = 585 ; - ObSysVars[585].base_value_ = "0" ; - ObSysVars[585].alias_ = "OB_SV_NAMED_PIPE" ; + ObSysVars[585].id_ = SYS_VAR_LOG_ERROR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_ERROR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_ERROR] = 585 ; + ObSysVars[585].base_value_ = "./obrd.16c.vd3-s2h6-n3.err" ; + ObSysVars[585].alias_ = "OB_SV_LOG_ERROR" ; }(); [&] (){ - ObSysVars[586].default_value_ = "empty string" ; + ObSysVars[586].default_value_ = "0" ; ObSysVars[586].info_ = "mock for mysql5.7" ; - ObSysVars[586].name_ = "named_pipe_full_access_group" ; - ObSysVars[586].data_type_ = ObVarcharType ; + ObSysVars[586].name_ = "named_pipe" ; + ObSysVars[586].data_type_ = ObIntType ; ObSysVars[586].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[586].id_ = SYS_VAR_NAMED_PIPE_FULL_ACCESS_GROUP ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NAMED_PIPE_FULL_ACCESS_GROUP)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NAMED_PIPE_FULL_ACCESS_GROUP] = 586 ; - ObSysVars[586].base_value_ = "empty string" ; - ObSysVars[586].alias_ = "OB_SV_NAMED_PIPE_FULL_ACCESS_GROUP" ; + ObSysVars[586].id_ = SYS_VAR_NAMED_PIPE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NAMED_PIPE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NAMED_PIPE] = 586 ; + ObSysVars[586].base_value_ = "0" ; + ObSysVars[586].alias_ = "OB_SV_NAMED_PIPE" ; }(); [&] (){ - ObSysVars[587].default_value_ = "655360" ; + ObSysVars[587].default_value_ = "empty string" ; ObSysVars[587].info_ = "mock for mysql5.7" ; - ObSysVars[587].name_ = "open_files_limit" ; - ObSysVars[587].data_type_ = ObIntType ; - ObSysVars[587].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[587].id_ = SYS_VAR_OPEN_FILES_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPEN_FILES_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OPEN_FILES_LIMIT] = 587 ; - ObSysVars[587].base_value_ = "655360" ; - ObSysVars[587].alias_ = "OB_SV_OPEN_FILES_LIMIT" ; + ObSysVars[587].name_ = "named_pipe_full_access_group" ; + ObSysVars[587].data_type_ = ObVarcharType ; + ObSysVars[587].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[587].id_ = SYS_VAR_NAMED_PIPE_FULL_ACCESS_GROUP ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NAMED_PIPE_FULL_ACCESS_GROUP)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NAMED_PIPE_FULL_ACCESS_GROUP] = 587 ; + ObSysVars[587].base_value_ = "empty string" ; + ObSysVars[587].alias_ = "OB_SV_NAMED_PIPE_FULL_ACCESS_GROUP" ; }(); [&] (){ - ObSysVars[588].default_value_ = "null" ; + ObSysVars[588].default_value_ = "655360" ; ObSysVars[588].info_ = "mock for mysql5.7" ; - ObSysVars[588].name_ = "report_host" ; - ObSysVars[588].data_type_ = ObVarcharType ; + ObSysVars[588].name_ = "open_files_limit" ; + ObSysVars[588].data_type_ = ObIntType ; ObSysVars[588].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[588].id_ = SYS_VAR_REPORT_HOST ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPORT_HOST)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_REPORT_HOST] = 588 ; - ObSysVars[588].base_value_ = "null" ; - ObSysVars[588].alias_ = "OB_SV_REPORT_HOST" ; + ObSysVars[588].id_ = SYS_VAR_OPEN_FILES_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPEN_FILES_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OPEN_FILES_LIMIT] = 588 ; + ObSysVars[588].base_value_ = "655360" ; + ObSysVars[588].alias_ = "OB_SV_OPEN_FILES_LIMIT" ; }(); [&] (){ ObSysVars[589].default_value_ = "null" ; ObSysVars[589].info_ = "mock for mysql5.7" ; - ObSysVars[589].name_ = "report_password" ; + ObSysVars[589].name_ = "report_host" ; ObSysVars[589].data_type_ = ObVarcharType ; ObSysVars[589].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[589].id_ = SYS_VAR_REPORT_PASSWORD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPORT_PASSWORD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_REPORT_PASSWORD] = 589 ; + ObSysVars[589].id_ = SYS_VAR_REPORT_HOST ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPORT_HOST)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_REPORT_HOST] = 589 ; ObSysVars[589].base_value_ = "null" ; - ObSysVars[589].alias_ = "OB_SV_REPORT_PASSWORD" ; + ObSysVars[589].alias_ = "OB_SV_REPORT_HOST" ; }(); [&] (){ ObSysVars[590].default_value_ = "null" ; ObSysVars[590].info_ = "mock for mysql5.7" ; - ObSysVars[590].name_ = "report_port" ; + ObSysVars[590].name_ = "report_password" ; ObSysVars[590].data_type_ = ObVarcharType ; ObSysVars[590].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[590].id_ = SYS_VAR_REPORT_PORT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPORT_PORT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_REPORT_PORT] = 590 ; + ObSysVars[590].id_ = SYS_VAR_REPORT_PASSWORD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPORT_PASSWORD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_REPORT_PASSWORD] = 590 ; ObSysVars[590].base_value_ = "null" ; - ObSysVars[590].alias_ = "OB_SV_REPORT_PORT" ; + ObSysVars[590].alias_ = "OB_SV_REPORT_PASSWORD" ; }(); [&] (){ ObSysVars[591].default_value_ = "null" ; ObSysVars[591].info_ = "mock for mysql5.7" ; - ObSysVars[591].name_ = "report_user" ; + ObSysVars[591].name_ = "report_port" ; ObSysVars[591].data_type_ = ObVarcharType ; ObSysVars[591].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[591].id_ = SYS_VAR_REPORT_USER ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPORT_USER)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_REPORT_USER] = 591 ; + ObSysVars[591].id_ = SYS_VAR_REPORT_PORT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPORT_PORT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_REPORT_PORT] = 591 ; ObSysVars[591].base_value_ = "null" ; - ObSysVars[591].alias_ = "OB_SV_REPORT_USER" ; + ObSysVars[591].alias_ = "OB_SV_REPORT_PORT" ; }(); [&] (){ - ObSysVars[592].default_value_ = "32" ; + ObSysVars[592].default_value_ = "null" ; ObSysVars[592].info_ = "mock for mysql5.7" ; - ObSysVars[592].name_ = "server_id_bits" ; - ObSysVars[592].data_type_ = ObIntType ; - ObSysVars[592].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[592].id_ = SYS_VAR_SERVER_ID_BITS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SERVER_ID_BITS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SERVER_ID_BITS] = 592 ; - ObSysVars[592].base_value_ = "32" ; - ObSysVars[592].alias_ = "OB_SV_SERVER_ID_BITS" ; + ObSysVars[592].name_ = "report_user" ; + ObSysVars[592].data_type_ = ObVarcharType ; + ObSysVars[592].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[592].id_ = SYS_VAR_REPORT_USER ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REPORT_USER)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_REPORT_USER] = 592 ; + ObSysVars[592].base_value_ = "null" ; + ObSysVars[592].alias_ = "OB_SV_REPORT_USER" ; }(); [&] (){ - ObSysVars[593].default_value_ = "0" ; + ObSysVars[593].default_value_ = "32" ; ObSysVars[593].info_ = "mock for mysql5.7" ; - ObSysVars[593].name_ = "shared_memory" ; + ObSysVars[593].name_ = "server_id_bits" ; ObSysVars[593].data_type_ = ObIntType ; ObSysVars[593].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[593].id_ = SYS_VAR_SHARED_MEMORY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHARED_MEMORY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SHARED_MEMORY] = 593 ; - ObSysVars[593].base_value_ = "0" ; - ObSysVars[593].alias_ = "OB_SV_SHARED_MEMORY" ; + ObSysVars[593].id_ = SYS_VAR_SERVER_ID_BITS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SERVER_ID_BITS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SERVER_ID_BITS] = 593 ; + ObSysVars[593].base_value_ = "32" ; + ObSysVars[593].alias_ = "OB_SV_SERVER_ID_BITS" ; }(); [&] (){ - ObSysVars[594].default_value_ = "MYSQL" ; + ObSysVars[594].default_value_ = "0" ; ObSysVars[594].info_ = "mock for mysql5.7" ; - ObSysVars[594].name_ = "shared_memory_base_name" ; - ObSysVars[594].data_type_ = ObVarcharType ; + ObSysVars[594].name_ = "shared_memory" ; + ObSysVars[594].data_type_ = ObIntType ; ObSysVars[594].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[594].id_ = SYS_VAR_SHARED_MEMORY_BASE_NAME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHARED_MEMORY_BASE_NAME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SHARED_MEMORY_BASE_NAME] = 594 ; - ObSysVars[594].base_value_ = "MYSQL" ; - ObSysVars[594].alias_ = "OB_SV_SHARED_MEMORY_BASE_NAME" ; + ObSysVars[594].id_ = SYS_VAR_SHARED_MEMORY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHARED_MEMORY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SHARED_MEMORY] = 594 ; + ObSysVars[594].base_value_ = "0" ; + ObSysVars[594].alias_ = "OB_SV_SHARED_MEMORY" ; }(); [&] (){ - ObSysVars[595].default_value_ = "0" ; + ObSysVars[595].default_value_ = "MYSQL" ; ObSysVars[595].info_ = "mock for mysql5.7" ; - ObSysVars[595].name_ = "skip_name_resolve" ; - ObSysVars[595].data_type_ = ObIntType ; - ObSysVars[595].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[595].id_ = SYS_VAR_SKIP_NAME_RESOLVE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_NAME_RESOLVE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_NAME_RESOLVE] = 595 ; - ObSysVars[595].base_value_ = "0" ; - ObSysVars[595].alias_ = "OB_SV_SKIP_NAME_RESOLVE" ; + ObSysVars[595].name_ = "shared_memory_base_name" ; + ObSysVars[595].data_type_ = ObVarcharType ; + ObSysVars[595].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[595].id_ = SYS_VAR_SHARED_MEMORY_BASE_NAME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHARED_MEMORY_BASE_NAME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SHARED_MEMORY_BASE_NAME] = 595 ; + ObSysVars[595].base_value_ = "MYSQL" ; + ObSysVars[595].alias_ = "OB_SV_SHARED_MEMORY_BASE_NAME" ; }(); [&] (){ ObSysVars[596].default_value_ = "0" ; ObSysVars[596].info_ = "mock for mysql5.7" ; - ObSysVars[596].name_ = "skip_networking" ; + ObSysVars[596].name_ = "skip_name_resolve" ; ObSysVars[596].data_type_ = ObIntType ; ObSysVars[596].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[596].id_ = SYS_VAR_SKIP_NETWORKING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_NETWORKING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_NETWORKING] = 596 ; + ObSysVars[596].id_ = SYS_VAR_SKIP_NAME_RESOLVE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_NAME_RESOLVE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_NAME_RESOLVE] = 596 ; ObSysVars[596].base_value_ = "0" ; - ObSysVars[596].alias_ = "OB_SV_SKIP_NETWORKING" ; + ObSysVars[596].alias_ = "OB_SV_SKIP_NAME_RESOLVE" ; }(); [&] (){ - ObSysVars[597].default_value_ = "1" ; + ObSysVars[597].default_value_ = "0" ; ObSysVars[597].info_ = "mock for mysql5.7" ; - ObSysVars[597].name_ = "thread_handling" ; + ObSysVars[597].name_ = "skip_networking" ; ObSysVars[597].data_type_ = ObIntType ; - ObSysVars[597].enum_names_ = "[u'no-threads', u'one-thread-per-connection', u'loaded-dynamically']" ; ObSysVars[597].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[597].id_ = SYS_VAR_THREAD_HANDLING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_HANDLING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_HANDLING] = 597 ; - ObSysVars[597].base_value_ = "1" ; - ObSysVars[597].alias_ = "OB_SV_THREAD_HANDLING" ; + ObSysVars[597].id_ = SYS_VAR_SKIP_NETWORKING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_NETWORKING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_NETWORKING] = 597 ; + ObSysVars[597].base_value_ = "0" ; + ObSysVars[597].alias_ = "OB_SV_SKIP_NETWORKING" ; }(); [&] (){ - ObSysVars[598].default_value_ = "0" ; + ObSysVars[598].default_value_ = "1" ; ObSysVars[598].info_ = "mock for mysql5.7" ; - ObSysVars[598].name_ = "thread_pool_algorithm" ; + ObSysVars[598].name_ = "thread_handling" ; ObSysVars[598].data_type_ = ObIntType ; - ObSysVars[598].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[598].id_ = SYS_VAR_THREAD_POOL_ALGORITHM ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_ALGORITHM)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_ALGORITHM] = 598 ; - ObSysVars[598].base_value_ = "0" ; - ObSysVars[598].alias_ = "OB_SV_THREAD_POOL_ALGORITHM" ; + ObSysVars[598].enum_names_ = "[u'no-threads', u'one-thread-per-connection', u'loaded-dynamically']" ; + ObSysVars[598].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[598].id_ = SYS_VAR_THREAD_HANDLING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_HANDLING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_HANDLING] = 598 ; + ObSysVars[598].base_value_ = "1" ; + ObSysVars[598].alias_ = "OB_SV_THREAD_HANDLING" ; }(); [&] (){ - ObSysVars[599].default_value_ = "16" ; + ObSysVars[599].default_value_ = "0" ; ObSysVars[599].info_ = "mock for mysql5.7" ; - ObSysVars[599].name_ = "thread_pool_size" ; + ObSysVars[599].name_ = "thread_pool_algorithm" ; ObSysVars[599].data_type_ = ObIntType ; ObSysVars[599].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[599].id_ = SYS_VAR_THREAD_POOL_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_SIZE] = 599 ; - ObSysVars[599].base_value_ = "16" ; - ObSysVars[599].alias_ = "OB_SV_THREAD_POOL_SIZE" ; + ObSysVars[599].id_ = SYS_VAR_THREAD_POOL_ALGORITHM ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_ALGORITHM)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_ALGORITHM] = 599 ; + ObSysVars[599].base_value_ = "0" ; + ObSysVars[599].alias_ = "OB_SV_THREAD_POOL_ALGORITHM" ; }(); [&] (){ - ObSysVars[600].default_value_ = "262144" ; + ObSysVars[600].default_value_ = "16" ; ObSysVars[600].info_ = "mock for mysql5.7" ; - ObSysVars[600].name_ = "thread_stack" ; + ObSysVars[600].name_ = "thread_pool_size" ; ObSysVars[600].data_type_ = ObIntType ; - ObSysVars[600].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[600].id_ = SYS_VAR_THREAD_STACK ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_STACK)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_STACK] = 600 ; - ObSysVars[600].base_value_ = "262144" ; - ObSysVars[600].alias_ = "OB_SV_THREAD_STACK" ; + ObSysVars[600].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[600].id_ = SYS_VAR_THREAD_POOL_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_POOL_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_POOL_SIZE] = 600 ; + ObSysVars[600].base_value_ = "16" ; + ObSysVars[600].alias_ = "OB_SV_THREAD_POOL_SIZE" ; }(); [&] (){ - ObSysVars[601].default_value_ = "1" ; + ObSysVars[601].default_value_ = "262144" ; ObSysVars[601].info_ = "mock for mysql5.7" ; - ObSysVars[601].name_ = "binlog_gtid_simple_recovery" ; + ObSysVars[601].name_ = "thread_stack" ; ObSysVars[601].data_type_ = ObIntType ; ObSysVars[601].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[601].id_ = SYS_VAR_BINLOG_GTID_SIMPLE_RECOVERY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_GTID_SIMPLE_RECOVERY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_GTID_SIMPLE_RECOVERY] = 601 ; - ObSysVars[601].base_value_ = "1" ; - ObSysVars[601].alias_ = "OB_SV_BINLOG_GTID_SIMPLE_RECOVERY" ; + ObSysVars[601].id_ = SYS_VAR_THREAD_STACK ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_THREAD_STACK)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_THREAD_STACK] = 601 ; + ObSysVars[601].base_value_ = "262144" ; + ObSysVars[601].alias_ = "OB_SV_THREAD_STACK" ; }(); [&] (){ - ObSysVars[602].default_value_ = "0" ; + ObSysVars[602].default_value_ = "1" ; ObSysVars[602].info_ = "mock for mysql5.7" ; - ObSysVars[602].name_ = "innodb_api_enable_binlog" ; + ObSysVars[602].name_ = "binlog_gtid_simple_recovery" ; ObSysVars[602].data_type_ = ObIntType ; ObSysVars[602].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[602].id_ = SYS_VAR_INNODB_API_ENABLE_BINLOG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_API_ENABLE_BINLOG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_API_ENABLE_BINLOG] = 602 ; - ObSysVars[602].base_value_ = "0" ; - ObSysVars[602].alias_ = "OB_SV_INNODB_API_ENABLE_BINLOG" ; + ObSysVars[602].id_ = SYS_VAR_BINLOG_GTID_SIMPLE_RECOVERY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BINLOG_GTID_SIMPLE_RECOVERY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BINLOG_GTID_SIMPLE_RECOVERY] = 602 ; + ObSysVars[602].base_value_ = "1" ; + ObSysVars[602].alias_ = "OB_SV_BINLOG_GTID_SIMPLE_RECOVERY" ; }(); [&] (){ ObSysVars[603].default_value_ = "0" ; ObSysVars[603].info_ = "mock for mysql5.7" ; - ObSysVars[603].name_ = "innodb_locks_unsafe_for_binlog" ; + ObSysVars[603].name_ = "innodb_api_enable_binlog" ; ObSysVars[603].data_type_ = ObIntType ; ObSysVars[603].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[603].id_ = SYS_VAR_INNODB_LOCKS_UNSAFE_FOR_BINLOG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOCKS_UNSAFE_FOR_BINLOG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOCKS_UNSAFE_FOR_BINLOG] = 603 ; + ObSysVars[603].id_ = SYS_VAR_INNODB_API_ENABLE_BINLOG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_API_ENABLE_BINLOG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_API_ENABLE_BINLOG] = 603 ; ObSysVars[603].base_value_ = "0" ; - ObSysVars[603].alias_ = "OB_SV_INNODB_LOCKS_UNSAFE_FOR_BINLOG" ; + ObSysVars[603].alias_ = "OB_SV_INNODB_API_ENABLE_BINLOG" ; }(); [&] (){ - ObSysVars[604].default_value_ = "16777216" ; + ObSysVars[604].default_value_ = "0" ; ObSysVars[604].info_ = "mock for mysql5.7" ; - ObSysVars[604].name_ = "innodb_log_buffer_size" ; + ObSysVars[604].name_ = "innodb_locks_unsafe_for_binlog" ; ObSysVars[604].data_type_ = ObIntType ; ObSysVars[604].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[604].id_ = SYS_VAR_INNODB_LOG_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_BUFFER_SIZE] = 604 ; - ObSysVars[604].base_value_ = "16777216" ; - ObSysVars[604].alias_ = "OB_SV_INNODB_LOG_BUFFER_SIZE" ; + ObSysVars[604].id_ = SYS_VAR_INNODB_LOCKS_UNSAFE_FOR_BINLOG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOCKS_UNSAFE_FOR_BINLOG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOCKS_UNSAFE_FOR_BINLOG] = 604 ; + ObSysVars[604].base_value_ = "0" ; + ObSysVars[604].alias_ = "OB_SV_INNODB_LOCKS_UNSAFE_FOR_BINLOG" ; }(); [&] (){ - ObSysVars[605].default_value_ = "2" ; + ObSysVars[605].default_value_ = "16777216" ; ObSysVars[605].info_ = "mock for mysql5.7" ; - ObSysVars[605].name_ = "innodb_log_files_in_group" ; + ObSysVars[605].name_ = "innodb_log_buffer_size" ; ObSysVars[605].data_type_ = ObIntType ; ObSysVars[605].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[605].id_ = SYS_VAR_INNODB_LOG_FILES_IN_GROUP ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_FILES_IN_GROUP)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_FILES_IN_GROUP] = 605 ; - ObSysVars[605].base_value_ = "2" ; - ObSysVars[605].alias_ = "OB_SV_INNODB_LOG_FILES_IN_GROUP" ; + ObSysVars[605].id_ = SYS_VAR_INNODB_LOG_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_BUFFER_SIZE] = 605 ; + ObSysVars[605].base_value_ = "16777216" ; + ObSysVars[605].alias_ = "OB_SV_INNODB_LOG_BUFFER_SIZE" ; }(); [&] (){ - ObSysVars[606].default_value_ = "50331648" ; + ObSysVars[606].default_value_ = "2" ; ObSysVars[606].info_ = "mock for mysql5.7" ; - ObSysVars[606].name_ = "innodb_log_file_size" ; + ObSysVars[606].name_ = "innodb_log_files_in_group" ; ObSysVars[606].data_type_ = ObIntType ; ObSysVars[606].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[606].id_ = SYS_VAR_INNODB_LOG_FILE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_FILE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_FILE_SIZE] = 606 ; - ObSysVars[606].base_value_ = "50331648" ; - ObSysVars[606].alias_ = "OB_SV_INNODB_LOG_FILE_SIZE" ; + ObSysVars[606].id_ = SYS_VAR_INNODB_LOG_FILES_IN_GROUP ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_FILES_IN_GROUP)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_FILES_IN_GROUP] = 606 ; + ObSysVars[606].base_value_ = "2" ; + ObSysVars[606].alias_ = "OB_SV_INNODB_LOG_FILES_IN_GROUP" ; }(); [&] (){ - ObSysVars[607].default_value_ = "./" ; + ObSysVars[607].default_value_ = "50331648" ; ObSysVars[607].info_ = "mock for mysql5.7" ; - ObSysVars[607].name_ = "innodb_log_group_home_dir" ; - ObSysVars[607].data_type_ = ObVarcharType ; - ObSysVars[607].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[607].id_ = SYS_VAR_INNODB_LOG_GROUP_HOME_DIR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_GROUP_HOME_DIR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_GROUP_HOME_DIR] = 607 ; - ObSysVars[607].base_value_ = "./" ; - ObSysVars[607].alias_ = "OB_SV_INNODB_LOG_GROUP_HOME_DIR" ; + ObSysVars[607].name_ = "innodb_log_file_size" ; + ObSysVars[607].data_type_ = ObIntType ; + ObSysVars[607].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[607].id_ = SYS_VAR_INNODB_LOG_FILE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_FILE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_FILE_SIZE] = 607 ; + ObSysVars[607].base_value_ = "50331648" ; + ObSysVars[607].alias_ = "OB_SV_INNODB_LOG_FILE_SIZE" ; }(); [&] (){ ObSysVars[608].default_value_ = "./" ; ObSysVars[608].info_ = "mock for mysql5.7" ; - ObSysVars[608].name_ = "innodb_undo_directory" ; + ObSysVars[608].name_ = "innodb_log_group_home_dir" ; ObSysVars[608].data_type_ = ObVarcharType ; ObSysVars[608].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[608].id_ = SYS_VAR_INNODB_UNDO_DIRECTORY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_UNDO_DIRECTORY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_UNDO_DIRECTORY] = 608 ; + ObSysVars[608].id_ = SYS_VAR_INNODB_LOG_GROUP_HOME_DIR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LOG_GROUP_HOME_DIR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LOG_GROUP_HOME_DIR] = 608 ; ObSysVars[608].base_value_ = "./" ; - ObSysVars[608].alias_ = "OB_SV_INNODB_UNDO_DIRECTORY" ; + ObSysVars[608].alias_ = "OB_SV_INNODB_LOG_GROUP_HOME_DIR" ; }(); [&] (){ - ObSysVars[609].default_value_ = "0" ; + ObSysVars[609].default_value_ = "./" ; ObSysVars[609].info_ = "mock for mysql5.7" ; - ObSysVars[609].name_ = "innodb_undo_tablespaces" ; - ObSysVars[609].data_type_ = ObIntType ; - ObSysVars[609].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[609].id_ = SYS_VAR_INNODB_UNDO_TABLESPACES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_UNDO_TABLESPACES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_UNDO_TABLESPACES] = 609 ; - ObSysVars[609].base_value_ = "0" ; - ObSysVars[609].alias_ = "OB_SV_INNODB_UNDO_TABLESPACES" ; + ObSysVars[609].name_ = "innodb_undo_directory" ; + ObSysVars[609].data_type_ = ObVarcharType ; + ObSysVars[609].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[609].id_ = SYS_VAR_INNODB_UNDO_DIRECTORY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_UNDO_DIRECTORY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_UNDO_DIRECTORY] = 609 ; + ObSysVars[609].base_value_ = "./" ; + ObSysVars[609].alias_ = "OB_SV_INNODB_UNDO_DIRECTORY" ; }(); [&] (){ - ObSysVars[610].default_value_ = "null" ; + ObSysVars[610].default_value_ = "0" ; ObSysVars[610].info_ = "mock for mysql5.7" ; - ObSysVars[610].name_ = "log_bin_basename" ; - ObSysVars[610].data_type_ = ObVarcharType ; + ObSysVars[610].name_ = "innodb_undo_tablespaces" ; + ObSysVars[610].data_type_ = ObIntType ; ObSysVars[610].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[610].id_ = SYS_VAR_LOG_BIN_BASENAME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BIN_BASENAME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BIN_BASENAME] = 610 ; - ObSysVars[610].base_value_ = "null" ; - ObSysVars[610].alias_ = "OB_SV_LOG_BIN_BASENAME" ; + ObSysVars[610].id_ = SYS_VAR_INNODB_UNDO_TABLESPACES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_UNDO_TABLESPACES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_UNDO_TABLESPACES] = 610 ; + ObSysVars[610].base_value_ = "0" ; + ObSysVars[610].alias_ = "OB_SV_INNODB_UNDO_TABLESPACES" ; }(); [&] (){ ObSysVars[611].default_value_ = "null" ; ObSysVars[611].info_ = "mock for mysql5.7" ; - ObSysVars[611].name_ = "log_bin_index" ; + ObSysVars[611].name_ = "log_bin_basename" ; ObSysVars[611].data_type_ = ObVarcharType ; ObSysVars[611].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[611].id_ = SYS_VAR_LOG_BIN_INDEX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BIN_INDEX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BIN_INDEX] = 611 ; + ObSysVars[611].id_ = SYS_VAR_LOG_BIN_BASENAME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BIN_BASENAME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BIN_BASENAME] = 611 ; ObSysVars[611].base_value_ = "null" ; - ObSysVars[611].alias_ = "OB_SV_LOG_BIN_INDEX" ; + ObSysVars[611].alias_ = "OB_SV_LOG_BIN_BASENAME" ; }(); [&] (){ - ObSysVars[612].default_value_ = "0" ; + ObSysVars[612].default_value_ = "null" ; ObSysVars[612].info_ = "mock for mysql5.7" ; - ObSysVars[612].name_ = "log_slave_updates" ; - ObSysVars[612].data_type_ = ObIntType ; - ObSysVars[612].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[612].id_ = SYS_VAR_LOG_SLAVE_UPDATES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SLAVE_UPDATES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SLAVE_UPDATES] = 612 ; - ObSysVars[612].base_value_ = "0" ; - ObSysVars[612].alias_ = "OB_SV_LOG_SLAVE_UPDATES" ; + ObSysVars[612].name_ = "log_bin_index" ; + ObSysVars[612].data_type_ = ObVarcharType ; + ObSysVars[612].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[612].id_ = SYS_VAR_LOG_BIN_INDEX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_BIN_INDEX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_BIN_INDEX] = 612 ; + ObSysVars[612].base_value_ = "null" ; + ObSysVars[612].alias_ = "OB_SV_LOG_BIN_INDEX" ; }(); [&] (){ - ObSysVars[613].default_value_ = "null" ; + ObSysVars[613].default_value_ = "0" ; ObSysVars[613].info_ = "mock for mysql5.7" ; - ObSysVars[613].name_ = "relay_log" ; - ObSysVars[613].data_type_ = ObVarcharType ; - ObSysVars[613].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[613].id_ = SYS_VAR_RELAY_LOG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG] = 613 ; - ObSysVars[613].base_value_ = "null" ; - ObSysVars[613].alias_ = "OB_SV_RELAY_LOG" ; + ObSysVars[613].name_ = "log_slave_updates" ; + ObSysVars[613].data_type_ = ObIntType ; + ObSysVars[613].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[613].id_ = SYS_VAR_LOG_SLAVE_UPDATES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOG_SLAVE_UPDATES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOG_SLAVE_UPDATES] = 613 ; + ObSysVars[613].base_value_ = "0" ; + ObSysVars[613].alias_ = "OB_SV_LOG_SLAVE_UPDATES" ; }(); [&] (){ - ObSysVars[614].default_value_ = "/usr/local/mysql/data/obrd-relay-bin" ; + ObSysVars[614].default_value_ = "null" ; ObSysVars[614].info_ = "mock for mysql5.7" ; - ObSysVars[614].name_ = "relay_log_basename" ; + ObSysVars[614].name_ = "relay_log" ; ObSysVars[614].data_type_ = ObVarcharType ; - ObSysVars[614].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[614].id_ = SYS_VAR_RELAY_LOG_BASENAME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_BASENAME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_BASENAME] = 614 ; - ObSysVars[614].base_value_ = "/usr/local/mysql/data/obrd-relay-bin" ; - ObSysVars[614].alias_ = "OB_SV_RELAY_LOG_BASENAME" ; + ObSysVars[614].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[614].id_ = SYS_VAR_RELAY_LOG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG] = 614 ; + ObSysVars[614].base_value_ = "null" ; + ObSysVars[614].alias_ = "OB_SV_RELAY_LOG" ; }(); [&] (){ - ObSysVars[615].default_value_ = "/usr/local/mysql/data/obrd-relay-bin.index" ; + ObSysVars[615].default_value_ = "/usr/local/mysql/data/obrd-relay-bin" ; ObSysVars[615].info_ = "mock for mysql5.7" ; - ObSysVars[615].name_ = "relay_log_index" ; + ObSysVars[615].name_ = "relay_log_basename" ; ObSysVars[615].data_type_ = ObVarcharType ; ObSysVars[615].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[615].id_ = SYS_VAR_RELAY_LOG_INDEX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_INDEX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_INDEX] = 615 ; - ObSysVars[615].base_value_ = "/usr/local/mysql/data/obrd-relay-bin.index" ; - ObSysVars[615].alias_ = "OB_SV_RELAY_LOG_INDEX" ; + ObSysVars[615].id_ = SYS_VAR_RELAY_LOG_BASENAME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_BASENAME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_BASENAME] = 615 ; + ObSysVars[615].base_value_ = "/usr/local/mysql/data/obrd-relay-bin" ; + ObSysVars[615].alias_ = "OB_SV_RELAY_LOG_BASENAME" ; }(); [&] (){ - ObSysVars[616].default_value_ = "relay-log.info" ; + ObSysVars[616].default_value_ = "/usr/local/mysql/data/obrd-relay-bin.index" ; ObSysVars[616].info_ = "mock for mysql5.7" ; - ObSysVars[616].name_ = "relay_log_info_file" ; + ObSysVars[616].name_ = "relay_log_index" ; ObSysVars[616].data_type_ = ObVarcharType ; - ObSysVars[616].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[616].id_ = SYS_VAR_RELAY_LOG_INFO_FILE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_INFO_FILE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_INFO_FILE] = 616 ; - ObSysVars[616].base_value_ = "relay-log.info" ; - ObSysVars[616].alias_ = "OB_SV_RELAY_LOG_INFO_FILE" ; + ObSysVars[616].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[616].id_ = SYS_VAR_RELAY_LOG_INDEX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_INDEX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_INDEX] = 616 ; + ObSysVars[616].base_value_ = "/usr/local/mysql/data/obrd-relay-bin.index" ; + ObSysVars[616].alias_ = "OB_SV_RELAY_LOG_INDEX" ; }(); [&] (){ - ObSysVars[617].default_value_ = "0" ; + ObSysVars[617].default_value_ = "relay-log.info" ; ObSysVars[617].info_ = "mock for mysql5.7" ; - ObSysVars[617].name_ = "relay_log_recovery" ; - ObSysVars[617].data_type_ = ObIntType ; + ObSysVars[617].name_ = "relay_log_info_file" ; + ObSysVars[617].data_type_ = ObVarcharType ; ObSysVars[617].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[617].id_ = SYS_VAR_RELAY_LOG_RECOVERY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_RECOVERY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_RECOVERY] = 617 ; - ObSysVars[617].base_value_ = "0" ; - ObSysVars[617].alias_ = "OB_SV_RELAY_LOG_RECOVERY" ; + ObSysVars[617].id_ = SYS_VAR_RELAY_LOG_INFO_FILE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_INFO_FILE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_INFO_FILE] = 617 ; + ObSysVars[617].base_value_ = "relay-log.info" ; + ObSysVars[617].alias_ = "OB_SV_RELAY_LOG_INFO_FILE" ; }(); [&] (){ ObSysVars[618].default_value_ = "0" ; ObSysVars[618].info_ = "mock for mysql5.7" ; - ObSysVars[618].name_ = "relay_log_space_limit" ; + ObSysVars[618].name_ = "relay_log_recovery" ; ObSysVars[618].data_type_ = ObIntType ; ObSysVars[618].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[618].id_ = SYS_VAR_RELAY_LOG_SPACE_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_SPACE_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_SPACE_LIMIT] = 618 ; + ObSysVars[618].id_ = SYS_VAR_RELAY_LOG_RECOVERY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_RECOVERY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_RECOVERY] = 618 ; ObSysVars[618].base_value_ = "0" ; - ObSysVars[618].alias_ = "OB_SV_RELAY_LOG_SPACE_LIMIT" ; + ObSysVars[618].alias_ = "OB_SV_RELAY_LOG_RECOVERY" ; }(); [&] (){ ObSysVars[619].default_value_ = "0" ; - ObSysVars[619].info_ = "This variable specifies how to use delayed key writes. It applies only to MyISAM tables. Delayed key writing causes key buffers not to be flushed between writes, merely simulates MySQL 5.7" ; - ObSysVars[619].name_ = "delay_key_write" ; + ObSysVars[619].info_ = "mock for mysql5.7" ; + ObSysVars[619].name_ = "relay_log_space_limit" ; ObSysVars[619].data_type_ = ObIntType ; - ObSysVars[619].enum_names_ = "[u'ON', u'OFF', u'ALL']" ; - ObSysVars[619].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[619].id_ = SYS_VAR_DELAY_KEY_WRITE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DELAY_KEY_WRITE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DELAY_KEY_WRITE] = 619 ; + ObSysVars[619].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[619].id_ = SYS_VAR_RELAY_LOG_SPACE_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RELAY_LOG_SPACE_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RELAY_LOG_SPACE_LIMIT] = 619 ; ObSysVars[619].base_value_ = "0" ; - ObSysVars[619].alias_ = "OB_SV_DELAY_KEY_WRITE" ; + ObSysVars[619].alias_ = "OB_SV_RELAY_LOG_SPACE_LIMIT" ; }(); [&] (){ ObSysVars[620].default_value_ = "0" ; - ObSysVars[620].info_ = "When this option is enabled, index key prefixes longer than 767 bytes (up to 3072 bytes) are allowed for InnoDB tables that use DYNAMIC or COMPRESSED row format, merely simulates MySQL 5.7" ; - ObSysVars[620].name_ = "innodb_large_prefix" ; + ObSysVars[620].info_ = "This variable specifies how to use delayed key writes. It applies only to MyISAM tables. Delayed key writing causes key buffers not to be flushed between writes, merely simulates MySQL 5.7" ; + ObSysVars[620].name_ = "delay_key_write" ; ObSysVars[620].data_type_ = ObIntType ; - ObSysVars[620].enum_names_ = "[u'ON', u'OFF']" ; + ObSysVars[620].enum_names_ = "[u'ON', u'OFF', u'ALL']" ; ObSysVars[620].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[620].id_ = SYS_VAR_INNODB_LARGE_PREFIX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LARGE_PREFIX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LARGE_PREFIX] = 620 ; + ObSysVars[620].id_ = SYS_VAR_DELAY_KEY_WRITE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DELAY_KEY_WRITE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DELAY_KEY_WRITE] = 620 ; ObSysVars[620].base_value_ = "0" ; - ObSysVars[620].alias_ = "OB_SV_INNODB_LARGE_PREFIX" ; + ObSysVars[620].alias_ = "OB_SV_DELAY_KEY_WRITE" ; }(); [&] (){ - ObSysVars[621].default_value_ = "8388608" ; - ObSysVars[621].info_ = "The size of the buffer used for index blocks, merely simulates MySQL 5.7" ; - ObSysVars[621].name_ = "key_buffer_size" ; + ObSysVars[621].default_value_ = "0" ; + ObSysVars[621].info_ = "When this option is enabled, index key prefixes longer than 767 bytes (up to 3072 bytes) are allowed for InnoDB tables that use DYNAMIC or COMPRESSED row format, merely simulates MySQL 5.7" ; + ObSysVars[621].name_ = "innodb_large_prefix" ; ObSysVars[621].data_type_ = ObIntType ; - ObSysVars[621].min_val_ = "0" ; - ObSysVars[621].max_val_ = "4294967295" ; + ObSysVars[621].enum_names_ = "[u'ON', u'OFF']" ; ObSysVars[621].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[621].id_ = SYS_VAR_KEY_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEY_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_KEY_BUFFER_SIZE] = 621 ; - ObSysVars[621].base_value_ = "8388608" ; - ObSysVars[621].alias_ = "OB_SV_KEY_BUFFER_SIZE" ; + ObSysVars[621].id_ = SYS_VAR_INNODB_LARGE_PREFIX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_LARGE_PREFIX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_LARGE_PREFIX] = 621 ; + ObSysVars[621].base_value_ = "0" ; + ObSysVars[621].alias_ = "OB_SV_INNODB_LARGE_PREFIX" ; }(); [&] (){ - ObSysVars[622].default_value_ = "300" ; - ObSysVars[622].info_ = "This value controls the demotion of buffers from the hot sublist of a key cache to the warm sublist. Lower values cause demotion to happen more quickly, merely simulates MySQL 5.7" ; - ObSysVars[622].name_ = "key_cache_age_threshold" ; - ObSysVars[622].data_type_ = ObUInt64Type ; - ObSysVars[622].min_val_ = "100" ; - ObSysVars[622].max_val_ = "18446744073709551516" ; + ObSysVars[622].default_value_ = "8388608" ; + ObSysVars[622].info_ = "The size of the buffer used for index blocks, merely simulates MySQL 5.7" ; + ObSysVars[622].name_ = "key_buffer_size" ; + ObSysVars[622].data_type_ = ObIntType ; + ObSysVars[622].min_val_ = "0" ; + ObSysVars[622].max_val_ = "4294967295" ; ObSysVars[622].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[622].id_ = SYS_VAR_KEY_CACHE_AGE_THRESHOLD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEY_CACHE_AGE_THRESHOLD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_KEY_CACHE_AGE_THRESHOLD] = 622 ; - ObSysVars[622].base_value_ = "300" ; - ObSysVars[622].alias_ = "OB_SV_KEY_CACHE_AGE_THRESHOLD" ; + ObSysVars[622].id_ = SYS_VAR_KEY_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEY_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_KEY_BUFFER_SIZE] = 622 ; + ObSysVars[622].base_value_ = "8388608" ; + ObSysVars[622].alias_ = "OB_SV_KEY_BUFFER_SIZE" ; }(); [&] (){ - ObSysVars[623].default_value_ = "100" ; - ObSysVars[623].info_ = "The division point between the hot and warm sublists of the key cache buffer list, merely simulates MySQL 5.7" ; - ObSysVars[623].name_ = "key_cache_division_limit" ; - ObSysVars[623].data_type_ = ObIntType ; - ObSysVars[623].min_val_ = "1" ; - ObSysVars[623].max_val_ = "100" ; + ObSysVars[623].default_value_ = "300" ; + ObSysVars[623].info_ = "This value controls the demotion of buffers from the hot sublist of a key cache to the warm sublist. Lower values cause demotion to happen more quickly, merely simulates MySQL 5.7" ; + ObSysVars[623].name_ = "key_cache_age_threshold" ; + ObSysVars[623].data_type_ = ObUInt64Type ; + ObSysVars[623].min_val_ = "100" ; + ObSysVars[623].max_val_ = "18446744073709551516" ; ObSysVars[623].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[623].id_ = SYS_VAR_KEY_CACHE_DIVISION_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEY_CACHE_DIVISION_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_KEY_CACHE_DIVISION_LIMIT] = 623 ; - ObSysVars[623].base_value_ = "100" ; - ObSysVars[623].alias_ = "OB_SV_KEY_CACHE_DIVISION_LIMIT" ; + ObSysVars[623].id_ = SYS_VAR_KEY_CACHE_AGE_THRESHOLD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEY_CACHE_AGE_THRESHOLD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_KEY_CACHE_AGE_THRESHOLD] = 623 ; + ObSysVars[623].base_value_ = "300" ; + ObSysVars[623].alias_ = "OB_SV_KEY_CACHE_AGE_THRESHOLD" ; }(); [&] (){ - ObSysVars[624].default_value_ = "18446744073709551615" ; - ObSysVars[624].info_ = "Limit the assumed maximum number of seeks when looking up rows based on a key, merely simulates MySQL 5.7" ; - ObSysVars[624].name_ = "max_seeks_for_key" ; - ObSysVars[624].data_type_ = ObUInt64Type ; + ObSysVars[624].default_value_ = "100" ; + ObSysVars[624].info_ = "The division point between the hot and warm sublists of the key cache buffer list, merely simulates MySQL 5.7" ; + ObSysVars[624].name_ = "key_cache_division_limit" ; + ObSysVars[624].data_type_ = ObIntType ; ObSysVars[624].min_val_ = "1" ; - ObSysVars[624].max_val_ = "18446744073709551615" ; - ObSysVars[624].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[624].id_ = SYS_VAR_MAX_SEEKS_FOR_KEY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_SEEKS_FOR_KEY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_SEEKS_FOR_KEY] = 624 ; - ObSysVars[624].base_value_ = "18446744073709551615" ; - ObSysVars[624].alias_ = "OB_SV_MAX_SEEKS_FOR_KEY" ; + ObSysVars[624].max_val_ = "100" ; + ObSysVars[624].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[624].id_ = SYS_VAR_KEY_CACHE_DIVISION_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEY_CACHE_DIVISION_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_KEY_CACHE_DIVISION_LIMIT] = 624 ; + ObSysVars[624].base_value_ = "100" ; + ObSysVars[624].alias_ = "OB_SV_KEY_CACHE_DIVISION_LIMIT" ; }(); [&] (){ - ObSysVars[625].default_value_ = "0" ; - ObSysVars[625].info_ = "When this variable is enabled, the server does not use the optimized method of processing an ALTER TABLE operation, merely simulates MySQL 5.7" ; - ObSysVars[625].name_ = "old_alter_table" ; - ObSysVars[625].data_type_ = ObIntType ; - ObSysVars[625].enum_names_ = "[u'OFF', u'ON']" ; + ObSysVars[625].default_value_ = "18446744073709551615" ; + ObSysVars[625].info_ = "Limit the assumed maximum number of seeks when looking up rows based on a key, merely simulates MySQL 5.7" ; + ObSysVars[625].name_ = "max_seeks_for_key" ; + ObSysVars[625].data_type_ = ObUInt64Type ; + ObSysVars[625].min_val_ = "1" ; + ObSysVars[625].max_val_ = "18446744073709551615" ; ObSysVars[625].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[625].id_ = SYS_VAR_OLD_ALTER_TABLE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OLD_ALTER_TABLE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OLD_ALTER_TABLE] = 625 ; - ObSysVars[625].base_value_ = "0" ; - ObSysVars[625].alias_ = "OB_SV_OLD_ALTER_TABLE" ; + ObSysVars[625].id_ = SYS_VAR_MAX_SEEKS_FOR_KEY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_SEEKS_FOR_KEY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_SEEKS_FOR_KEY] = 625 ; + ObSysVars[625].base_value_ = "18446744073709551615" ; + ObSysVars[625].alias_ = "OB_SV_MAX_SEEKS_FOR_KEY" ; }(); [&] (){ - ObSysVars[626].default_value_ = "-1" ; - ObSysVars[626].info_ = "The number of table definitions that can be stored in the table definition cache, merely simulates MySQL 5.7" ; - ObSysVars[626].name_ = "table_definition_cache" ; + ObSysVars[626].default_value_ = "0" ; + ObSysVars[626].info_ = "When this variable is enabled, the server does not use the optimized method of processing an ALTER TABLE operation, merely simulates MySQL 5.7" ; + ObSysVars[626].name_ = "old_alter_table" ; ObSysVars[626].data_type_ = ObIntType ; - ObSysVars[626].min_val_ = "400" ; - ObSysVars[626].max_val_ = "524288" ; + ObSysVars[626].enum_names_ = "[u'OFF', u'ON']" ; ObSysVars[626].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[626].id_ = SYS_VAR_TABLE_DEFINITION_CACHE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TABLE_DEFINITION_CACHE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_TABLE_DEFINITION_CACHE] = 626 ; - ObSysVars[626].base_value_ = "-1" ; - ObSysVars[626].alias_ = "OB_SV_TABLE_DEFINITION_CACHE" ; + ObSysVars[626].id_ = SYS_VAR_OLD_ALTER_TABLE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OLD_ALTER_TABLE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OLD_ALTER_TABLE] = 626 ; + ObSysVars[626].base_value_ = "0" ; + ObSysVars[626].alias_ = "OB_SV_OLD_ALTER_TABLE" ; }(); [&] (){ - ObSysVars[627].default_value_ = "1048576" ; - ObSysVars[627].info_ = "The sort buffer size for online DDL operations that create or rebuild secondary indexes, merely simulates MySQL 5.7" ; - ObSysVars[627].name_ = "innodb_sort_buffer_size" ; + ObSysVars[627].default_value_ = "-1" ; + ObSysVars[627].info_ = "The number of table definitions that can be stored in the table definition cache, merely simulates MySQL 5.7" ; + ObSysVars[627].name_ = "table_definition_cache" ; ObSysVars[627].data_type_ = ObIntType ; - ObSysVars[627].min_val_ = "65536" ; - ObSysVars[627].max_val_ = "67108864" ; - ObSysVars[627].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[627].id_ = SYS_VAR_INNODB_SORT_BUFFER_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SORT_BUFFER_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SORT_BUFFER_SIZE] = 627 ; - ObSysVars[627].base_value_ = "1048576" ; - ObSysVars[627].alias_ = "OB_SV_INNODB_SORT_BUFFER_SIZE" ; + ObSysVars[627].min_val_ = "400" ; + ObSysVars[627].max_val_ = "524288" ; + ObSysVars[627].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[627].id_ = SYS_VAR_TABLE_DEFINITION_CACHE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_TABLE_DEFINITION_CACHE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_TABLE_DEFINITION_CACHE] = 627 ; + ObSysVars[627].base_value_ = "-1" ; + ObSysVars[627].alias_ = "OB_SV_TABLE_DEFINITION_CACHE" ; }(); [&] (){ - ObSysVars[628].default_value_ = "1024" ; - ObSysVars[628].info_ = "The size in bytes of blocks in the key cache, merely simulates MySQL 5.7" ; - ObSysVars[628].name_ = "key_cache_block_size" ; + ObSysVars[628].default_value_ = "1048576" ; + ObSysVars[628].info_ = "The sort buffer size for online DDL operations that create or rebuild secondary indexes, merely simulates MySQL 5.7" ; + ObSysVars[628].name_ = "innodb_sort_buffer_size" ; ObSysVars[628].data_type_ = ObIntType ; - ObSysVars[628].min_val_ = "512" ; - ObSysVars[628].max_val_ = "16384" ; - ObSysVars[628].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[628].id_ = SYS_VAR_KEY_CACHE_BLOCK_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEY_CACHE_BLOCK_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_KEY_CACHE_BLOCK_SIZE] = 628 ; - ObSysVars[628].base_value_ = "1024" ; - ObSysVars[628].alias_ = "OB_SV_KEY_CACHE_BLOCK_SIZE" ; + ObSysVars[628].min_val_ = "65536" ; + ObSysVars[628].max_val_ = "67108864" ; + ObSysVars[628].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[628].id_ = SYS_VAR_INNODB_SORT_BUFFER_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_SORT_BUFFER_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_SORT_BUFFER_SIZE] = 628 ; + ObSysVars[628].base_value_ = "1048576" ; + ObSysVars[628].alias_ = "OB_SV_INNODB_SORT_BUFFER_SIZE" ; }(); [&] (){ - ObSysVars[629].default_value_ = "" ; - ObSysVars[629].info_ = "The directory where character sets are installed" ; - ObSysVars[629].name_ = "character_sets_dir" ; - ObSysVars[629].data_type_ = ObVarcharType ; - ObSysVars[629].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[629].id_ = SYS_VAR_CHARACTER_SETS_DIR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_CHARACTER_SETS_DIR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_CHARACTER_SETS_DIR] = 629 ; - ObSysVars[629].base_value_ = "" ; - ObSysVars[629].alias_ = "OB_SV_CHARACTER_SETS_DIR" ; + ObSysVars[629].default_value_ = "1024" ; + ObSysVars[629].info_ = "The size in bytes of blocks in the key cache, merely simulates MySQL 5.7" ; + ObSysVars[629].name_ = "key_cache_block_size" ; + ObSysVars[629].data_type_ = ObIntType ; + ObSysVars[629].min_val_ = "512" ; + ObSysVars[629].max_val_ = "16384" ; + ObSysVars[629].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[629].id_ = SYS_VAR_KEY_CACHE_BLOCK_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_KEY_CACHE_BLOCK_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_KEY_CACHE_BLOCK_SIZE] = 629 ; + ObSysVars[629].base_value_ = "1024" ; + ObSysVars[629].alias_ = "OB_SV_KEY_CACHE_BLOCK_SIZE" ; }(); [&] (){ - ObSysVars[630].default_value_ = "%Y-%m-%d" ; - ObSysVars[630].info_ = "" ; - ObSysVars[630].name_ = "date_format" ; + ObSysVars[630].default_value_ = "" ; + ObSysVars[630].info_ = "The directory where character sets are installed" ; + ObSysVars[630].name_ = "character_sets_dir" ; ObSysVars[630].data_type_ = ObVarcharType ; - ObSysVars[630].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[630].id_ = SYS_VAR_DATE_FORMAT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DATE_FORMAT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DATE_FORMAT] = 630 ; - ObSysVars[630].base_value_ = "%Y-%m-%d" ; - ObSysVars[630].alias_ = "OB_SV_DATE_FORMAT" ; + ObSysVars[630].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[630].id_ = SYS_VAR_CHARACTER_SETS_DIR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_CHARACTER_SETS_DIR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_CHARACTER_SETS_DIR] = 630 ; + ObSysVars[630].base_value_ = "" ; + ObSysVars[630].alias_ = "OB_SV_CHARACTER_SETS_DIR" ; }(); [&] (){ - ObSysVars[631].default_value_ = "%Y-%m-%d %H:%i:%s" ; + ObSysVars[631].default_value_ = "%Y-%m-%d" ; ObSysVars[631].info_ = "" ; - ObSysVars[631].name_ = "datetime_format" ; + ObSysVars[631].name_ = "date_format" ; ObSysVars[631].data_type_ = ObVarcharType ; ObSysVars[631].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[631].id_ = SYS_VAR_DATETIME_FORMAT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DATETIME_FORMAT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DATETIME_FORMAT] = 631 ; - ObSysVars[631].base_value_ = "%Y-%m-%d %H:%i:%s" ; - ObSysVars[631].alias_ = "OB_SV_DATETIME_FORMAT" ; + ObSysVars[631].id_ = SYS_VAR_DATE_FORMAT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DATE_FORMAT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DATE_FORMAT] = 631 ; + ObSysVars[631].base_value_ = "%Y-%m-%d" ; + ObSysVars[631].alias_ = "OB_SV_DATE_FORMAT" ; }(); [&] (){ - ObSysVars[632].default_value_ = "1" ; - ObSysVars[632].info_ = "This variable controls how the server handles clients with expired passwords" ; - ObSysVars[632].name_ = "disconnect_on_expired_password" ; - ObSysVars[632].data_type_ = ObIntType ; + ObSysVars[632].default_value_ = "%Y-%m-%d %H:%i:%s" ; + ObSysVars[632].info_ = "" ; + ObSysVars[632].name_ = "datetime_format" ; + ObSysVars[632].data_type_ = ObVarcharType ; ObSysVars[632].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[632].id_ = SYS_VAR_DISCONNECT_ON_EXPIRED_PASSWORD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DISCONNECT_ON_EXPIRED_PASSWORD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DISCONNECT_ON_EXPIRED_PASSWORD] = 632 ; - ObSysVars[632].base_value_ = "1" ; - ObSysVars[632].alias_ = "OB_SV_DISCONNECT_ON_EXPIRED_PASSWORD" ; + ObSysVars[632].id_ = SYS_VAR_DATETIME_FORMAT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DATETIME_FORMAT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DATETIME_FORMAT] = 632 ; + ObSysVars[632].base_value_ = "%Y-%m-%d %H:%i:%s" ; + ObSysVars[632].alias_ = "OB_SV_DATETIME_FORMAT" ; }(); [&] (){ - ObSysVars[633].default_value_ = "" ; - ObSysVars[633].info_ = "The external user name used during the authentication process, as set by the plugin used to authenticate the client" ; - ObSysVars[633].name_ = "external_user" ; - ObSysVars[633].data_type_ = ObVarcharType ; - ObSysVars[633].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::NULLABLE | ObSysVarFlag::READONLY ; - ObSysVars[633].id_ = SYS_VAR_EXTERNAL_USER ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_EXTERNAL_USER)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_EXTERNAL_USER] = 633 ; - ObSysVars[633].base_value_ = "" ; - ObSysVars[633].alias_ = "OB_SV_EXTERNAL_USER" ; + ObSysVars[633].default_value_ = "1" ; + ObSysVars[633].info_ = "This variable controls how the server handles clients with expired passwords" ; + ObSysVars[633].name_ = "disconnect_on_expired_password" ; + ObSysVars[633].data_type_ = ObIntType ; + ObSysVars[633].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[633].id_ = SYS_VAR_DISCONNECT_ON_EXPIRED_PASSWORD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DISCONNECT_ON_EXPIRED_PASSWORD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DISCONNECT_ON_EXPIRED_PASSWORD] = 633 ; + ObSysVars[633].base_value_ = "1" ; + ObSysVars[633].alias_ = "OB_SV_DISCONNECT_ON_EXPIRED_PASSWORD" ; }(); [&] (){ - ObSysVars[634].default_value_ = "YES" ; + ObSysVars[634].default_value_ = "" ; ObSysVars[634].info_ = "The external user name used during the authentication process, as set by the plugin used to authenticate the client" ; - ObSysVars[634].name_ = "have_crypt" ; + ObSysVars[634].name_ = "external_user" ; ObSysVars[634].data_type_ = ObVarcharType ; - ObSysVars[634].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[634].id_ = SYS_VAR_HAVE_CRYPT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HAVE_CRYPT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_HAVE_CRYPT] = 634 ; - ObSysVars[634].base_value_ = "YES" ; - ObSysVars[634].alias_ = "OB_SV_HAVE_CRYPT" ; + ObSysVars[634].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::NULLABLE | ObSysVarFlag::READONLY ; + ObSysVars[634].id_ = SYS_VAR_EXTERNAL_USER ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_EXTERNAL_USER)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_EXTERNAL_USER] = 634 ; + ObSysVars[634].base_value_ = "" ; + ObSysVars[634].alias_ = "OB_SV_EXTERNAL_USER" ; }(); [&] (){ - ObSysVars[635].default_value_ = "" ; - ObSysVars[635].info_ = "The language to use for error messages" ; - ObSysVars[635].name_ = "language" ; + ObSysVars[635].default_value_ = "YES" ; + ObSysVars[635].info_ = "The external user name used during the authentication process, as set by the plugin used to authenticate the client" ; + ObSysVars[635].name_ = "have_crypt" ; ObSysVars[635].data_type_ = ObVarcharType ; - ObSysVars[635].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[635].id_ = SYS_VAR_LANGUAGE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LANGUAGE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LANGUAGE] = 635 ; - ObSysVars[635].base_value_ = "" ; - ObSysVars[635].alias_ = "OB_SV_LANGUAGE" ; + ObSysVars[635].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[635].id_ = SYS_VAR_HAVE_CRYPT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_HAVE_CRYPT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_HAVE_CRYPT] = 635 ; + ObSysVars[635].base_value_ = "YES" ; + ObSysVars[635].alias_ = "OB_SV_HAVE_CRYPT" ; }(); [&] (){ ObSysVars[636].default_value_ = "" ; ObSysVars[636].info_ = "The language to use for error messages" ; - ObSysVars[636].name_ = "lc_messages_dir" ; + ObSysVars[636].name_ = "language" ; ObSysVars[636].data_type_ = ObVarcharType ; ObSysVars[636].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[636].id_ = SYS_VAR_LC_MESSAGES_DIR ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LC_MESSAGES_DIR)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LC_MESSAGES_DIR] = 636 ; + ObSysVars[636].id_ = SYS_VAR_LANGUAGE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LANGUAGE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LANGUAGE] = 636 ; ObSysVars[636].base_value_ = "" ; - ObSysVars[636].alias_ = "OB_SV_LC_MESSAGES_DIR" ; + ObSysVars[636].alias_ = "OB_SV_LANGUAGE" ; }(); [&] (){ - ObSysVars[637].default_value_ = "0" ; - ObSysVars[637].info_ = "This variable describes the case sensitivity of file names on the file system where the data directory is located" ; - ObSysVars[637].name_ = "lower_case_file_system" ; - ObSysVars[637].data_type_ = ObIntType ; + ObSysVars[637].default_value_ = "" ; + ObSysVars[637].info_ = "The language to use for error messages" ; + ObSysVars[637].name_ = "lc_messages_dir" ; + ObSysVars[637].data_type_ = ObVarcharType ; ObSysVars[637].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[637].id_ = SYS_VAR_LOWER_CASE_FILE_SYSTEM ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOWER_CASE_FILE_SYSTEM)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_LOWER_CASE_FILE_SYSTEM] = 637 ; - ObSysVars[637].base_value_ = "0" ; - ObSysVars[637].alias_ = "OB_SV_LOWER_CASE_FILE_SYSTEM" ; + ObSysVars[637].id_ = SYS_VAR_LC_MESSAGES_DIR ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LC_MESSAGES_DIR)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LC_MESSAGES_DIR] = 637 ; + ObSysVars[637].base_value_ = "" ; + ObSysVars[637].alias_ = "OB_SV_LC_MESSAGES_DIR" ; }(); [&] (){ - ObSysVars[638].default_value_ = "1024" ; - ObSysVars[638].info_ = "The maximum number of bytes of memory reserved per session for computation of normalized statement digests" ; - ObSysVars[638].name_ = "max_digest_length" ; + ObSysVars[638].default_value_ = "0" ; + ObSysVars[638].info_ = "This variable describes the case sensitivity of file names on the file system where the data directory is located" ; + ObSysVars[638].name_ = "lower_case_file_system" ; ObSysVars[638].data_type_ = ObIntType ; ObSysVars[638].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[638].id_ = SYS_VAR_MAX_DIGEST_LENGTH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_DIGEST_LENGTH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_DIGEST_LENGTH] = 638 ; - ObSysVars[638].base_value_ = "1024" ; - ObSysVars[638].alias_ = "OB_SV_MAX_DIGEST_LENGTH" ; + ObSysVars[638].id_ = SYS_VAR_LOWER_CASE_FILE_SYSTEM ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_LOWER_CASE_FILE_SYSTEM)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_LOWER_CASE_FILE_SYSTEM] = 638 ; + ObSysVars[638].base_value_ = "0" ; + ObSysVars[638].alias_ = "OB_SV_LOWER_CASE_FILE_SYSTEM" ; }(); [&] (){ - ObSysVars[639].default_value_ = "ndbinfo" ; - ObSysVars[639].info_ = "Shows the name used for the NDB information database" ; - ObSysVars[639].name_ = "ndbinfo_database" ; - ObSysVars[639].data_type_ = ObVarcharType ; + ObSysVars[639].default_value_ = "1024" ; + ObSysVars[639].info_ = "The maximum number of bytes of memory reserved per session for computation of normalized statement digests" ; + ObSysVars[639].name_ = "max_digest_length" ; + ObSysVars[639].data_type_ = ObIntType ; ObSysVars[639].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[639].id_ = SYS_VAR_NDBINFO_DATABASE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_DATABASE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_DATABASE] = 639 ; - ObSysVars[639].base_value_ = "ndbinfo" ; - ObSysVars[639].alias_ = "OB_SV_NDBINFO_DATABASE" ; + ObSysVars[639].id_ = SYS_VAR_MAX_DIGEST_LENGTH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_DIGEST_LENGTH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_DIGEST_LENGTH] = 639 ; + ObSysVars[639].base_value_ = "1024" ; + ObSysVars[639].alias_ = "OB_SV_MAX_DIGEST_LENGTH" ; }(); [&] (){ - ObSysVars[640].default_value_ = "ndb$" ; - ObSysVars[640].info_ = "The prefix used in naming the ndbinfo database's base tables (normally hidden, unless exposed by setting ndbinfo_show_hidden" ; - ObSysVars[640].name_ = "ndbinfo_table_prefix" ; + ObSysVars[640].default_value_ = "ndbinfo" ; + ObSysVars[640].info_ = "Shows the name used for the NDB information database" ; + ObSysVars[640].name_ = "ndbinfo_database" ; ObSysVars[640].data_type_ = ObVarcharType ; ObSysVars[640].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[640].id_ = SYS_VAR_NDBINFO_TABLE_PREFIX ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_TABLE_PREFIX)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_TABLE_PREFIX] = 640 ; - ObSysVars[640].base_value_ = "ndb$" ; - ObSysVars[640].alias_ = "OB_SV_NDBINFO_TABLE_PREFIX" ; + ObSysVars[640].id_ = SYS_VAR_NDBINFO_DATABASE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_DATABASE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_DATABASE] = 640 ; + ObSysVars[640].base_value_ = "ndbinfo" ; + ObSysVars[640].alias_ = "OB_SV_NDBINFO_DATABASE" ; }(); [&] (){ - ObSysVars[641].default_value_ = "" ; - ObSysVars[641].info_ = "Shows the version of the ndbinfo engine in use" ; - ObSysVars[641].name_ = "ndbinfo_version" ; + ObSysVars[641].default_value_ = "ndb$" ; + ObSysVars[641].info_ = "The prefix used in naming the ndbinfo database's base tables (normally hidden, unless exposed by setting ndbinfo_show_hidden" ; + ObSysVars[641].name_ = "ndbinfo_table_prefix" ; ObSysVars[641].data_type_ = ObVarcharType ; ObSysVars[641].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[641].id_ = SYS_VAR_NDBINFO_VERSION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_VERSION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_VERSION] = 641 ; - ObSysVars[641].base_value_ = "" ; - ObSysVars[641].alias_ = "OB_SV_NDBINFO_VERSION" ; + ObSysVars[641].id_ = SYS_VAR_NDBINFO_TABLE_PREFIX ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_TABLE_PREFIX)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_TABLE_PREFIX] = 641 ; + ObSysVars[641].base_value_ = "ndb$" ; + ObSysVars[641].alias_ = "OB_SV_NDBINFO_TABLE_PREFIX" ; }(); [&] (){ - ObSysVars[642].default_value_ = "32768" ; - ObSysVars[642].info_ = "This sets the size in bytes that is used for NDB transaction batches" ; - ObSysVars[642].name_ = "ndb_batch_size" ; - ObSysVars[642].data_type_ = ObIntType ; - ObSysVars[642].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[642].id_ = SYS_VAR_NDB_BATCH_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_BATCH_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_BATCH_SIZE] = 642 ; - ObSysVars[642].base_value_ = "32768" ; - ObSysVars[642].alias_ = "OB_SV_NDB_BATCH_SIZE" ; + ObSysVars[642].default_value_ = "" ; + ObSysVars[642].info_ = "Shows the version of the ndbinfo engine in use" ; + ObSysVars[642].name_ = "ndbinfo_version" ; + ObSysVars[642].data_type_ = ObVarcharType ; + ObSysVars[642].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[642].id_ = SYS_VAR_NDBINFO_VERSION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDBINFO_VERSION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDBINFO_VERSION] = 642 ; + ObSysVars[642].base_value_ = "" ; + ObSysVars[642].alias_ = "OB_SV_NDBINFO_VERSION" ; }(); [&] (){ - ObSysVars[643].default_value_ = "1" ; - ObSysVars[643].info_ = "a mysqld process can use multiple connections to the cluster, effectively mimicking several SQL nodes" ; - ObSysVars[643].name_ = "ndb_cluster_connection_pool" ; + ObSysVars[643].default_value_ = "32768" ; + ObSysVars[643].info_ = "This sets the size in bytes that is used for NDB transaction batches" ; + ObSysVars[643].name_ = "ndb_batch_size" ; ObSysVars[643].data_type_ = ObIntType ; - ObSysVars[643].min_val_ = "1" ; - ObSysVars[643].max_val_ = "63" ; - ObSysVars[643].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[643].id_ = SYS_VAR_NDB_CLUSTER_CONNECTION_POOL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_CLUSTER_CONNECTION_POOL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_CLUSTER_CONNECTION_POOL] = 643 ; - ObSysVars[643].base_value_ = "1" ; - ObSysVars[643].alias_ = "OB_SV_NDB_CLUSTER_CONNECTION_POOL" ; + ObSysVars[643].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[643].id_ = SYS_VAR_NDB_BATCH_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_BATCH_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_BATCH_SIZE] = 643 ; + ObSysVars[643].base_value_ = "32768" ; + ObSysVars[643].alias_ = "OB_SV_NDB_BATCH_SIZE" ; }(); [&] (){ - ObSysVars[644].default_value_ = "" ; - ObSysVars[644].info_ = "Specifies a comma-separated list of node IDs for connections to the cluster used by an SQL node" ; - ObSysVars[644].name_ = "ndb_cluster_connection_pool_nodeids" ; - ObSysVars[644].data_type_ = ObVarcharType ; + ObSysVars[644].default_value_ = "1" ; + ObSysVars[644].info_ = "a mysqld process can use multiple connections to the cluster, effectively mimicking several SQL nodes" ; + ObSysVars[644].name_ = "ndb_cluster_connection_pool" ; + ObSysVars[644].data_type_ = ObIntType ; + ObSysVars[644].min_val_ = "1" ; + ObSysVars[644].max_val_ = "63" ; ObSysVars[644].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[644].id_ = SYS_VAR_NDB_CLUSTER_CONNECTION_POOL_NODEIDS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_CLUSTER_CONNECTION_POOL_NODEIDS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_CLUSTER_CONNECTION_POOL_NODEIDS] = 644 ; - ObSysVars[644].base_value_ = "" ; - ObSysVars[644].alias_ = "OB_SV_NDB_CLUSTER_CONNECTION_POOL_NODEIDS" ; + ObSysVars[644].id_ = SYS_VAR_NDB_CLUSTER_CONNECTION_POOL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_CLUSTER_CONNECTION_POOL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_CLUSTER_CONNECTION_POOL] = 644 ; + ObSysVars[644].base_value_ = "1" ; + ObSysVars[644].alias_ = "OB_SV_NDB_CLUSTER_CONNECTION_POOL" ; }(); [&] (){ - ObSysVars[645].default_value_ = "0" ; - ObSysVars[645].info_ = "Causes a replica mysqld to log any updates received from its immediate source to the mysql.ndb_apply_status table in its own binary log using its own server ID rather than the server ID of the source" ; - ObSysVars[645].name_ = "ndb_log_apply_status" ; - ObSysVars[645].data_type_ = ObIntType ; + ObSysVars[645].default_value_ = "" ; + ObSysVars[645].info_ = "Specifies a comma-separated list of node IDs for connections to the cluster used by an SQL node" ; + ObSysVars[645].name_ = "ndb_cluster_connection_pool_nodeids" ; + ObSysVars[645].data_type_ = ObVarcharType ; ObSysVars[645].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[645].id_ = SYS_VAR_NDB_LOG_APPLY_STATUS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_APPLY_STATUS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_APPLY_STATUS] = 645 ; - ObSysVars[645].base_value_ = "0" ; - ObSysVars[645].alias_ = "OB_SV_NDB_LOG_APPLY_STATUS" ; + ObSysVars[645].id_ = SYS_VAR_NDB_CLUSTER_CONNECTION_POOL_NODEIDS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_CLUSTER_CONNECTION_POOL_NODEIDS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_CLUSTER_CONNECTION_POOL_NODEIDS] = 645 ; + ObSysVars[645].base_value_ = "" ; + ObSysVars[645].alias_ = "OB_SV_NDB_CLUSTER_CONNECTION_POOL_NODEIDS" ; }(); [&] (){ - ObSysVars[646].default_value_ = "1" ; - ObSysVars[646].info_ = "Causes updates to NDB tables to be written to the binary log. Setting this variable has no effect if binary logging is not already enabled for the server using log_bin" ; - ObSysVars[646].name_ = "ndb_log_bin" ; + ObSysVars[646].default_value_ = "0" ; + ObSysVars[646].info_ = "Causes a replica mysqld to log any updates received from its immediate source to the mysql.ndb_apply_status table in its own binary log using its own server ID rather than the server ID of the source" ; + ObSysVars[646].name_ = "ndb_log_apply_status" ; ObSysVars[646].data_type_ = ObIntType ; - ObSysVars[646].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[646].id_ = SYS_VAR_NDB_LOG_BIN ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_BIN)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_BIN] = 646 ; - ObSysVars[646].base_value_ = "1" ; - ObSysVars[646].alias_ = "OB_SV_NDB_LOG_BIN" ; + ObSysVars[646].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[646].id_ = SYS_VAR_NDB_LOG_APPLY_STATUS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_APPLY_STATUS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_APPLY_STATUS] = 646 ; + ObSysVars[646].base_value_ = "0" ; + ObSysVars[646].alias_ = "OB_SV_NDB_LOG_APPLY_STATUS" ; }(); [&] (){ - ObSysVars[647].default_value_ = "0" ; - ObSysVars[647].info_ = "When this option is specified, and complete logging of all found row events is not possible, the mysqld process is terminated" ; - ObSysVars[647].name_ = "ndb_log_fail_terminate" ; + ObSysVars[647].default_value_ = "1" ; + ObSysVars[647].info_ = "Causes updates to NDB tables to be written to the binary log. Setting this variable has no effect if binary logging is not already enabled for the server using log_bin" ; + ObSysVars[647].name_ = "ndb_log_bin" ; ObSysVars[647].data_type_ = ObIntType ; - ObSysVars[647].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[647].id_ = SYS_VAR_NDB_LOG_FAIL_TERMINATE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_FAIL_TERMINATE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_FAIL_TERMINATE] = 647 ; - ObSysVars[647].base_value_ = "0" ; - ObSysVars[647].alias_ = "OB_SV_NDB_LOG_FAIL_TERMINATE" ; + ObSysVars[647].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[647].id_ = SYS_VAR_NDB_LOG_BIN ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_BIN)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_BIN] = 647 ; + ObSysVars[647].base_value_ = "1" ; + ObSysVars[647].alias_ = "OB_SV_NDB_LOG_BIN" ; }(); [&] (){ ObSysVars[648].default_value_ = "0" ; - ObSysVars[648].info_ = "Shows whether the originating server ID and epoch are logged in the ndb_binlog_index table" ; - ObSysVars[648].name_ = "ndb_log_orig" ; + ObSysVars[648].info_ = "When this option is specified, and complete logging of all found row events is not possible, the mysqld process is terminated" ; + ObSysVars[648].name_ = "ndb_log_fail_terminate" ; ObSysVars[648].data_type_ = ObIntType ; ObSysVars[648].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[648].id_ = SYS_VAR_NDB_LOG_ORIG ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_ORIG)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_ORIG] = 648 ; + ObSysVars[648].id_ = SYS_VAR_NDB_LOG_FAIL_TERMINATE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_FAIL_TERMINATE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_FAIL_TERMINATE] = 648 ; ObSysVars[648].base_value_ = "0" ; - ObSysVars[648].alias_ = "OB_SV_NDB_LOG_ORIG" ; + ObSysVars[648].alias_ = "OB_SV_NDB_LOG_FAIL_TERMINATE" ; }(); [&] (){ ObSysVars[649].default_value_ = "0" ; - ObSysVars[649].info_ = "shows whether a replica mysqld writes NDB transaction IDs in the binary log" ; - ObSysVars[649].name_ = "ndb_log_transaction_id" ; + ObSysVars[649].info_ = "Shows whether the originating server ID and epoch are logged in the ndb_binlog_index table" ; + ObSysVars[649].name_ = "ndb_log_orig" ; ObSysVars[649].data_type_ = ObIntType ; ObSysVars[649].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[649].id_ = SYS_VAR_NDB_LOG_TRANSACTION_ID ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_TRANSACTION_ID)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_TRANSACTION_ID] = 649 ; + ObSysVars[649].id_ = SYS_VAR_NDB_LOG_ORIG ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_ORIG)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_ORIG] = 649 ; ObSysVars[649].base_value_ = "0" ; - ObSysVars[649].alias_ = "OB_SV_NDB_LOG_TRANSACTION_ID" ; + ObSysVars[649].alias_ = "OB_SV_NDB_LOG_ORIG" ; }(); [&] (){ - ObSysVars[650].default_value_ = "3" ; - ObSysVars[650].info_ = "" ; - ObSysVars[650].name_ = "ndb_optimized_node_selection" ; + ObSysVars[650].default_value_ = "0" ; + ObSysVars[650].info_ = "shows whether a replica mysqld writes NDB transaction IDs in the binary log" ; + ObSysVars[650].name_ = "ndb_log_transaction_id" ; ObSysVars[650].data_type_ = ObIntType ; ObSysVars[650].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[650].id_ = SYS_VAR_NDB_OPTIMIZED_NODE_SELECTION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_OPTIMIZED_NODE_SELECTION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_OPTIMIZED_NODE_SELECTION] = 650 ; - ObSysVars[650].base_value_ = "3" ; - ObSysVars[650].alias_ = "OB_SV_NDB_OPTIMIZED_NODE_SELECTION" ; + ObSysVars[650].id_ = SYS_VAR_NDB_LOG_TRANSACTION_ID ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_LOG_TRANSACTION_ID)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_LOG_TRANSACTION_ID] = 650 ; + ObSysVars[650].base_value_ = "0" ; + ObSysVars[650].alias_ = "OB_SV_NDB_LOG_TRANSACTION_ID" ; }(); [&] (){ - ObSysVars[651].default_value_ = "" ; - ObSysVars[651].info_ = "If this MySQL Server is connected to an NDB cluster, this read-only variable shows the cluster system name. Otherwise, the value is an empty string" ; - ObSysVars[651].name_ = "Ndb_system_name" ; - ObSysVars[651].data_type_ = ObVarcharType ; + ObSysVars[651].default_value_ = "3" ; + ObSysVars[651].info_ = "" ; + ObSysVars[651].name_ = "ndb_optimized_node_selection" ; + ObSysVars[651].data_type_ = ObIntType ; ObSysVars[651].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[651].id_ = SYS_VAR_NDB_SYSTEM_NAME ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_SYSTEM_NAME)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_SYSTEM_NAME] = 651 ; - ObSysVars[651].base_value_ = "" ; - ObSysVars[651].alias_ = "OB_SV_NDB_SYSTEM_NAME" ; + ObSysVars[651].id_ = SYS_VAR_NDB_OPTIMIZED_NODE_SELECTION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_OPTIMIZED_NODE_SELECTION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_OPTIMIZED_NODE_SELECTION] = 651 ; + ObSysVars[651].base_value_ = "3" ; + ObSysVars[651].alias_ = "OB_SV_NDB_OPTIMIZED_NODE_SELECTION" ; }(); [&] (){ - ObSysVars[652].default_value_ = "0" ; - ObSysVars[652].info_ = "Forces NDB to use copying of tables in the event of problems with online ALTER TABLE operations" ; - ObSysVars[652].name_ = "ndb_use_copying_alter_table" ; - ObSysVars[652].data_type_ = ObIntType ; - ObSysVars[652].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[652].id_ = SYS_VAR_NDB_USE_COPYING_ALTER_TABLE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_USE_COPYING_ALTER_TABLE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_USE_COPYING_ALTER_TABLE] = 652 ; - ObSysVars[652].base_value_ = "0" ; - ObSysVars[652].alias_ = "OB_SV_NDB_USE_COPYING_ALTER_TABLE" ; + ObSysVars[652].default_value_ = "" ; + ObSysVars[652].info_ = "If this MySQL Server is connected to an NDB cluster, this read-only variable shows the cluster system name. Otherwise, the value is an empty string" ; + ObSysVars[652].name_ = "Ndb_system_name" ; + ObSysVars[652].data_type_ = ObVarcharType ; + ObSysVars[652].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[652].id_ = SYS_VAR_NDB_SYSTEM_NAME ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_SYSTEM_NAME)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_SYSTEM_NAME] = 652 ; + ObSysVars[652].base_value_ = "" ; + ObSysVars[652].alias_ = "OB_SV_NDB_SYSTEM_NAME" ; }(); [&] (){ - ObSysVars[653].default_value_ = "" ; - ObSysVars[653].info_ = "NDB engine version in ndb-x.y.z format" ; - ObSysVars[653].name_ = "ndb_version_string" ; - ObSysVars[653].data_type_ = ObVarcharType ; - ObSysVars[653].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[653].id_ = SYS_VAR_NDB_VERSION_STRING ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_VERSION_STRING)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_VERSION_STRING] = 653 ; - ObSysVars[653].base_value_ = "" ; - ObSysVars[653].alias_ = "OB_SV_NDB_VERSION_STRING" ; + ObSysVars[653].default_value_ = "0" ; + ObSysVars[653].info_ = "Forces NDB to use copying of tables in the event of problems with online ALTER TABLE operations" ; + ObSysVars[653].name_ = "ndb_use_copying_alter_table" ; + ObSysVars[653].data_type_ = ObIntType ; + ObSysVars[653].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[653].id_ = SYS_VAR_NDB_USE_COPYING_ALTER_TABLE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_USE_COPYING_ALTER_TABLE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_USE_COPYING_ALTER_TABLE] = 653 ; + ObSysVars[653].base_value_ = "0" ; + ObSysVars[653].alias_ = "OB_SV_NDB_USE_COPYING_ALTER_TABLE" ; }(); [&] (){ - ObSysVars[654].default_value_ = "30" ; - ObSysVars[654].info_ = "This option sets the period of time that the MySQL server waits for connections to NDB Cluster management and data nodes to be established before accepting MySQL client connections." ; - ObSysVars[654].name_ = "ndb_wait_connected" ; - ObSysVars[654].data_type_ = ObIntType ; - ObSysVars[654].min_val_ = "0" ; - ObSysVars[654].max_val_ = "31536000" ; + ObSysVars[654].default_value_ = "" ; + ObSysVars[654].info_ = "NDB engine version in ndb-x.y.z format" ; + ObSysVars[654].name_ = "ndb_version_string" ; + ObSysVars[654].data_type_ = ObVarcharType ; ObSysVars[654].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[654].id_ = SYS_VAR_NDB_WAIT_CONNECTED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_WAIT_CONNECTED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_WAIT_CONNECTED] = 654 ; - ObSysVars[654].base_value_ = "30" ; - ObSysVars[654].alias_ = "OB_SV_NDB_WAIT_CONNECTED" ; + ObSysVars[654].id_ = SYS_VAR_NDB_VERSION_STRING ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_VERSION_STRING)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_VERSION_STRING] = 654 ; + ObSysVars[654].base_value_ = "" ; + ObSysVars[654].alias_ = "OB_SV_NDB_VERSION_STRING" ; }(); [&] (){ ObSysVars[655].default_value_ = "30" ; - ObSysVars[655].info_ = "This variable shows the period of time that the MySQL server waits for the NDB storage engine to complete setup before timing out and treating NDB as unavailable. The time is specified in seconds." ; - ObSysVars[655].name_ = "ndb_wait_setup" ; + ObSysVars[655].info_ = "This option sets the period of time that the MySQL server waits for connections to NDB Cluster management and data nodes to be established before accepting MySQL client connections." ; + ObSysVars[655].name_ = "ndb_wait_connected" ; ObSysVars[655].data_type_ = ObIntType ; ObSysVars[655].min_val_ = "0" ; ObSysVars[655].max_val_ = "31536000" ; ObSysVars[655].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[655].id_ = SYS_VAR_NDB_WAIT_SETUP ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_WAIT_SETUP)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_WAIT_SETUP] = 655 ; + ObSysVars[655].id_ = SYS_VAR_NDB_WAIT_CONNECTED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_WAIT_CONNECTED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_WAIT_CONNECTED] = 655 ; ObSysVars[655].base_value_ = "30" ; - ObSysVars[655].alias_ = "OB_SV_NDB_WAIT_SETUP" ; + ObSysVars[655].alias_ = "OB_SV_NDB_WAIT_CONNECTED" ; }(); [&] (){ - ObSysVars[656].default_value_ = "" ; - ObSysVars[656].info_ = "If the current client is a proxy for another user, this variable is the proxy user account name" ; - ObSysVars[656].name_ = "proxy_user" ; - ObSysVars[656].data_type_ = ObVarcharType ; - ObSysVars[656].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[656].id_ = SYS_VAR_PROXY_USER ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PROXY_USER)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PROXY_USER] = 656 ; - ObSysVars[656].base_value_ = "" ; - ObSysVars[656].alias_ = "OB_SV_PROXY_USER" ; + ObSysVars[656].default_value_ = "30" ; + ObSysVars[656].info_ = "This variable shows the period of time that the MySQL server waits for the NDB storage engine to complete setup before timing out and treating NDB as unavailable. The time is specified in seconds." ; + ObSysVars[656].name_ = "ndb_wait_setup" ; + ObSysVars[656].data_type_ = ObIntType ; + ObSysVars[656].min_val_ = "0" ; + ObSysVars[656].max_val_ = "31536000" ; + ObSysVars[656].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[656].id_ = SYS_VAR_NDB_WAIT_SETUP ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_WAIT_SETUP)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_WAIT_SETUP] = 656 ; + ObSysVars[656].base_value_ = "30" ; + ObSysVars[656].alias_ = "OB_SV_NDB_WAIT_SETUP" ; }(); [&] (){ - ObSysVars[657].default_value_ = "1" ; - ObSysVars[657].info_ = "It controls whether the server autogenerates RSA private/public key-pair files in the data directory" ; - ObSysVars[657].name_ = "sha256_password_auto_generate_rsa_keys" ; - ObSysVars[657].data_type_ = ObIntType ; - ObSysVars[657].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[657].id_ = SYS_VAR_SHA256_PASSWORD_AUTO_GENERATE_RSA_KEYS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHA256_PASSWORD_AUTO_GENERATE_RSA_KEYS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SHA256_PASSWORD_AUTO_GENERATE_RSA_KEYS] = 657 ; - ObSysVars[657].base_value_ = "1" ; - ObSysVars[657].alias_ = "OB_SV_SHA256_PASSWORD_AUTO_GENERATE_RSA_KEYS" ; + ObSysVars[657].default_value_ = "" ; + ObSysVars[657].info_ = "If the current client is a proxy for another user, this variable is the proxy user account name" ; + ObSysVars[657].name_ = "proxy_user" ; + ObSysVars[657].data_type_ = ObVarcharType ; + ObSysVars[657].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[657].id_ = SYS_VAR_PROXY_USER ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PROXY_USER)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PROXY_USER] = 657 ; + ObSysVars[657].base_value_ = "" ; + ObSysVars[657].alias_ = "OB_SV_PROXY_USER" ; }(); [&] (){ - ObSysVars[658].default_value_ = "private_key.pem" ; - ObSysVars[658].info_ = "Its value is the path name of the RSA private key file for the sha256_password authentication plugin" ; - ObSysVars[658].name_ = "sha256_password_private_key_path" ; - ObSysVars[658].data_type_ = ObVarcharType ; + ObSysVars[658].default_value_ = "1" ; + ObSysVars[658].info_ = "It controls whether the server autogenerates RSA private/public key-pair files in the data directory" ; + ObSysVars[658].name_ = "sha256_password_auto_generate_rsa_keys" ; + ObSysVars[658].data_type_ = ObIntType ; ObSysVars[658].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[658].id_ = SYS_VAR_SHA256_PASSWORD_PRIVATE_KEY_PATH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHA256_PASSWORD_PRIVATE_KEY_PATH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SHA256_PASSWORD_PRIVATE_KEY_PATH] = 658 ; - ObSysVars[658].base_value_ = "private_key.pem" ; - ObSysVars[658].alias_ = "OB_SV_SHA256_PASSWORD_PRIVATE_KEY_PATH" ; + ObSysVars[658].id_ = SYS_VAR_SHA256_PASSWORD_AUTO_GENERATE_RSA_KEYS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHA256_PASSWORD_AUTO_GENERATE_RSA_KEYS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SHA256_PASSWORD_AUTO_GENERATE_RSA_KEYS] = 658 ; + ObSysVars[658].base_value_ = "1" ; + ObSysVars[658].alias_ = "OB_SV_SHA256_PASSWORD_AUTO_GENERATE_RSA_KEYS" ; }(); [&] (){ - ObSysVars[659].default_value_ = "public_key.pem" ; - ObSysVars[659].info_ = "Its value is the path name of the RSA public key file for the sha256_password authentication plugin" ; - ObSysVars[659].name_ = "sha256_password_public_key_path" ; + ObSysVars[659].default_value_ = "private_key.pem" ; + ObSysVars[659].info_ = "Its value is the path name of the RSA private key file for the sha256_password authentication plugin" ; + ObSysVars[659].name_ = "sha256_password_private_key_path" ; ObSysVars[659].data_type_ = ObVarcharType ; ObSysVars[659].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[659].id_ = SYS_VAR_SHA256_PASSWORD_PUBLIC_KEY_PATH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHA256_PASSWORD_PUBLIC_KEY_PATH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SHA256_PASSWORD_PUBLIC_KEY_PATH] = 659 ; - ObSysVars[659].base_value_ = "public_key.pem" ; - ObSysVars[659].alias_ = "OB_SV_SHA256_PASSWORD_PUBLIC_KEY_PATH" ; + ObSysVars[659].id_ = SYS_VAR_SHA256_PASSWORD_PRIVATE_KEY_PATH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHA256_PASSWORD_PRIVATE_KEY_PATH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SHA256_PASSWORD_PRIVATE_KEY_PATH] = 659 ; + ObSysVars[659].base_value_ = "private_key.pem" ; + ObSysVars[659].alias_ = "OB_SV_SHA256_PASSWORD_PRIVATE_KEY_PATH" ; }(); [&] (){ - ObSysVars[660].default_value_ = "0" ; - ObSysVars[660].info_ = " If the variable value is ON, the SHOW DATABASES statement is permitted only to users who have the SHOW DATABASES privilege, and the statement displays all database names" ; - ObSysVars[660].name_ = "skip_show_database" ; + ObSysVars[660].default_value_ = "public_key.pem" ; + ObSysVars[660].info_ = "Its value is the path name of the RSA public key file for the sha256_password authentication plugin" ; + ObSysVars[660].name_ = "sha256_password_public_key_path" ; ObSysVars[660].data_type_ = ObVarcharType ; ObSysVars[660].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[660].id_ = SYS_VAR_SKIP_SHOW_DATABASE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_SHOW_DATABASE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_SHOW_DATABASE] = 660 ; - ObSysVars[660].base_value_ = "0" ; - ObSysVars[660].alias_ = "OB_SV_SKIP_SHOW_DATABASE" ; + ObSysVars[660].id_ = SYS_VAR_SHA256_PASSWORD_PUBLIC_KEY_PATH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHA256_PASSWORD_PUBLIC_KEY_PATH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SHA256_PASSWORD_PUBLIC_KEY_PATH] = 660 ; + ObSysVars[660].base_value_ = "public_key.pem" ; + ObSysVars[660].alias_ = "OB_SV_SHA256_PASSWORD_PUBLIC_KEY_PATH" ; }(); [&] (){ ObSysVars[661].default_value_ = "0" ; - ObSysVars[661].info_ = "the server stores all temporary tables on disk rather than in memory" ; - ObSysVars[661].name_ = "big_tables" ; - ObSysVars[661].data_type_ = ObIntType ; - ObSysVars[661].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[661].id_ = SYS_VAR_BIG_TABLES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BIG_TABLES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_BIG_TABLES] = 661 ; + ObSysVars[661].info_ = " If the variable value is ON, the SHOW DATABASES statement is permitted only to users who have the SHOW DATABASES privilege, and the statement displays all database names" ; + ObSysVars[661].name_ = "skip_show_database" ; + ObSysVars[661].data_type_ = ObVarcharType ; + ObSysVars[661].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[661].id_ = SYS_VAR_SKIP_SHOW_DATABASE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SKIP_SHOW_DATABASE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SKIP_SHOW_DATABASE] = 661 ; ObSysVars[661].base_value_ = "0" ; - ObSysVars[661].alias_ = "OB_SV_BIG_TABLES" ; + ObSysVars[661].alias_ = "OB_SV_SKIP_SHOW_DATABASE" ; }(); [&] (){ ObSysVars[662].default_value_ = "0" ; - ObSysVars[662].info_ = "If the check_proxy_users system variable is enabled, the server performs proxy user mapping for any authentication plugins that make such a request" ; - ObSysVars[662].name_ = "check_proxy_users" ; + ObSysVars[662].info_ = "the server stores all temporary tables on disk rather than in memory" ; + ObSysVars[662].name_ = "big_tables" ; ObSysVars[662].data_type_ = ObIntType ; - ObSysVars[662].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[662].id_ = SYS_VAR_CHECK_PROXY_USERS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_CHECK_PROXY_USERS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_CHECK_PROXY_USERS] = 662 ; + ObSysVars[662].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[662].id_ = SYS_VAR_BIG_TABLES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_BIG_TABLES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_BIG_TABLES] = 662 ; ObSysVars[662].base_value_ = "0" ; - ObSysVars[662].alias_ = "OB_SV_CHECK_PROXY_USERS" ; + ObSysVars[662].alias_ = "OB_SV_BIG_TABLES" ; }(); [&] (){ ObSysVars[663].default_value_ = "0" ; - ObSysVars[663].info_ = "The default mode value to use for the WEEK() function" ; - ObSysVars[663].name_ = "default_week_format" ; + ObSysVars[663].info_ = "If the check_proxy_users system variable is enabled, the server performs proxy user mapping for any authentication plugins that make such a request" ; + ObSysVars[663].name_ = "check_proxy_users" ; ObSysVars[663].data_type_ = ObIntType ; - ObSysVars[663].min_val_ = "0" ; - ObSysVars[663].max_val_ = "7" ; - ObSysVars[663].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[663].id_ = SYS_VAR_DEFAULT_WEEK_FORMAT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DEFAULT_WEEK_FORMAT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DEFAULT_WEEK_FORMAT] = 663 ; + ObSysVars[663].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[663].id_ = SYS_VAR_CHECK_PROXY_USERS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_CHECK_PROXY_USERS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_CHECK_PROXY_USERS] = 663 ; ObSysVars[663].base_value_ = "0" ; - ObSysVars[663].alias_ = "OB_SV_DEFAULT_WEEK_FORMAT" ; + ObSysVars[663].alias_ = "OB_SV_CHECK_PROXY_USERS" ; }(); [&] (){ - ObSysVars[664].default_value_ = "300" ; - ObSysVars[664].info_ = "" ; - ObSysVars[664].name_ = "delayed_insert_timeout" ; + ObSysVars[664].default_value_ = "0" ; + ObSysVars[664].info_ = "The default mode value to use for the WEEK() function" ; + ObSysVars[664].name_ = "default_week_format" ; ObSysVars[664].data_type_ = ObIntType ; - ObSysVars[664].min_val_ = "1" ; - ObSysVars[664].max_val_ = "31536000" ; - ObSysVars[664].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[664].id_ = SYS_VAR_DELAYED_INSERT_TIMEOUT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DELAYED_INSERT_TIMEOUT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DELAYED_INSERT_TIMEOUT] = 664 ; - ObSysVars[664].base_value_ = "300" ; - ObSysVars[664].alias_ = "OB_SV_DELAYED_INSERT_TIMEOUT" ; + ObSysVars[664].min_val_ = "0" ; + ObSysVars[664].max_val_ = "7" ; + ObSysVars[664].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[664].id_ = SYS_VAR_DEFAULT_WEEK_FORMAT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DEFAULT_WEEK_FORMAT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DEFAULT_WEEK_FORMAT] = 664 ; + ObSysVars[664].base_value_ = "0" ; + ObSysVars[664].alias_ = "OB_SV_DEFAULT_WEEK_FORMAT" ; }(); [&] (){ - ObSysVars[665].default_value_ = "1000" ; + ObSysVars[665].default_value_ = "300" ; ObSysVars[665].info_ = "" ; - ObSysVars[665].name_ = "delayed_queue_size" ; - ObSysVars[665].data_type_ = ObUInt64Type ; + ObSysVars[665].name_ = "delayed_insert_timeout" ; + ObSysVars[665].data_type_ = ObIntType ; ObSysVars[665].min_val_ = "1" ; - ObSysVars[665].max_val_ = "18446744073709551615" ; + ObSysVars[665].max_val_ = "31536000" ; ObSysVars[665].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[665].id_ = SYS_VAR_DELAYED_QUEUE_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DELAYED_QUEUE_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DELAYED_QUEUE_SIZE] = 665 ; - ObSysVars[665].base_value_ = "1000" ; - ObSysVars[665].alias_ = "OB_SV_DELAYED_QUEUE_SIZE" ; + ObSysVars[665].id_ = SYS_VAR_DELAYED_INSERT_TIMEOUT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DELAYED_INSERT_TIMEOUT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DELAYED_INSERT_TIMEOUT] = 665 ; + ObSysVars[665].base_value_ = "300" ; + ObSysVars[665].alias_ = "OB_SV_DELAYED_INSERT_TIMEOUT" ; }(); [&] (){ - ObSysVars[666].default_value_ = "200" ; - ObSysVars[666].info_ = "This variable indicates the number of equality ranges in an equality comparison condition when the optimizer should switch from using index dives to index statistics in estimating the number of qualifying rows" ; - ObSysVars[666].name_ = "eq_range_index_dive_limit" ; - ObSysVars[666].data_type_ = ObIntType ; - ObSysVars[666].min_val_ = "0" ; - ObSysVars[666].max_val_ = "4294967295" ; - ObSysVars[666].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[666].id_ = SYS_VAR_EQ_RANGE_INDEX_DIVE_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_EQ_RANGE_INDEX_DIVE_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_EQ_RANGE_INDEX_DIVE_LIMIT] = 666 ; - ObSysVars[666].base_value_ = "200" ; - ObSysVars[666].alias_ = "OB_SV_EQ_RANGE_INDEX_DIVE_LIMIT" ; + ObSysVars[666].default_value_ = "1000" ; + ObSysVars[666].info_ = "" ; + ObSysVars[666].name_ = "delayed_queue_size" ; + ObSysVars[666].data_type_ = ObUInt64Type ; + ObSysVars[666].min_val_ = "1" ; + ObSysVars[666].max_val_ = "18446744073709551615" ; + ObSysVars[666].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[666].id_ = SYS_VAR_DELAYED_QUEUE_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DELAYED_QUEUE_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DELAYED_QUEUE_SIZE] = 666 ; + ObSysVars[666].base_value_ = "1000" ; + ObSysVars[666].alias_ = "OB_SV_DELAYED_QUEUE_SIZE" ; }(); [&] (){ - ObSysVars[667].default_value_ = "1" ; - ObSysVars[667].info_ = "Causes InnoDB to automatically recalculate persistent statistics after the data in a table is changed substantially, merely simulates MySQL 5.7" ; - ObSysVars[667].name_ = "innodb_stats_auto_recalc" ; + ObSysVars[667].default_value_ = "200" ; + ObSysVars[667].info_ = "This variable indicates the number of equality ranges in an equality comparison condition when the optimizer should switch from using index dives to index statistics in estimating the number of qualifying rows" ; + ObSysVars[667].name_ = "eq_range_index_dive_limit" ; ObSysVars[667].data_type_ = ObIntType ; - ObSysVars[667].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[667].id_ = SYS_VAR_INNODB_STATS_AUTO_RECALC ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_AUTO_RECALC)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_AUTO_RECALC] = 667 ; - ObSysVars[667].base_value_ = "1" ; - ObSysVars[667].alias_ = "OB_SV_INNODB_STATS_AUTO_RECALC" ; + ObSysVars[667].min_val_ = "0" ; + ObSysVars[667].max_val_ = "4294967295" ; + ObSysVars[667].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[667].id_ = SYS_VAR_EQ_RANGE_INDEX_DIVE_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_EQ_RANGE_INDEX_DIVE_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_EQ_RANGE_INDEX_DIVE_LIMIT] = 667 ; + ObSysVars[667].base_value_ = "200" ; + ObSysVars[667].alias_ = "OB_SV_EQ_RANGE_INDEX_DIVE_LIMIT" ; }(); [&] (){ - ObSysVars[668].default_value_ = "0" ; - ObSysVars[668].info_ = "When innodb_stats_include_delete_marked is enabled, ANALYZE TABLE considers delete-marked records when recalculating statistics" ; - ObSysVars[668].name_ = "innodb_stats_include_delete_marked" ; + ObSysVars[668].default_value_ = "1" ; + ObSysVars[668].info_ = "Causes InnoDB to automatically recalculate persistent statistics after the data in a table is changed substantially, merely simulates MySQL 5.7" ; + ObSysVars[668].name_ = "innodb_stats_auto_recalc" ; ObSysVars[668].data_type_ = ObIntType ; - ObSysVars[668].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[668].id_ = SYS_VAR_INNODB_STATS_INCLUDE_DELETE_MARKED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_INCLUDE_DELETE_MARKED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_INCLUDE_DELETE_MARKED] = 668 ; - ObSysVars[668].base_value_ = "0" ; - ObSysVars[668].alias_ = "OB_SV_INNODB_STATS_INCLUDE_DELETE_MARKED" ; + ObSysVars[668].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[668].id_ = SYS_VAR_INNODB_STATS_AUTO_RECALC ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_AUTO_RECALC)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_AUTO_RECALC] = 668 ; + ObSysVars[668].base_value_ = "1" ; + ObSysVars[668].alias_ = "OB_SV_INNODB_STATS_AUTO_RECALC" ; }(); [&] (){ ObSysVars[669].default_value_ = "0" ; - ObSysVars[669].info_ = "How the server treats NULL values when collecting statistics about the distribution of index values for InnoDB tables" ; - ObSysVars[669].name_ = "innodb_stats_method" ; + ObSysVars[669].info_ = "When innodb_stats_include_delete_marked is enabled, ANALYZE TABLE considers delete-marked records when recalculating statistics" ; + ObSysVars[669].name_ = "innodb_stats_include_delete_marked" ; ObSysVars[669].data_type_ = ObIntType ; - ObSysVars[669].enum_names_ = "[u'nulls_equal', u'nulls_unequal', u'nulls_ignored']" ; ObSysVars[669].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[669].id_ = SYS_VAR_INNODB_STATS_METHOD ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_METHOD)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_METHOD] = 669 ; + ObSysVars[669].id_ = SYS_VAR_INNODB_STATS_INCLUDE_DELETE_MARKED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_INCLUDE_DELETE_MARKED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_INCLUDE_DELETE_MARKED] = 669 ; ObSysVars[669].base_value_ = "0" ; - ObSysVars[669].alias_ = "OB_SV_INNODB_STATS_METHOD" ; + ObSysVars[669].alias_ = "OB_SV_INNODB_STATS_INCLUDE_DELETE_MARKED" ; }(); [&] (){ ObSysVars[670].default_value_ = "0" ; - ObSysVars[670].info_ = "When innodb_stats_on_metadata is enabled, InnoDB updates non-persistent statistics when metadata statements such as SHOW TABLE STATUS or when accessing the Information Schema TABLES or STATISTICS tables" ; - ObSysVars[670].name_ = "innodb_stats_on_metadata" ; + ObSysVars[670].info_ = "How the server treats NULL values when collecting statistics about the distribution of index values for InnoDB tables" ; + ObSysVars[670].name_ = "innodb_stats_method" ; ObSysVars[670].data_type_ = ObIntType ; + ObSysVars[670].enum_names_ = "[u'nulls_equal', u'nulls_unequal', u'nulls_ignored']" ; ObSysVars[670].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[670].id_ = SYS_VAR_INNODB_STATS_ON_METADATA ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_ON_METADATA)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_ON_METADATA] = 670 ; + ObSysVars[670].id_ = SYS_VAR_INNODB_STATS_METHOD ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_METHOD)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_METHOD] = 670 ; ObSysVars[670].base_value_ = "0" ; - ObSysVars[670].alias_ = "OB_SV_INNODB_STATS_ON_METADATA" ; + ObSysVars[670].alias_ = "OB_SV_INNODB_STATS_METHOD" ; }(); [&] (){ - ObSysVars[671].default_value_ = "" ; - ObSysVars[671].info_ = "The session value of this variable specifies the client version token list and indicates the tokens that the client session requires the server version token list to have, merely simulates MySQL 5.7" ; - ObSysVars[671].name_ = "version_tokens_session" ; - ObSysVars[671].data_type_ = ObVarcharType ; - ObSysVars[671].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[671].id_ = SYS_VAR_VERSION_TOKENS_SESSION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_VERSION_TOKENS_SESSION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_VERSION_TOKENS_SESSION] = 671 ; - ObSysVars[671].base_value_ = "" ; - ObSysVars[671].alias_ = "OB_SV_VERSION_TOKENS_SESSION" ; + ObSysVars[671].default_value_ = "0" ; + ObSysVars[671].info_ = "When innodb_stats_on_metadata is enabled, InnoDB updates non-persistent statistics when metadata statements such as SHOW TABLE STATUS or when accessing the Information Schema TABLES or STATISTICS tables" ; + ObSysVars[671].name_ = "innodb_stats_on_metadata" ; + ObSysVars[671].data_type_ = ObIntType ; + ObSysVars[671].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[671].id_ = SYS_VAR_INNODB_STATS_ON_METADATA ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_ON_METADATA)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_ON_METADATA] = 671 ; + ObSysVars[671].base_value_ = "0" ; + ObSysVars[671].alias_ = "OB_SV_INNODB_STATS_ON_METADATA" ; }(); [&] (){ - ObSysVars[672].default_value_ = "20" ; - ObSysVars[672].info_ = "The number of index pages to sample when estimating cardinality and other statistics for an indexed column, such as those calculated by ANALYZE TABLE" ; - ObSysVars[672].name_ = "innodb_stats_persistent_sample_pages" ; - ObSysVars[672].data_type_ = ObUInt64Type ; - ObSysVars[672].min_val_ = "1" ; - ObSysVars[672].max_val_ = "18446744073709551615" ; - ObSysVars[672].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[672].id_ = SYS_VAR_INNODB_STATS_PERSISTENT_SAMPLE_PAGES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_PERSISTENT_SAMPLE_PAGES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_PERSISTENT_SAMPLE_PAGES] = 672 ; - ObSysVars[672].base_value_ = "20" ; - ObSysVars[672].alias_ = "OB_SV_INNODB_STATS_PERSISTENT_SAMPLE_PAGES" ; + ObSysVars[672].default_value_ = "" ; + ObSysVars[672].info_ = "The session value of this variable specifies the client version token list and indicates the tokens that the client session requires the server version token list to have, merely simulates MySQL 5.7" ; + ObSysVars[672].name_ = "version_tokens_session" ; + ObSysVars[672].data_type_ = ObVarcharType ; + ObSysVars[672].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[672].id_ = SYS_VAR_VERSION_TOKENS_SESSION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_VERSION_TOKENS_SESSION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_VERSION_TOKENS_SESSION] = 672 ; + ObSysVars[672].base_value_ = "" ; + ObSysVars[672].alias_ = "OB_SV_VERSION_TOKENS_SESSION" ; }(); [&] (){ - ObSysVars[673].default_value_ = "8" ; + ObSysVars[673].default_value_ = "20" ; ObSysVars[673].info_ = "The number of index pages to sample when estimating cardinality and other statistics for an indexed column, such as those calculated by ANALYZE TABLE" ; - ObSysVars[673].name_ = "innodb_stats_sample_pages" ; + ObSysVars[673].name_ = "innodb_stats_persistent_sample_pages" ; ObSysVars[673].data_type_ = ObUInt64Type ; ObSysVars[673].min_val_ = "1" ; ObSysVars[673].max_val_ = "18446744073709551615" ; ObSysVars[673].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[673].id_ = SYS_VAR_INNODB_STATS_SAMPLE_PAGES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_SAMPLE_PAGES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_SAMPLE_PAGES] = 673 ; - ObSysVars[673].base_value_ = "8" ; - ObSysVars[673].alias_ = "OB_SV_INNODB_STATS_SAMPLE_PAGES" ; + ObSysVars[673].id_ = SYS_VAR_INNODB_STATS_PERSISTENT_SAMPLE_PAGES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_PERSISTENT_SAMPLE_PAGES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_PERSISTENT_SAMPLE_PAGES] = 673 ; + ObSysVars[673].base_value_ = "20" ; + ObSysVars[673].alias_ = "OB_SV_INNODB_STATS_PERSISTENT_SAMPLE_PAGES" ; }(); [&] (){ ObSysVars[674].default_value_ = "8" ; ObSysVars[674].info_ = "The number of index pages to sample when estimating cardinality and other statistics for an indexed column, such as those calculated by ANALYZE TABLE" ; - ObSysVars[674].name_ = "innodb_stats_transient_sample_pages" ; + ObSysVars[674].name_ = "innodb_stats_sample_pages" ; ObSysVars[674].data_type_ = ObUInt64Type ; ObSysVars[674].min_val_ = "1" ; ObSysVars[674].max_val_ = "18446744073709551615" ; ObSysVars[674].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[674].id_ = SYS_VAR_INNODB_STATS_TRANSIENT_SAMPLE_PAGES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_TRANSIENT_SAMPLE_PAGES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_TRANSIENT_SAMPLE_PAGES] = 674 ; + ObSysVars[674].id_ = SYS_VAR_INNODB_STATS_SAMPLE_PAGES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_SAMPLE_PAGES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_SAMPLE_PAGES] = 674 ; ObSysVars[674].base_value_ = "8" ; - ObSysVars[674].alias_ = "OB_SV_INNODB_STATS_TRANSIENT_SAMPLE_PAGES" ; + ObSysVars[674].alias_ = "OB_SV_INNODB_STATS_SAMPLE_PAGES" ; }(); [&] (){ - ObSysVars[675].default_value_ = "" ; - ObSysVars[675].info_ = "enables control over optimizer behavior" ; - ObSysVars[675].name_ = "optimizer_switch" ; - ObSysVars[675].data_type_ = ObVarcharType ; - ObSysVars[675].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[675].id_ = SYS_VAR_OPTIMIZER_SWITCH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_SWITCH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_SWITCH] = 675 ; - ObSysVars[675].base_value_ = "" ; - ObSysVars[675].alias_ = "OB_SV_OPTIMIZER_SWITCH" ; + ObSysVars[675].default_value_ = "8" ; + ObSysVars[675].info_ = "The number of index pages to sample when estimating cardinality and other statistics for an indexed column, such as those calculated by ANALYZE TABLE" ; + ObSysVars[675].name_ = "innodb_stats_transient_sample_pages" ; + ObSysVars[675].data_type_ = ObUInt64Type ; + ObSysVars[675].min_val_ = "1" ; + ObSysVars[675].max_val_ = "18446744073709551615" ; + ObSysVars[675].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[675].id_ = SYS_VAR_INNODB_STATS_TRANSIENT_SAMPLE_PAGES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_INNODB_STATS_TRANSIENT_SAMPLE_PAGES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_INNODB_STATS_TRANSIENT_SAMPLE_PAGES] = 675 ; + ObSysVars[675].base_value_ = "8" ; + ObSysVars[675].alias_ = "OB_SV_INNODB_STATS_TRANSIENT_SAMPLE_PAGES" ; }(); [&] (){ - ObSysVars[676].default_value_ = "100" ; - ObSysVars[676].info_ = "After max_connect_errors successive connection requests from a host are interrupted without a successful connection, the server blocks that host from further connections" ; - ObSysVars[676].name_ = "max_connect_errors" ; - ObSysVars[676].data_type_ = ObUInt64Type ; - ObSysVars[676].min_val_ = "1" ; - ObSysVars[676].max_val_ = "18446744073709551615" ; - ObSysVars[676].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[676].id_ = SYS_VAR_MAX_CONNECT_ERRORS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_CONNECT_ERRORS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MAX_CONNECT_ERRORS] = 676 ; - ObSysVars[676].base_value_ = "100" ; - ObSysVars[676].alias_ = "OB_SV_MAX_CONNECT_ERRORS" ; + ObSysVars[676].default_value_ = "" ; + ObSysVars[676].info_ = "enables control over optimizer behavior" ; + ObSysVars[676].name_ = "optimizer_switch" ; + ObSysVars[676].data_type_ = ObVarcharType ; + ObSysVars[676].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[676].id_ = SYS_VAR_OPTIMIZER_SWITCH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_SWITCH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_SWITCH] = 676 ; + ObSysVars[676].base_value_ = "" ; + ObSysVars[676].alias_ = "OB_SV_OPTIMIZER_SWITCH" ; }(); [&] (){ - ObSysVars[677].default_value_ = "0" ; - ObSysVars[677].info_ = "Whether MySQL Enterprise Firewall is enabled (the default) or disabled" ; - ObSysVars[677].name_ = "mysql_firewall_mode" ; - ObSysVars[677].data_type_ = ObIntType ; + ObSysVars[677].default_value_ = "100" ; + ObSysVars[677].info_ = "After max_connect_errors successive connection requests from a host are interrupted without a successful connection, the server blocks that host from further connections" ; + ObSysVars[677].name_ = "max_connect_errors" ; + ObSysVars[677].data_type_ = ObUInt64Type ; + ObSysVars[677].min_val_ = "1" ; + ObSysVars[677].max_val_ = "18446744073709551615" ; ObSysVars[677].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[677].id_ = SYS_VAR_MYSQL_FIREWALL_MODE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQL_FIREWALL_MODE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQL_FIREWALL_MODE] = 677 ; - ObSysVars[677].base_value_ = "0" ; - ObSysVars[677].alias_ = "OB_SV_MYSQL_FIREWALL_MODE" ; + ObSysVars[677].id_ = SYS_VAR_MAX_CONNECT_ERRORS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MAX_CONNECT_ERRORS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MAX_CONNECT_ERRORS] = 677 ; + ObSysVars[677].base_value_ = "100" ; + ObSysVars[677].alias_ = "OB_SV_MAX_CONNECT_ERRORS" ; }(); [&] (){ ObSysVars[678].default_value_ = "0" ; - ObSysVars[678].info_ = "Whether the MySQL Enterprise Firewall trace is enabled or disabled (the default)" ; - ObSysVars[678].name_ = "mysql_firewall_trace" ; + ObSysVars[678].info_ = "Whether MySQL Enterprise Firewall is enabled (the default) or disabled" ; + ObSysVars[678].name_ = "mysql_firewall_mode" ; ObSysVars[678].data_type_ = ObIntType ; ObSysVars[678].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[678].id_ = SYS_VAR_MYSQL_FIREWALL_TRACE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQL_FIREWALL_TRACE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQL_FIREWALL_TRACE] = 678 ; + ObSysVars[678].id_ = SYS_VAR_MYSQL_FIREWALL_MODE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQL_FIREWALL_MODE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQL_FIREWALL_MODE] = 678 ; ObSysVars[678].base_value_ = "0" ; - ObSysVars[678].alias_ = "OB_SV_MYSQL_FIREWALL_TRACE" ; + ObSysVars[678].alias_ = "OB_SV_MYSQL_FIREWALL_MODE" ; }(); [&] (){ ObSysVars[679].default_value_ = "0" ; - ObSysVars[679].info_ = "This variable controls whether the mysql_native_password built-in authentication plugin supports proxy users" ; - ObSysVars[679].name_ = "mysql_native_password_proxy_users" ; + ObSysVars[679].info_ = "Whether the MySQL Enterprise Firewall trace is enabled or disabled (the default)" ; + ObSysVars[679].name_ = "mysql_firewall_trace" ; ObSysVars[679].data_type_ = ObIntType ; ObSysVars[679].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[679].id_ = SYS_VAR_MYSQL_NATIVE_PASSWORD_PROXY_USERS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQL_NATIVE_PASSWORD_PROXY_USERS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_MYSQL_NATIVE_PASSWORD_PROXY_USERS] = 679 ; + ObSysVars[679].id_ = SYS_VAR_MYSQL_FIREWALL_TRACE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQL_FIREWALL_TRACE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQL_FIREWALL_TRACE] = 679 ; ObSysVars[679].base_value_ = "0" ; - ObSysVars[679].alias_ = "OB_SV_MYSQL_NATIVE_PASSWORD_PROXY_USERS" ; + ObSysVars[679].alias_ = "OB_SV_MYSQL_FIREWALL_TRACE" ; }(); [&] (){ - ObSysVars[680].default_value_ = "10" ; - ObSysVars[680].info_ = "If a read or write on a communication port is interrupted, retry this many times before giving up. This value should be set quite high on FreeBSD because internal interrupts are sent to all threads" ; - ObSysVars[680].name_ = "net_retry_count" ; - ObSysVars[680].data_type_ = ObUInt64Type ; + ObSysVars[680].default_value_ = "0" ; + ObSysVars[680].info_ = "This variable controls whether the mysql_native_password built-in authentication plugin supports proxy users" ; + ObSysVars[680].name_ = "mysql_native_password_proxy_users" ; + ObSysVars[680].data_type_ = ObIntType ; ObSysVars[680].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[680].id_ = SYS_VAR_NET_RETRY_COUNT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NET_RETRY_COUNT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NET_RETRY_COUNT] = 680 ; - ObSysVars[680].base_value_ = "10" ; - ObSysVars[680].alias_ = "OB_SV_NET_RETRY_COUNT" ; + ObSysVars[680].id_ = SYS_VAR_MYSQL_NATIVE_PASSWORD_PROXY_USERS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_MYSQL_NATIVE_PASSWORD_PROXY_USERS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_MYSQL_NATIVE_PASSWORD_PROXY_USERS] = 680 ; + ObSysVars[680].base_value_ = "0" ; + ObSysVars[680].alias_ = "OB_SV_MYSQL_NATIVE_PASSWORD_PROXY_USERS" ; }(); [&] (){ - ObSysVars[681].default_value_ = "0" ; - ObSysVars[681].info_ = "This variable was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility. Its value is always OFF" ; - ObSysVars[681].name_ = "new" ; - ObSysVars[681].data_type_ = ObIntType ; - ObSysVars[681].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[681].id_ = SYS_VAR_NEW ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NEW)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NEW] = 681 ; - ObSysVars[681].base_value_ = "0" ; - ObSysVars[681].alias_ = "OB_SV_NEW" ; + ObSysVars[681].default_value_ = "10" ; + ObSysVars[681].info_ = "If a read or write on a communication port is interrupted, retry this many times before giving up. This value should be set quite high on FreeBSD because internal interrupts are sent to all threads" ; + ObSysVars[681].name_ = "net_retry_count" ; + ObSysVars[681].data_type_ = ObUInt64Type ; + ObSysVars[681].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[681].id_ = SYS_VAR_NET_RETRY_COUNT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NET_RETRY_COUNT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NET_RETRY_COUNT] = 681 ; + ObSysVars[681].base_value_ = "10" ; + ObSysVars[681].alias_ = "OB_SV_NET_RETRY_COUNT" ; }(); [&] (){ ObSysVars[682].default_value_ = "0" ; - ObSysVars[682].info_ = "This variable controls the password hashing method used by the PASSWORD() function. It also influences password hashing performed by CREATE USER and GRANT statements that specify a password using an IDENTIFIED BY clause" ; - ObSysVars[682].name_ = "old_passwords" ; + ObSysVars[682].info_ = "This variable was used in MySQL 4.0 to turn on some 4.1 behaviors, and is retained for backward compatibility. Its value is always OFF" ; + ObSysVars[682].name_ = "new" ; ObSysVars[682].data_type_ = ObIntType ; - ObSysVars[682].enum_names_ = "[u'0', u'1', u'2']" ; ObSysVars[682].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[682].id_ = SYS_VAR_OLD_PASSWORDS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OLD_PASSWORDS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OLD_PASSWORDS] = 682 ; + ObSysVars[682].id_ = SYS_VAR_NEW ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NEW)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NEW] = 682 ; ObSysVars[682].base_value_ = "0" ; - ObSysVars[682].alias_ = "OB_SV_OLD_PASSWORDS" ; + ObSysVars[682].alias_ = "OB_SV_NEW" ; }(); [&] (){ - ObSysVars[683].default_value_ = "1" ; - ObSysVars[683].info_ = "Controls the heuristics applied during query optimization to prune less-promising partial plans from the optimizer search space" ; - ObSysVars[683].name_ = "optimizer_prune_level" ; + ObSysVars[683].default_value_ = "0" ; + ObSysVars[683].info_ = "This variable controls the password hashing method used by the PASSWORD() function. It also influences password hashing performed by CREATE USER and GRANT statements that specify a password using an IDENTIFIED BY clause" ; + ObSysVars[683].name_ = "old_passwords" ; ObSysVars[683].data_type_ = ObIntType ; - ObSysVars[683].min_val_ = "0" ; - ObSysVars[683].max_val_ = "1" ; + ObSysVars[683].enum_names_ = "[u'0', u'1', u'2']" ; ObSysVars[683].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[683].id_ = SYS_VAR_OPTIMIZER_PRUNE_LEVEL ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_PRUNE_LEVEL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_PRUNE_LEVEL] = 683 ; - ObSysVars[683].base_value_ = "1" ; - ObSysVars[683].alias_ = "OB_SV_OPTIMIZER_PRUNE_LEVEL" ; + ObSysVars[683].id_ = SYS_VAR_OLD_PASSWORDS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OLD_PASSWORDS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OLD_PASSWORDS] = 683 ; + ObSysVars[683].base_value_ = "0" ; + ObSysVars[683].alias_ = "OB_SV_OLD_PASSWORDS" ; }(); [&] (){ - ObSysVars[684].default_value_ = "62" ; - ObSysVars[684].info_ = "The maximum depth of search performed by the query optimizer" ; - ObSysVars[684].name_ = "optimizer_search_depth" ; + ObSysVars[684].default_value_ = "1" ; + ObSysVars[684].info_ = "Controls the heuristics applied during query optimization to prune less-promising partial plans from the optimizer search space" ; + ObSysVars[684].name_ = "optimizer_prune_level" ; ObSysVars[684].data_type_ = ObIntType ; ObSysVars[684].min_val_ = "0" ; - ObSysVars[684].max_val_ = "62" ; + ObSysVars[684].max_val_ = "1" ; ObSysVars[684].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[684].id_ = SYS_VAR_OPTIMIZER_SEARCH_DEPTH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_SEARCH_DEPTH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_SEARCH_DEPTH] = 684 ; - ObSysVars[684].base_value_ = "62" ; - ObSysVars[684].alias_ = "OB_SV_OPTIMIZER_SEARCH_DEPTH" ; + ObSysVars[684].id_ = SYS_VAR_OPTIMIZER_PRUNE_LEVEL ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_PRUNE_LEVEL)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_PRUNE_LEVEL] = 684 ; + ObSysVars[684].base_value_ = "1" ; + ObSysVars[684].alias_ = "OB_SV_OPTIMIZER_PRUNE_LEVEL" ; }(); [&] (){ - ObSysVars[685].default_value_ = "" ; - ObSysVars[685].info_ = "This variable controls optimizer tracing" ; - ObSysVars[685].name_ = "optimizer_trace" ; - ObSysVars[685].data_type_ = ObVarcharType ; + ObSysVars[685].default_value_ = "62" ; + ObSysVars[685].info_ = "The maximum depth of search performed by the query optimizer" ; + ObSysVars[685].name_ = "optimizer_search_depth" ; + ObSysVars[685].data_type_ = ObIntType ; + ObSysVars[685].min_val_ = "0" ; + ObSysVars[685].max_val_ = "62" ; ObSysVars[685].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[685].id_ = SYS_VAR_OPTIMIZER_TRACE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE] = 685 ; - ObSysVars[685].base_value_ = "" ; - ObSysVars[685].alias_ = "OB_SV_OPTIMIZER_TRACE" ; + ObSysVars[685].id_ = SYS_VAR_OPTIMIZER_SEARCH_DEPTH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_SEARCH_DEPTH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_SEARCH_DEPTH] = 685 ; + ObSysVars[685].base_value_ = "62" ; + ObSysVars[685].alias_ = "OB_SV_OPTIMIZER_SEARCH_DEPTH" ; }(); [&] (){ ObSysVars[686].default_value_ = "" ; - ObSysVars[686].info_ = "This variable enables or disables selected optimizer tracing features" ; - ObSysVars[686].name_ = "optimizer_trace_features" ; + ObSysVars[686].info_ = "This variable controls optimizer tracing" ; + ObSysVars[686].name_ = "optimizer_trace" ; ObSysVars[686].data_type_ = ObVarcharType ; ObSysVars[686].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[686].id_ = SYS_VAR_OPTIMIZER_TRACE_FEATURES ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE_FEATURES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE_FEATURES] = 686 ; + ObSysVars[686].id_ = SYS_VAR_OPTIMIZER_TRACE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE] = 686 ; ObSysVars[686].base_value_ = "" ; - ObSysVars[686].alias_ = "OB_SV_OPTIMIZER_TRACE_FEATURES" ; + ObSysVars[686].alias_ = "OB_SV_OPTIMIZER_TRACE" ; }(); [&] (){ - ObSysVars[687].default_value_ = "1" ; - ObSysVars[687].info_ = "The maximum number of optimizer traces to display" ; - ObSysVars[687].name_ = "optimizer_trace_limit" ; - ObSysVars[687].data_type_ = ObIntType ; - ObSysVars[687].min_val_ = "0" ; - ObSysVars[687].max_val_ = "2147483647" ; + ObSysVars[687].default_value_ = "" ; + ObSysVars[687].info_ = "This variable enables or disables selected optimizer tracing features" ; + ObSysVars[687].name_ = "optimizer_trace_features" ; + ObSysVars[687].data_type_ = ObVarcharType ; ObSysVars[687].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[687].id_ = SYS_VAR_OPTIMIZER_TRACE_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE_LIMIT] = 687 ; - ObSysVars[687].base_value_ = "1" ; - ObSysVars[687].alias_ = "OB_SV_OPTIMIZER_TRACE_LIMIT" ; + ObSysVars[687].id_ = SYS_VAR_OPTIMIZER_TRACE_FEATURES ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE_FEATURES)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE_FEATURES] = 687 ; + ObSysVars[687].base_value_ = "" ; + ObSysVars[687].alias_ = "OB_SV_OPTIMIZER_TRACE_FEATURES" ; }(); [&] (){ - ObSysVars[688].default_value_ = "16384" ; - ObSysVars[688].info_ = "The maximum cumulative size of stored optimizer traces" ; - ObSysVars[688].name_ = "optimizer_trace_max_mem_size" ; - ObSysVars[688].data_type_ = ObUInt64Type ; + ObSysVars[688].default_value_ = "1" ; + ObSysVars[688].info_ = "The maximum number of optimizer traces to display" ; + ObSysVars[688].name_ = "optimizer_trace_limit" ; + ObSysVars[688].data_type_ = ObIntType ; ObSysVars[688].min_val_ = "0" ; - ObSysVars[688].max_val_ = "4294967295" ; + ObSysVars[688].max_val_ = "2147483647" ; ObSysVars[688].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[688].id_ = SYS_VAR_OPTIMIZER_TRACE_MAX_MEM_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE_MAX_MEM_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE_MAX_MEM_SIZE] = 688 ; - ObSysVars[688].base_value_ = "16384" ; - ObSysVars[688].alias_ = "OB_SV_OPTIMIZER_TRACE_MAX_MEM_SIZE" ; + ObSysVars[688].id_ = SYS_VAR_OPTIMIZER_TRACE_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE_LIMIT] = 688 ; + ObSysVars[688].base_value_ = "1" ; + ObSysVars[688].alias_ = "OB_SV_OPTIMIZER_TRACE_LIMIT" ; }(); [&] (){ - ObSysVars[689].default_value_ = "-1" ; - ObSysVars[689].info_ = "The offset of optimizer traces to display" ; - ObSysVars[689].name_ = "optimizer_trace_offset" ; - ObSysVars[689].data_type_ = ObIntType ; - ObSysVars[689].min_val_ = "-2147483647" ; - ObSysVars[689].max_val_ = "2147483647" ; + ObSysVars[689].default_value_ = "16384" ; + ObSysVars[689].info_ = "The maximum cumulative size of stored optimizer traces" ; + ObSysVars[689].name_ = "optimizer_trace_max_mem_size" ; + ObSysVars[689].data_type_ = ObUInt64Type ; + ObSysVars[689].min_val_ = "0" ; + ObSysVars[689].max_val_ = "4294967295" ; ObSysVars[689].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[689].id_ = SYS_VAR_OPTIMIZER_TRACE_OFFSET ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE_OFFSET)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE_OFFSET] = 689 ; - ObSysVars[689].base_value_ = "-1" ; - ObSysVars[689].alias_ = "OB_SV_OPTIMIZER_TRACE_OFFSET" ; + ObSysVars[689].id_ = SYS_VAR_OPTIMIZER_TRACE_MAX_MEM_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE_MAX_MEM_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE_MAX_MEM_SIZE] = 689 ; + ObSysVars[689].base_value_ = "16384" ; + ObSysVars[689].alias_ = "OB_SV_OPTIMIZER_TRACE_MAX_MEM_SIZE" ; }(); [&] (){ - ObSysVars[690].default_value_ = "18446744073709551615" ; - ObSysVars[690].info_ = "The maximum amount of memory available to the parser" ; - ObSysVars[690].name_ = "parser_max_mem_size" ; - ObSysVars[690].data_type_ = ObUInt64Type ; - ObSysVars[690].min_val_ = "10000000" ; - ObSysVars[690].max_val_ = "18446744073709551615" ; + ObSysVars[690].default_value_ = "-1" ; + ObSysVars[690].info_ = "The offset of optimizer traces to display" ; + ObSysVars[690].name_ = "optimizer_trace_offset" ; + ObSysVars[690].data_type_ = ObIntType ; + ObSysVars[690].min_val_ = "-2147483647" ; + ObSysVars[690].max_val_ = "2147483647" ; ObSysVars[690].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[690].id_ = SYS_VAR_PARSER_MAX_MEM_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PARSER_MAX_MEM_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PARSER_MAX_MEM_SIZE] = 690 ; - ObSysVars[690].base_value_ = "18446744073709551615" ; - ObSysVars[690].alias_ = "OB_SV_PARSER_MAX_MEM_SIZE" ; + ObSysVars[690].id_ = SYS_VAR_OPTIMIZER_TRACE_OFFSET ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OPTIMIZER_TRACE_OFFSET)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_OPTIMIZER_TRACE_OFFSET] = 690 ; + ObSysVars[690].base_value_ = "-1" ; + ObSysVars[690].alias_ = "OB_SV_OPTIMIZER_TRACE_OFFSET" ; }(); [&] (){ - ObSysVars[691].default_value_ = "0" ; - ObSysVars[691].info_ = "For statements that invoke RAND(), the source passes two values to the replica, where they are used to seed the random number generator" ; - ObSysVars[691].name_ = "rand_seed1" ; + ObSysVars[691].default_value_ = "18446744073709551615" ; + ObSysVars[691].info_ = "The maximum amount of memory available to the parser" ; + ObSysVars[691].name_ = "parser_max_mem_size" ; ObSysVars[691].data_type_ = ObUInt64Type ; - ObSysVars[691].min_val_ = "0" ; - ObSysVars[691].max_val_ = "4294967295" ; - ObSysVars[691].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[691].id_ = SYS_VAR_RAND_SEED1 ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RAND_SEED1)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RAND_SEED1] = 691 ; - ObSysVars[691].base_value_ = "0" ; - ObSysVars[691].alias_ = "OB_SV_RAND_SEED1" ; + ObSysVars[691].min_val_ = "10000000" ; + ObSysVars[691].max_val_ = "18446744073709551615" ; + ObSysVars[691].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[691].id_ = SYS_VAR_PARSER_MAX_MEM_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PARSER_MAX_MEM_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PARSER_MAX_MEM_SIZE] = 691 ; + ObSysVars[691].base_value_ = "18446744073709551615" ; + ObSysVars[691].alias_ = "OB_SV_PARSER_MAX_MEM_SIZE" ; }(); [&] (){ ObSysVars[692].default_value_ = "0" ; ObSysVars[692].info_ = "For statements that invoke RAND(), the source passes two values to the replica, where they are used to seed the random number generator" ; - ObSysVars[692].name_ = "rand_seed2" ; + ObSysVars[692].name_ = "rand_seed1" ; ObSysVars[692].data_type_ = ObUInt64Type ; ObSysVars[692].min_val_ = "0" ; ObSysVars[692].max_val_ = "4294967295" ; ObSysVars[692].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[692].id_ = SYS_VAR_RAND_SEED2 ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RAND_SEED2)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RAND_SEED2] = 692 ; + ObSysVars[692].id_ = SYS_VAR_RAND_SEED1 ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RAND_SEED1)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RAND_SEED1] = 692 ; ObSysVars[692].base_value_ = "0" ; - ObSysVars[692].alias_ = "OB_SV_RAND_SEED2" ; + ObSysVars[692].alias_ = "OB_SV_RAND_SEED1" ; }(); [&] (){ - ObSysVars[693].default_value_ = "4096" ; - ObSysVars[693].info_ = "The size in bytes of blocks that are allocated when doing range optimization" ; - ObSysVars[693].name_ = "range_alloc_block_size" ; + ObSysVars[693].default_value_ = "0" ; + ObSysVars[693].info_ = "For statements that invoke RAND(), the source passes two values to the replica, where they are used to seed the random number generator" ; + ObSysVars[693].name_ = "rand_seed2" ; ObSysVars[693].data_type_ = ObUInt64Type ; - ObSysVars[693].min_val_ = "4096" ; - ObSysVars[693].max_val_ = "18446744073709550592" ; - ObSysVars[693].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[693].id_ = SYS_VAR_RANGE_ALLOC_BLOCK_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RANGE_ALLOC_BLOCK_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RANGE_ALLOC_BLOCK_SIZE] = 693 ; - ObSysVars[693].base_value_ = "4096" ; - ObSysVars[693].alias_ = "OB_SV_RANGE_ALLOC_BLOCK_SIZE" ; + ObSysVars[693].min_val_ = "0" ; + ObSysVars[693].max_val_ = "4294967295" ; + ObSysVars[693].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[693].id_ = SYS_VAR_RAND_SEED2 ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RAND_SEED2)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RAND_SEED2] = 693 ; + ObSysVars[693].base_value_ = "0" ; + ObSysVars[693].alias_ = "OB_SV_RAND_SEED2" ; }(); [&] (){ - ObSysVars[694].default_value_ = "8388608" ; - ObSysVars[694].info_ = "The limit on memory consumption for the range optimizer" ; - ObSysVars[694].name_ = "range_optimizer_max_mem_size" ; + ObSysVars[694].default_value_ = "4096" ; + ObSysVars[694].info_ = "The size in bytes of blocks that are allocated when doing range optimization" ; + ObSysVars[694].name_ = "range_alloc_block_size" ; ObSysVars[694].data_type_ = ObUInt64Type ; - ObSysVars[694].min_val_ = "0" ; - ObSysVars[694].max_val_ = "18446744073709551615" ; + ObSysVars[694].min_val_ = "4096" ; + ObSysVars[694].max_val_ = "18446744073709550592" ; ObSysVars[694].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[694].id_ = SYS_VAR_RANGE_OPTIMIZER_MAX_MEM_SIZE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RANGE_OPTIMIZER_MAX_MEM_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RANGE_OPTIMIZER_MAX_MEM_SIZE] = 694 ; - ObSysVars[694].base_value_ = "8388608" ; - ObSysVars[694].alias_ = "OB_SV_RANGE_OPTIMIZER_MAX_MEM_SIZE" ; + ObSysVars[694].id_ = SYS_VAR_RANGE_ALLOC_BLOCK_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RANGE_ALLOC_BLOCK_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RANGE_ALLOC_BLOCK_SIZE] = 694 ; + ObSysVars[694].base_value_ = "4096" ; + ObSysVars[694].alias_ = "OB_SV_RANGE_ALLOC_BLOCK_SIZE" ; }(); [&] (){ - ObSysVars[695].default_value_ = "1" ; - ObSysVars[695].info_ = "Whether the Rewriter query rewrite plugin is enabled" ; - ObSysVars[695].name_ = "rewriter_enabled" ; - ObSysVars[695].data_type_ = ObIntType ; - ObSysVars[695].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[695].id_ = SYS_VAR_REWRITER_ENABLED ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REWRITER_ENABLED)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_REWRITER_ENABLED] = 695 ; - ObSysVars[695].base_value_ = "1" ; - ObSysVars[695].alias_ = "OB_SV_REWRITER_ENABLED" ; + ObSysVars[695].default_value_ = "8388608" ; + ObSysVars[695].info_ = "The limit on memory consumption for the range optimizer" ; + ObSysVars[695].name_ = "range_optimizer_max_mem_size" ; + ObSysVars[695].data_type_ = ObUInt64Type ; + ObSysVars[695].min_val_ = "0" ; + ObSysVars[695].max_val_ = "18446744073709551615" ; + ObSysVars[695].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[695].id_ = SYS_VAR_RANGE_OPTIMIZER_MAX_MEM_SIZE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RANGE_OPTIMIZER_MAX_MEM_SIZE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RANGE_OPTIMIZER_MAX_MEM_SIZE] = 695 ; + ObSysVars[695].base_value_ = "8388608" ; + ObSysVars[695].alias_ = "OB_SV_RANGE_OPTIMIZER_MAX_MEM_SIZE" ; }(); [&] (){ - ObSysVars[696].default_value_ = "0" ; - ObSysVars[696].info_ = "For internal use in MySQL" ; - ObSysVars[696].name_ = "rewriter_verbose" ; + ObSysVars[696].default_value_ = "1" ; + ObSysVars[696].info_ = "Whether the Rewriter query rewrite plugin is enabled" ; + ObSysVars[696].name_ = "rewriter_enabled" ; ObSysVars[696].data_type_ = ObIntType ; ObSysVars[696].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[696].id_ = SYS_VAR_REWRITER_VERBOSE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REWRITER_VERBOSE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_REWRITER_VERBOSE] = 696 ; - ObSysVars[696].base_value_ = "0" ; - ObSysVars[696].alias_ = "OB_SV_REWRITER_VERBOSE" ; + ObSysVars[696].id_ = SYS_VAR_REWRITER_ENABLED ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REWRITER_ENABLED)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_REWRITER_ENABLED] = 696 ; + ObSysVars[696].base_value_ = "1" ; + ObSysVars[696].alias_ = "OB_SV_REWRITER_ENABLED" ; }(); [&] (){ - ObSysVars[697].default_value_ = "1" ; - ObSysVars[697].info_ = "If this variable is enabled, the server blocks connections by clients that attempt to use accounts that have passwords stored in the old (pre-4.1) format" ; - ObSysVars[697].name_ = "secure_auth" ; + ObSysVars[697].default_value_ = "0" ; + ObSysVars[697].info_ = "For internal use in MySQL" ; + ObSysVars[697].name_ = "rewriter_verbose" ; ObSysVars[697].data_type_ = ObIntType ; ObSysVars[697].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[697].id_ = SYS_VAR_SECURE_AUTH ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SECURE_AUTH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SECURE_AUTH] = 697 ; - ObSysVars[697].base_value_ = "1" ; - ObSysVars[697].alias_ = "OB_SV_SECURE_AUTH" ; + ObSysVars[697].id_ = SYS_VAR_REWRITER_VERBOSE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_REWRITER_VERBOSE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_REWRITER_VERBOSE] = 697 ; + ObSysVars[697].base_value_ = "0" ; + ObSysVars[697].alias_ = "OB_SV_REWRITER_VERBOSE" ; }(); [&] (){ - ObSysVars[698].default_value_ = "0" ; - ObSysVars[698].info_ = "This variable controls whether the sha256_password built-in authentication plugin supports proxy users" ; - ObSysVars[698].name_ = "sha256_password_proxy_users" ; + ObSysVars[698].default_value_ = "1" ; + ObSysVars[698].info_ = "If this variable is enabled, the server blocks connections by clients that attempt to use accounts that have passwords stored in the old (pre-4.1) format" ; + ObSysVars[698].name_ = "secure_auth" ; ObSysVars[698].data_type_ = ObIntType ; ObSysVars[698].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[698].id_ = SYS_VAR_SHA256_PASSWORD_PROXY_USERS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHA256_PASSWORD_PROXY_USERS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SHA256_PASSWORD_PROXY_USERS] = 698 ; - ObSysVars[698].base_value_ = "0" ; - ObSysVars[698].alias_ = "OB_SV_SHA256_PASSWORD_PROXY_USERS" ; + ObSysVars[698].id_ = SYS_VAR_SECURE_AUTH ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SECURE_AUTH)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SECURE_AUTH] = 698 ; + ObSysVars[698].base_value_ = "1" ; + ObSysVars[698].alias_ = "OB_SV_SECURE_AUTH" ; }(); [&] (){ ObSysVars[699].default_value_ = "0" ; - ObSysVars[699].info_ = "which affects whether MySQL 5.6 compatibility is enabled with respect to how system and status variable information is provided by the INFORMATION_SCHEMA and Performance Schema tables, and also by the SHOW VARIABLES and SHOW STATUS statements" ; - ObSysVars[699].name_ = "show_compatibility_56" ; + ObSysVars[699].info_ = "This variable controls whether the sha256_password built-in authentication plugin supports proxy users" ; + ObSysVars[699].name_ = "sha256_password_proxy_users" ; ObSysVars[699].data_type_ = ObIntType ; ObSysVars[699].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[699].id_ = SYS_VAR_SHOW_COMPATIBILITY_56 ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHOW_COMPATIBILITY_56)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SHOW_COMPATIBILITY_56] = 699 ; + ObSysVars[699].id_ = SYS_VAR_SHA256_PASSWORD_PROXY_USERS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHA256_PASSWORD_PROXY_USERS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SHA256_PASSWORD_PROXY_USERS] = 699 ; ObSysVars[699].base_value_ = "0" ; - ObSysVars[699].alias_ = "OB_SV_SHOW_COMPATIBILITY_56" ; + ObSysVars[699].alias_ = "OB_SV_SHA256_PASSWORD_PROXY_USERS" ; }(); [&] (){ ObSysVars[700].default_value_ = "0" ; - ObSysVars[700].info_ = "Enabling this variable causes SHOW CREATE TABLE to display ROW_FORMAT regardless of whether it is the default format" ; - ObSysVars[700].name_ = "show_create_table_verbosity" ; + ObSysVars[700].info_ = "which affects whether MySQL 5.6 compatibility is enabled with respect to how system and status variable information is provided by the INFORMATION_SCHEMA and Performance Schema tables, and also by the SHOW VARIABLES and SHOW STATUS statements" ; + ObSysVars[700].name_ = "show_compatibility_56" ; ObSysVars[700].data_type_ = ObIntType ; - ObSysVars[700].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[700].id_ = SYS_VAR_SHOW_CREATE_TABLE_VERBOSITY ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHOW_CREATE_TABLE_VERBOSITY)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SHOW_CREATE_TABLE_VERBOSITY] = 700 ; + ObSysVars[700].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[700].id_ = SYS_VAR_SHOW_COMPATIBILITY_56 ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHOW_COMPATIBILITY_56)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SHOW_COMPATIBILITY_56] = 700 ; ObSysVars[700].base_value_ = "0" ; - ObSysVars[700].alias_ = "OB_SV_SHOW_CREATE_TABLE_VERBOSITY" ; + ObSysVars[700].alias_ = "OB_SV_SHOW_COMPATIBILITY_56" ; }(); [&] (){ ObSysVars[701].default_value_ = "0" ; - ObSysVars[701].info_ = "Whether SHOW CREATE TABLE output includes comments" ; - ObSysVars[701].name_ = "show_old_temporals" ; + ObSysVars[701].info_ = "Enabling this variable causes SHOW CREATE TABLE to display ROW_FORMAT regardless of whether it is the default format" ; + ObSysVars[701].name_ = "show_create_table_verbosity" ; ObSysVars[701].data_type_ = ObIntType ; ObSysVars[701].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[701].id_ = SYS_VAR_SHOW_OLD_TEMPORALS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHOW_OLD_TEMPORALS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SHOW_OLD_TEMPORALS] = 701 ; + ObSysVars[701].id_ = SYS_VAR_SHOW_CREATE_TABLE_VERBOSITY ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHOW_CREATE_TABLE_VERBOSITY)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SHOW_CREATE_TABLE_VERBOSITY] = 701 ; ObSysVars[701].base_value_ = "0" ; - ObSysVars[701].alias_ = "OB_SV_SHOW_OLD_TEMPORALS" ; + ObSysVars[701].alias_ = "OB_SV_SHOW_CREATE_TABLE_VERBOSITY" ; }(); [&] (){ - ObSysVars[702].default_value_ = "1" ; - ObSysVars[702].info_ = "If set to OFF, MySQL aborts SELECT statements that are likely to take a very long time to execute" ; - ObSysVars[702].name_ = "sql_big_selects" ; + ObSysVars[702].default_value_ = "0" ; + ObSysVars[702].info_ = "Whether SHOW CREATE TABLE output includes comments" ; + ObSysVars[702].name_ = "show_old_temporals" ; ObSysVars[702].data_type_ = ObIntType ; ObSysVars[702].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[702].id_ = SYS_VAR_SQL_BIG_SELECTS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SQL_BIG_SELECTS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SQL_BIG_SELECTS] = 702 ; - ObSysVars[702].base_value_ = "1" ; - ObSysVars[702].alias_ = "OB_SV_SQL_BIG_SELECTS" ; + ObSysVars[702].id_ = SYS_VAR_SHOW_OLD_TEMPORALS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SHOW_OLD_TEMPORALS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SHOW_OLD_TEMPORALS] = 702 ; + ObSysVars[702].base_value_ = "0" ; + ObSysVars[702].alias_ = "OB_SV_SHOW_OLD_TEMPORALS" ; }(); [&] (){ ObSysVars[703].default_value_ = "1" ; - ObSysVars[703].info_ = "This variable controls whether updates to a view can be made when the view does not contain all columns of the primary key defined in the underlying table, if the update statement contains a LIMIT clause" ; - ObSysVars[703].name_ = "updatable_views_with_limit" ; + ObSysVars[703].info_ = "If set to OFF, MySQL aborts SELECT statements that are likely to take a very long time to execute" ; + ObSysVars[703].name_ = "sql_big_selects" ; ObSysVars[703].data_type_ = ObIntType ; - ObSysVars[703].enum_names_ = "[u'OFF', u'ON', u'NO', u'YES']" ; ObSysVars[703].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[703].id_ = SYS_VAR_UPDATABLE_VIEWS_WITH_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_UPDATABLE_VIEWS_WITH_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_UPDATABLE_VIEWS_WITH_LIMIT] = 703 ; + ObSysVars[703].id_ = SYS_VAR_SQL_BIG_SELECTS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SQL_BIG_SELECTS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SQL_BIG_SELECTS] = 703 ; ObSysVars[703].base_value_ = "1" ; - ObSysVars[703].alias_ = "OB_SV_UPDATABLE_VIEWS_WITH_LIMIT" ; + ObSysVars[703].alias_ = "OB_SV_SQL_BIG_SELECTS" ; }(); [&] (){ - ObSysVars[704].default_value_ = "" ; - ObSysVars[704].info_ = "The path name of the dictionary file that validate_password uses for checking passwords." ; - ObSysVars[704].name_ = "validate_password_dictionary_file" ; - ObSysVars[704].data_type_ = ObVarcharType ; - ObSysVars[704].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[704].id_ = SYS_VAR_VALIDATE_PASSWORD_DICTIONARY_FILE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_VALIDATE_PASSWORD_DICTIONARY_FILE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_VALIDATE_PASSWORD_DICTIONARY_FILE] = 704 ; - ObSysVars[704].base_value_ = "" ; - ObSysVars[704].alias_ = "OB_SV_VALIDATE_PASSWORD_DICTIONARY_FILE" ; + ObSysVars[704].default_value_ = "1" ; + ObSysVars[704].info_ = "This variable controls whether updates to a view can be made when the view does not contain all columns of the primary key defined in the underlying table, if the update statement contains a LIMIT clause" ; + ObSysVars[704].name_ = "updatable_views_with_limit" ; + ObSysVars[704].data_type_ = ObIntType ; + ObSysVars[704].enum_names_ = "[u'OFF', u'ON', u'NO', u'YES']" ; + ObSysVars[704].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[704].id_ = SYS_VAR_UPDATABLE_VIEWS_WITH_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_UPDATABLE_VIEWS_WITH_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_UPDATABLE_VIEWS_WITH_LIMIT] = 704 ; + ObSysVars[704].base_value_ = "1" ; + ObSysVars[704].alias_ = "OB_SV_UPDATABLE_VIEWS_WITH_LIMIT" ; }(); [&] (){ - ObSysVars[705].default_value_ = "100" ; - ObSysVars[705].info_ = "" ; - ObSysVars[705].name_ = "delayed_insert_limit" ; - ObSysVars[705].data_type_ = ObUInt64Type ; - ObSysVars[705].min_val_ = "1" ; - ObSysVars[705].max_val_ = "18446744073709551615" ; + ObSysVars[705].default_value_ = "" ; + ObSysVars[705].info_ = "The path name of the dictionary file that validate_password uses for checking passwords." ; + ObSysVars[705].name_ = "validate_password_dictionary_file" ; + ObSysVars[705].data_type_ = ObVarcharType ; ObSysVars[705].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[705].id_ = SYS_VAR_DELAYED_INSERT_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DELAYED_INSERT_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_DELAYED_INSERT_LIMIT] = 705 ; - ObSysVars[705].base_value_ = "100" ; - ObSysVars[705].alias_ = "OB_SV_DELAYED_INSERT_LIMIT" ; + ObSysVars[705].id_ = SYS_VAR_VALIDATE_PASSWORD_DICTIONARY_FILE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_VALIDATE_PASSWORD_DICTIONARY_FILE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_VALIDATE_PASSWORD_DICTIONARY_FILE] = 705 ; + ObSysVars[705].base_value_ = "" ; + ObSysVars[705].alias_ = "OB_SV_VALIDATE_PASSWORD_DICTIONARY_FILE" ; }(); [&] (){ - ObSysVars[706].default_value_ = "" ; - ObSysVars[706].info_ = "NDB engine version in ndb-x.y.z format" ; - ObSysVars[706].name_ = "ndb_version" ; - ObSysVars[706].data_type_ = ObVarcharType ; - ObSysVars[706].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[706].id_ = SYS_VAR_NDB_VERSION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_VERSION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_NDB_VERSION] = 706 ; - ObSysVars[706].base_value_ = "" ; - ObSysVars[706].alias_ = "OB_SV_NDB_VERSION" ; + ObSysVars[706].default_value_ = "100" ; + ObSysVars[706].info_ = "" ; + ObSysVars[706].name_ = "delayed_insert_limit" ; + ObSysVars[706].data_type_ = ObUInt64Type ; + ObSysVars[706].min_val_ = "1" ; + ObSysVars[706].max_val_ = "18446744073709551615" ; + ObSysVars[706].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[706].id_ = SYS_VAR_DELAYED_INSERT_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_DELAYED_INSERT_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_DELAYED_INSERT_LIMIT] = 706 ; + ObSysVars[706].base_value_ = "100" ; + ObSysVars[706].alias_ = "OB_SV_DELAYED_INSERT_LIMIT" ; }(); [&] (){ - ObSysVars[707].default_value_ = "1" ; - ObSysVars[707].info_ = "This variable is available if the server was compiled using OpenSSL. It controls whether the server autogenerates SSL key and certificate files in the data directory, if they do not already exist" ; - ObSysVars[707].name_ = "auto_generate_certs" ; - ObSysVars[707].data_type_ = ObIntType ; + ObSysVars[707].default_value_ = "" ; + ObSysVars[707].info_ = "NDB engine version in ndb-x.y.z format" ; + ObSysVars[707].name_ = "ndb_version" ; + ObSysVars[707].data_type_ = ObVarcharType ; ObSysVars[707].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; - ObSysVars[707].id_ = SYS_VAR_AUTO_GENERATE_CERTS ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_AUTO_GENERATE_CERTS)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_AUTO_GENERATE_CERTS] = 707 ; - ObSysVars[707].base_value_ = "1" ; - ObSysVars[707].alias_ = "OB_SV_AUTO_GENERATE_CERTS" ; + ObSysVars[707].id_ = SYS_VAR_NDB_VERSION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_NDB_VERSION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_NDB_VERSION] = 707 ; + ObSysVars[707].base_value_ = "" ; + ObSysVars[707].alias_ = "OB_SV_NDB_VERSION" ; }(); [&] (){ ObSysVars[708].default_value_ = "1" ; - ObSysVars[708].info_ = "control cost-based transformation search policy" ; - ObSysVars[708].name_ = "_optimizer_cost_based_transformation" ; + ObSysVars[708].info_ = "This variable is available if the server was compiled using OpenSSL. It controls whether the server autogenerates SSL key and certificate files in the data directory, if they do not already exist" ; + ObSysVars[708].name_ = "auto_generate_certs" ; ObSysVars[708].data_type_ = ObIntType ; - ObSysVars[708].min_val_ = "0" ; - ObSysVars[708].max_val_ = "2" ; - ObSysVars[708].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[708].id_ = SYS_VAR__OPTIMIZER_COST_BASED_TRANSFORMATION ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR__OPTIMIZER_COST_BASED_TRANSFORMATION)) ; - ObSysVarsIdToArrayIdx[SYS_VAR__OPTIMIZER_COST_BASED_TRANSFORMATION] = 708 ; + ObSysVars[708].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::MYSQL_ONLY | ObSysVarFlag::READONLY ; + ObSysVars[708].id_ = SYS_VAR_AUTO_GENERATE_CERTS ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_AUTO_GENERATE_CERTS)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_AUTO_GENERATE_CERTS] = 708 ; ObSysVars[708].base_value_ = "1" ; - ObSysVars[708].alias_ = "OB_SV__OPTIMIZER_COST_BASED_TRANSFORMATION" ; + ObSysVars[708].alias_ = "OB_SV_AUTO_GENERATE_CERTS" ; }(); [&] (){ - ObSysVars[709].default_value_ = "10" ; - ObSysVars[709].info_ = "Indicate the limit on the number of ranges when optimizer use storage cardinality estimation" ; - ObSysVars[709].name_ = "range_index_dive_limit" ; + ObSysVars[709].default_value_ = "1" ; + ObSysVars[709].info_ = "control cost-based transformation search policy" ; + ObSysVars[709].name_ = "_optimizer_cost_based_transformation" ; ObSysVars[709].data_type_ = ObIntType ; - ObSysVars[709].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE ; - ObSysVars[709].id_ = SYS_VAR_RANGE_INDEX_DIVE_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RANGE_INDEX_DIVE_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_RANGE_INDEX_DIVE_LIMIT] = 709 ; - ObSysVars[709].base_value_ = "10" ; - ObSysVars[709].alias_ = "OB_SV_RANGE_INDEX_DIVE_LIMIT" ; + ObSysVars[709].min_val_ = "0" ; + ObSysVars[709].max_val_ = "2" ; + ObSysVars[709].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[709].id_ = SYS_VAR__OPTIMIZER_COST_BASED_TRANSFORMATION ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR__OPTIMIZER_COST_BASED_TRANSFORMATION)) ; + ObSysVarsIdToArrayIdx[SYS_VAR__OPTIMIZER_COST_BASED_TRANSFORMATION] = 709 ; + ObSysVars[709].base_value_ = "1" ; + ObSysVars[709].alias_ = "OB_SV__OPTIMIZER_COST_BASED_TRANSFORMATION" ; }(); [&] (){ ObSysVars[710].default_value_ = "10" ; - ObSysVars[710].info_ = "Indicate the limit on the number of partitions when optimizer use storage cardinality estimation" ; - ObSysVars[710].name_ = "partition_index_dive_limit" ; + ObSysVars[710].info_ = "Indicate the limit on the number of ranges when optimizer use storage cardinality estimation" ; + ObSysVars[710].name_ = "range_index_dive_limit" ; ObSysVars[710].data_type_ = ObIntType ; ObSysVars[710].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE ; - ObSysVars[710].id_ = SYS_VAR_PARTITION_INDEX_DIVE_LIMIT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PARTITION_INDEX_DIVE_LIMIT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PARTITION_INDEX_DIVE_LIMIT] = 710 ; + ObSysVars[710].id_ = SYS_VAR_RANGE_INDEX_DIVE_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_RANGE_INDEX_DIVE_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_RANGE_INDEX_DIVE_LIMIT] = 710 ; ObSysVars[710].base_value_ = "10" ; - ObSysVars[710].alias_ = "OB_SV_PARTITION_INDEX_DIVE_LIMIT" ; + ObSysVars[710].alias_ = "OB_SV_RANGE_INDEX_DIVE_LIMIT" ; }(); [&] (){ - ObSysVars[711].default_value_ = "3" ; - ObSysVars[711].info_ = "The path name of the file in which the server writes its process ID" ; - ObSysVars[711].name_ = "pid_file" ; - ObSysVars[711].data_type_ = ObVarcharType ; - ObSysVars[711].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[711].id_ = SYS_VAR_PID_FILE ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PID_FILE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PID_FILE] = 711 ; - ObSysVars[711].base_value_ = "3" ; - ObSysVars[711].alias_ = "OB_SV_PID_FILE" ; + ObSysVars[711].default_value_ = "10" ; + ObSysVars[711].info_ = "Indicate the limit on the number of partitions when optimizer use storage cardinality estimation" ; + ObSysVars[711].name_ = "partition_index_dive_limit" ; + ObSysVars[711].data_type_ = ObIntType ; + ObSysVars[711].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE ; + ObSysVars[711].id_ = SYS_VAR_PARTITION_INDEX_DIVE_LIMIT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PARTITION_INDEX_DIVE_LIMIT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PARTITION_INDEX_DIVE_LIMIT] = 711 ; + ObSysVars[711].base_value_ = "10" ; + ObSysVars[711].alias_ = "OB_SV_PARTITION_INDEX_DIVE_LIMIT" ; }(); [&] (){ ObSysVars[712].default_value_ = "3" ; - ObSysVars[712].info_ = "The number of the port on which the server listens for TCP/IP connections" ; - ObSysVars[712].name_ = "port" ; - ObSysVars[712].data_type_ = ObIntType ; + ObSysVars[712].info_ = "The path name of the file in which the server writes its process ID" ; + ObSysVars[712].name_ = "pid_file" ; + ObSysVars[712].data_type_ = ObVarcharType ; ObSysVars[712].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[712].id_ = SYS_VAR_PORT ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PORT)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_PORT] = 712 ; + ObSysVars[712].id_ = SYS_VAR_PID_FILE ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PID_FILE)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PID_FILE] = 712 ; ObSysVars[712].base_value_ = "3" ; - ObSysVars[712].alias_ = "OB_SV_PORT" ; + ObSysVars[712].alias_ = "OB_SV_PID_FILE" ; }(); [&] (){ ObSysVars[713].default_value_ = "3" ; - ObSysVars[713].info_ = "the name of the socket file that is used for local client connections" ; - ObSysVars[713].name_ = "socket" ; - ObSysVars[713].data_type_ = ObVarcharType ; + ObSysVars[713].info_ = "The number of the port on which the server listens for TCP/IP connections" ; + ObSysVars[713].name_ = "port" ; + ObSysVars[713].data_type_ = ObIntType ; ObSysVars[713].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; - ObSysVars[713].id_ = SYS_VAR_SOCKET ; - cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SOCKET)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_SOCKET] = 713 ; + ObSysVars[713].id_ = SYS_VAR_PORT ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_PORT)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_PORT] = 713 ; ObSysVars[713].base_value_ = "3" ; - ObSysVars[713].alias_ = "OB_SV_SOCKET" ; + ObSysVars[713].alias_ = "OB_SV_PORT" ; + }(); + + [&] (){ + ObSysVars[714].default_value_ = "3" ; + ObSysVars[714].info_ = "the name of the socket file that is used for local client connections" ; + ObSysVars[714].name_ = "socket" ; + ObSysVars[714].data_type_ = ObVarcharType ; + ObSysVars[714].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::READONLY | ObSysVarFlag::MYSQL_ONLY ; + ObSysVars[714].id_ = SYS_VAR_SOCKET ; + cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_SOCKET)) ; + ObSysVarsIdToArrayIdx[SYS_VAR_SOCKET] = 714 ; + ObSysVars[714].base_value_ = "3" ; + ObSysVars[714].alias_ = "OB_SV_SOCKET" ; }(); [&] (){ - ObSysVars[714].default_value_ = "1" ; - ObSysVars[714].info_ = "Control whether the optimizer considers the impact of rowgoal (such as the LIMIT operator, etc.) during cardinality estimation." ; - ObSysVars[714].name_ = "enable_optimizer_rowgoal" ; - ObSysVars[714].data_type_ = ObIntType ; - ObSysVars[714].enum_names_ = "[u'OFF', u'AUTO', u'ON']" ; - ObSysVars[714].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[714].id_ = SYS_VAR_ENABLE_OPTIMIZER_ROWGOAL ; + ObSysVars[715].default_value_ = "1" ; + ObSysVars[715].info_ = "Control whether the optimizer considers the impact of rowgoal (such as the LIMIT operator, etc.) during cardinality estimation." ; + ObSysVars[715].name_ = "enable_optimizer_rowgoal" ; + ObSysVars[715].data_type_ = ObIntType ; + ObSysVars[715].enum_names_ = "[u'OFF', u'AUTO', u'ON']" ; + ObSysVars[715].flags_ = ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[715].id_ = SYS_VAR_ENABLE_OPTIMIZER_ROWGOAL ; cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_ENABLE_OPTIMIZER_ROWGOAL)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_ENABLE_OPTIMIZER_ROWGOAL] = 714 ; - ObSysVars[714].base_value_ = "1" ; - ObSysVars[714].alias_ = "OB_SV_ENABLE_OPTIMIZER_ROWGOAL" ; + ObSysVarsIdToArrayIdx[SYS_VAR_ENABLE_OPTIMIZER_ROWGOAL] = 715 ; + ObSysVars[715].base_value_ = "1" ; + ObSysVars[715].alias_ = "OB_SV_ENABLE_OPTIMIZER_ROWGOAL" ; }(); [&] (){ - ObSysVars[715].default_value_ = "8" ; - ObSysVars[715].info_ = "The number of nearest cluster centers from the IVF vector index searched during this session." ; - ObSysVars[715].name_ = "ob_ivf_nprobes" ; - ObSysVars[715].data_type_ = ObUInt64Type ; - ObSysVars[715].min_val_ = "1" ; - ObSysVars[715].max_val_ = "65536" ; - ObSysVars[715].flags_ = ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[715].id_ = SYS_VAR_OB_IVF_NPROBES ; + ObSysVars[716].default_value_ = "8" ; + ObSysVars[716].info_ = "The number of nearest cluster centers from the IVF vector index searched during this session." ; + ObSysVars[716].name_ = "ob_ivf_nprobes" ; + ObSysVars[716].data_type_ = ObUInt64Type ; + ObSysVars[716].min_val_ = "1" ; + ObSysVars[716].max_val_ = "65536" ; + ObSysVars[716].flags_ = ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[716].id_ = SYS_VAR_OB_IVF_NPROBES ; cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OB_IVF_NPROBES)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OB_IVF_NPROBES] = 715 ; - ObSysVars[715].base_value_ = "8" ; - ObSysVars[715].alias_ = "OB_SV_IVF_NPROBES" ; + ObSysVarsIdToArrayIdx[SYS_VAR_OB_IVF_NPROBES] = 716 ; + ObSysVars[716].base_value_ = "8" ; + ObSysVars[716].alias_ = "OB_SV_IVF_NPROBES" ; }(); [&] (){ - ObSysVars[716].default_value_ = "1024" ; - ObSysVars[716].info_ = "The extra info size threshold filled into the hnsw index param, when not specified during hnsw index creation." ; - ObSysVars[716].name_ = "ob_hnsw_extra_info_max_size" ; - ObSysVars[716].data_type_ = ObUInt64Type ; - ObSysVars[716].min_val_ = "0" ; - ObSysVars[716].max_val_ = "16384" ; - ObSysVars[716].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE ; - ObSysVars[716].id_ = SYS_VAR_OB_HNSW_EXTRA_INFO_MAX_SIZE ; + ObSysVars[717].default_value_ = "1024" ; + ObSysVars[717].info_ = "The extra info size threshold filled into the hnsw index param, when not specified during hnsw index creation." ; + ObSysVars[717].name_ = "ob_hnsw_extra_info_max_size" ; + ObSysVars[717].data_type_ = ObUInt64Type ; + ObSysVars[717].min_val_ = "0" ; + ObSysVars[717].max_val_ = "16384" ; + ObSysVars[717].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE ; + ObSysVars[717].id_ = SYS_VAR_OB_HNSW_EXTRA_INFO_MAX_SIZE ; cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OB_HNSW_EXTRA_INFO_MAX_SIZE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OB_HNSW_EXTRA_INFO_MAX_SIZE] = 716 ; - ObSysVars[716].base_value_ = "1024" ; - ObSysVars[716].alias_ = "OB_SV_HNSW_EXTRA_INFO_MAX_SIZE" ; + ObSysVarsIdToArrayIdx[SYS_VAR_OB_HNSW_EXTRA_INFO_MAX_SIZE] = 717 ; + ObSysVars[717].base_value_ = "1024" ; + ObSysVars[717].alias_ = "OB_SV_HNSW_EXTRA_INFO_MAX_SIZE" ; }(); [&] (){ - ObSysVars[717].default_value_ = "1" ; - ObSysVars[717].info_ = "control whether the optimizer pushes down join predicates to view" ; - ObSysVars[717].name_ = "_push_join_predicate" ; - ObSysVars[717].data_type_ = ObIntType ; - ObSysVars[717].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::INVISIBLE | ObSysVarFlag::INFLUENCE_PLAN ; - ObSysVars[717].id_ = SYS_VAR__PUSH_JOIN_PREDICATE ; + ObSysVars[718].default_value_ = "1" ; + ObSysVars[718].info_ = "control whether the optimizer pushes down join predicates to view" ; + ObSysVars[718].name_ = "_push_join_predicate" ; + ObSysVars[718].data_type_ = ObIntType ; + ObSysVars[718].flags_ = ObSysVarFlag::SESSION_SCOPE | ObSysVarFlag::GLOBAL_SCOPE | ObSysVarFlag::INVISIBLE | ObSysVarFlag::INFLUENCE_PLAN ; + ObSysVars[718].id_ = SYS_VAR__PUSH_JOIN_PREDICATE ; cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR__PUSH_JOIN_PREDICATE)) ; - ObSysVarsIdToArrayIdx[SYS_VAR__PUSH_JOIN_PREDICATE] = 717 ; - ObSysVars[717].base_value_ = "1" ; - ObSysVars[717].alias_ = "OB_SV__PUSH_JOIN_PREDICATE" ; + ObSysVarsIdToArrayIdx[SYS_VAR__PUSH_JOIN_PREDICATE] = 718 ; + ObSysVars[718].base_value_ = "1" ; + ObSysVars[718].alias_ = "OB_SV__PUSH_JOIN_PREDICATE" ; }(); [&] (){ - ObSysVars[718].default_value_ = "0" ; - ObSysVars[718].info_ = "set the smallest drop_ratio of values across all dimensions of the query vector to zero" ; - ObSysVars[718].name_ = "ob_sparse_drop_ratio_search" ; - ObSysVars[718].data_type_ = ObUInt64Type ; - ObSysVars[718].min_val_ = "0" ; - ObSysVars[718].max_val_ = "100" ; - ObSysVars[718].flags_ = ObSysVarFlag::SESSION_SCOPE ; - ObSysVars[718].id_ = SYS_VAR_OB_SPARSE_DROP_RATIO_SEARCH ; + ObSysVars[719].default_value_ = "0" ; + ObSysVars[719].info_ = "set the smallest drop_ratio of values across all dimensions of the query vector to zero" ; + ObSysVars[719].name_ = "ob_sparse_drop_ratio_search" ; + ObSysVars[719].data_type_ = ObUInt64Type ; + ObSysVars[719].min_val_ = "0" ; + ObSysVars[719].max_val_ = "100" ; + ObSysVars[719].flags_ = ObSysVarFlag::SESSION_SCOPE ; + ObSysVars[719].id_ = SYS_VAR_OB_SPARSE_DROP_RATIO_SEARCH ; cur_max_var_id = MAX(cur_max_var_id, static_cast(SYS_VAR_OB_SPARSE_DROP_RATIO_SEARCH)) ; - ObSysVarsIdToArrayIdx[SYS_VAR_OB_SPARSE_DROP_RATIO_SEARCH] = 718 ; - ObSysVars[718].base_value_ = "0" ; - ObSysVars[718].alias_ = "OB_SV_SPARSE_DROP_RATIO_SEARCH" ; + ObSysVarsIdToArrayIdx[SYS_VAR_OB_SPARSE_DROP_RATIO_SEARCH] = 719 ; + ObSysVars[719].base_value_ = "0" ; + ObSysVars[719].alias_ = "OB_SV_SPARSE_DROP_RATIO_SEARCH" ; }(); if (cur_max_var_id >= ObSysVarMeta::OB_MAX_SYS_VAR_ID) { @@ -9917,7 +9931,7 @@ static struct VarsInit{ } }vars_init; -static int64_t var_amount = 719; +static int64_t var_amount = 720; int64_t ObSysVariables::get_all_sys_var_count(){ return ObSysVarMeta::ALL_SYS_VARS_COUNT;} ObSysVarClassType ObSysVariables::get_sys_var_id(int64_t i){ return ObSysVars[i].id_;} diff --git a/src/share/system_variable/ob_system_variable_init.json b/src/share/system_variable/ob_system_variable_init.json index 80f1b0122..17eb25d31 100644 --- a/src/share/system_variable/ob_system_variable_init.json +++ b/src/share/system_variable/ob_system_variable_init.json @@ -3156,6 +3156,19 @@ "background_cn": "", "ref_url": "" }, + "_enable_rich_vector_format": { + "id": 10162, + "name": "_enable_rich_vector_format", + "default_value": "1", + "base_value": "1", + "data_type": "bool", + "info": "whether use rich vector format in vectorized execution engine", + "flags": "GLOBAL | SESSION | INFLUENCE_PLAN | NEED_SERIALIZE | INVISIBLE", + "publish_version": "430", + "info_cn": "在向量化引擎中, 开启/关闭使用多种列格式描述功能", + "background_cn": "", + "ref_url": "" + }, "innodb_stats_persistent": { "id": 10163, "name": "innodb_stats_persistent", diff --git a/src/sql/CMakeLists.txt b/src/sql/CMakeLists.txt index b7490c6d2..b6bbe0da9 100644 --- a/src/sql/CMakeLists.txt +++ b/src/sql/CMakeLists.txt @@ -37,21 +37,44 @@ ob_set_subtarget(ob_sql hybrid_search hybrid_search/ob_hybrid_search_executor.cpp ) +ob_set_subtarget(ob_sql engine_vector_cmp + engine/vector/expr_cmp_func.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_0.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_1.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_2.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_3.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_4.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_5.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_6.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_7.cpp +) + +ob_set_subtarget(ob_sql engine_vector_continuous + engine/vector/ob_continuous_base.cpp + engine/vector/ob_continuous_format.cpp + engine/vector/ob_continuous_vector.cpp +) + ob_set_subtarget(ob_sql engine_vector_discrete engine/vector/ob_discrete_base.cpp + engine/vector/ob_discrete_format.cpp + engine/vector/ob_discrete_vector.cpp ) ob_set_subtarget(ob_sql engine_vector_uniform engine/vector/ob_uniform_base.cpp + engine/vector/ob_uniform_const_vector.cpp + engine/vector/ob_uniform_vector.cpp ) -ob_set_subtarget(ob_sql engine_vector_fixed - engine/vector/ob_fixed_length_base.cpp +ob_set_subtarget(ob_sql engine_vector_base + engine/vector/ob_vector_base.cpp ) -set_source_files_properties( - engine/expr/ob_distribution.cpp - PROPERTIES COMPILE_OPTIONS "-ffp-contract=off" +ob_set_subtarget(ob_sql engine_vector_fixed + engine/vector/ob_fixed_length_base.cpp + engine/vector/ob_fixed_length_vector.cpp + engine/vector/vector_basic_op.cpp ) ob_set_subtarget(ob_sql optimizer_stat @@ -90,7 +113,46 @@ ob_set_subtarget(ob_sql optimizer_stat ) set_source_files_properties( + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_0.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_1.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_2.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_3.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_4.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_5.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_6.cpp + engine/vector/expr_cmp_func_parts/expr_cmp_func_part_7.cpp + engine/vector/ob_uniform_vector.cpp + engine/aggregate/approx_count_distinct.cpp + engine/aggregate/approx_count_distinct_mysql.cpp + engine/aggregate/approx_count_distinct_synopsis.cpp + engine/aggregate/aggr_extra.cpp + engine/aggregate/count.cpp + engine/aggregate/group_concat.cpp + engine/aggregate/grouping.cpp + engine/aggregate/hybrid_hist.cpp + engine/aggregate/iaggregate.cpp + engine/aggregate/max.cpp + engine/aggregate/min.cpp engine/aggregate/ob_aggregate_processor.cpp + engine/aggregate/processor.cpp + engine/aggregate/ob_exec_hash_struct_vec.cpp + engine/aggregate/ob_hash_groupby_vec_op.cpp + engine/aggregate/ob_hash_distinct_vec_op.cpp + engine/aggregate/ob_groupby_vec_op.cpp + engine/aggregate/ob_hash_agg_variant.cpp + engine/aggregate/ob_scalar_aggregate_vec_op.cpp + engine/aggregate/ob_merge_groupby_vec_op.cpp + engine/aggregate/single_row.cpp + engine/aggregate/single_row_count.cpp + engine/aggregate/single_row_count_sum.cpp + engine/aggregate/single_row_max.cpp + engine/aggregate/single_row_min.cpp + engine/aggregate/single_row_sum.cpp + engine/aggregate/str_prefix_max.cpp + engine/aggregate/sum.cpp + engine/aggregate/sum_opnsize.cpp + engine/aggregate/sys_bit.cpp + engine/aggregate/top_fre_hist.cpp engine/expr/ob_expr_add.cpp engine/expr/ob_expr_mul.cpp engine/expr/ob_expr_in.cpp @@ -169,6 +231,7 @@ ob_set_subtarget(ob_sql dtl dtl/ob_dtl_mem_manager.cpp dtl/ob_dtl_utils.cpp dtl/ob_op_metric.cpp + dtl/ob_dtl_vectors_buffer.cpp ) ob_set_subtarget(ob_sql engine @@ -202,13 +265,35 @@ ob_set_subtarget(ob_sql engine engine/user_defined_function/ob_pl_user_defined_agg_function.cpp engine/window_function/ob_window_function_op.cpp engine/opt_statistics/ob_optimizer_stats_gathering_op.cpp + engine/sort/ob_sort_vec_op.cpp + engine/sort/ob_sort_vec_op_provider.cpp + engine/sort/ob_sort_compare_vec_op.cpp + engine/sort/ob_sort_vec_op_eager_filter.cpp + engine/sort/ob_sort_key_fetcher_vec_op.cpp engine/ob_subschema_ctx.cpp engine/sort/ob_pd_topn_sort_filter.cpp + engine/window_function/ob_window_function_vec_op.cpp + engine/window_function/row_store.cpp + engine/window_function/win_expr.cpp + engine/window_function/row_store.cpp engine/expand/ob_expand_vec_op.cpp + engine/subquery/ob_subplan_filter_vec_op.cpp ) ob_set_subtarget(ob_sql engine_aggregate_core + engine/aggregate/approx_count_distinct.cpp + engine/aggregate/approx_count_distinct_mysql.cpp + engine/aggregate/approx_count_distinct_synopsis.cpp + engine/aggregate/aggr_extra.cpp + engine/aggregate/count.cpp + engine/aggregate/group_concat.cpp + engine/aggregate/grouping.cpp + engine/aggregate/hybrid_hist.cpp + engine/aggregate/iaggregate.cpp + engine/aggregate/max.cpp + engine/aggregate/min.cpp engine/aggregate/ob_aggregate_processor.cpp + engine/aggregate/processor.cpp ) ob_set_subtarget(ob_sql engine_aggregate_groupby @@ -218,14 +303,41 @@ ob_set_subtarget(ob_sql engine_aggregate_groupby engine/aggregate/ob_hash_distinct_op.cpp engine/aggregate/ob_hash_groupby_op.cpp engine/aggregate/ob_merge_distinct_op.cpp + engine/aggregate/ob_merge_distinct_vec_op.cpp engine/aggregate/ob_merge_groupby_op.cpp engine/aggregate/ob_scalar_aggregate_op.cpp engine/aggregate/ob_adaptive_bypass_ctrl.cpp ) +ob_set_subtarget(ob_sql engine_aggregate_vec + engine/aggregate/ob_exec_hash_struct_vec.cpp + engine/aggregate/ob_hash_groupby_vec_op.cpp + engine/aggregate/ob_hash_distinct_vec_op.cpp + engine/aggregate/ob_groupby_vec_op.cpp + engine/aggregate/ob_hash_agg_variant.cpp + engine/aggregate/ob_scalar_aggregate_vec_op.cpp + engine/aggregate/ob_merge_groupby_vec_op.cpp +) + +ob_set_subtarget(ob_sql engine_aggregate_scalar + engine/aggregate/single_row.cpp + engine/aggregate/single_row_count.cpp + engine/aggregate/single_row_count_sum.cpp + engine/aggregate/single_row_max.cpp + engine/aggregate/single_row_min.cpp + engine/aggregate/single_row_sum.cpp + engine/aggregate/str_prefix_max.cpp + engine/aggregate/sum.cpp + engine/aggregate/sum_opnsize.cpp + engine/aggregate/sys_bit.cpp + engine/aggregate/top_fre_hist.cpp +) + ob_set_subtarget(ob_sql engine_basic engine/basic/ob_batch_result_holder.cpp + engine/basic/ob_compact_row.cpp engine/basic/ob_temp_block_store.cpp + engine/basic/ob_temp_row_store.cpp engine/basic/ob_temp_column_store.cpp engine/basic/ob_chunk_datum_store.cpp engine/basic/ob_chunk_row_store.cpp @@ -235,8 +347,10 @@ ob_set_subtarget(ob_sql engine_basic engine/basic/ob_hash_partitioning_infrastructure_op.cpp engine/basic/ob_json_table_op.cpp engine/basic/ob_limit_op.cpp + engine/basic/ob_limit_vec_op.cpp engine/basic/ob_material_op_impl.cpp engine/basic/ob_material_op.cpp + engine/basic/ob_material_vec_op.cpp engine/basic/ob_monitoring_dump_op.cpp engine/basic/ob_pushdown_filter.cpp engine/basic/ob_ra_datum_store.cpp @@ -248,9 +362,14 @@ ob_set_subtarget(ob_sql engine_basic engine/basic/ob_temp_table_access_op.cpp engine/basic/ob_temp_table_insert_op.cpp engine/basic/ob_temp_table_transformation_op.cpp + engine/basic/ob_temp_table_insert_vec_op.cpp + engine/basic/ob_temp_table_access_vec_op.cpp + engine/basic/ob_temp_table_transformation_vec_op.cpp engine/basic/ob_topk_op.cpp engine/basic/ob_values_op.cpp engine/basic/ob_stat_collector_op.cpp + engine/basic/ob_vector_result_holder.cpp + engine/basic/ob_hp_infras_vec_op.cpp engine/basic/chunk_store/ob_chunk_block.cpp engine/basic/chunk_store/ob_compact_store.cpp engine/basic/chunk_store/ob_default_block_reader.cpp @@ -258,10 +377,12 @@ ob_set_subtarget(ob_sql engine_basic engine/basic/chunk_store/ob_compact_block_reader.cpp engine/basic/chunk_store/ob_compact_block_writer.cpp engine/basic/chunk_store/ob_chunk_block_compressor.cpp + engine/basic/ob_group_join_buffer_v2.cpp #engine/basic/chunk_store/ob_encoded_block_writer.cpp #engine/basic/chunk_store/ob_encoded_block_reader.cpp engine/basic/ob_values_table_access_op.cpp engine/basic/ob_hp_infrastructure_manager.ipp + engine/basic/ob_hp_infras_vec_mgr.cpp engine/basic/ob_truncate_filter_struct.cpp ) @@ -649,7 +770,6 @@ ob_set_subtarget(ob_sql engine_expr engine/expr/ob_expr_substr.cpp engine/expr/ob_expr_generator_func.cpp engine/expr/ob_expr_zipf.cpp - engine/expr/ob_distribution.cpp engine/expr/ob_expr_uniform.cpp engine/expr/ob_expr_normal.cpp engine/expr/ob_expr_substrb.cpp @@ -793,9 +913,35 @@ ob_set_subtarget(ob_sql_extra ALONE engine/expr/ob_expr_str_cmp_func_compile/ob_expr_str_cmp_func_part_7.cpp engine/expr/ob_expr_str_cmp_func_compile/ob_expr_str_cmp_func_all.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part0.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part1.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part2.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part3.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part4.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part5.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part6.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part7.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part8.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part9.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part10.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part11.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part12.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part13.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part14.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_part15.cpp + engine/expr/vector_cast/vector_cast_compile/vector_cast_all.cpp + engine/expr/vector_cast/float_to_decimal_impl.cpp + engine/expr/vector_cast/vector_cast.cpp ) ob_set_subtarget(ob_sql engine_join + engine/join/hash_join/hash_table.cpp + engine/join/hash_join/ob_hash_join_struct.cpp + engine/join/hash_join/join_hash_table.cpp + engine/join/ob_partition_store.cpp + engine/join/hash_join/ob_hj_partition_mgr.cpp + engine/join/ob_join_vec_op.cpp + engine/join/hash_join/ob_hash_join_vec_op.cpp engine/join/ob_basic_nested_loop_join_op.cpp engine/join/ob_hash_join_basic.cpp engine/join/ob_hash_join_op.cpp @@ -803,7 +949,10 @@ ob_set_subtarget(ob_sql engine_join engine/join/ob_join_op.cpp engine/join/ob_merge_join_op.cpp engine/join/ob_nested_loop_join_op.cpp + engine/join/ob_join_filter_partition_splitter.cpp engine/join/ob_join_filter_material_control_info.cpp + engine/join/ob_merge_join_vec_op.cpp + engine/join/ob_nested_loop_join_vec_op.cpp ) ob_set_subtarget(ob_sql engine_pdml @@ -850,7 +999,9 @@ ob_set_subtarget(ob_sql engine_px engine/px/exchange/ob_px_dist_transmit_op.cpp engine/px/exchange/ob_px_fifo_coord_op.cpp engine/px/exchange/ob_px_ms_coord_op.cpp + engine/px/exchange/ob_px_ms_coord_vec_op.cpp engine/px/exchange/ob_px_ms_receive_op.cpp + engine/px/exchange/ob_px_ms_receive_vec_op.cpp engine/px/exchange/ob_px_ordered_coord_op.cpp engine/px/exchange/ob_px_receive_op.cpp engine/px/exchange/ob_px_reduce_transmit_op.cpp @@ -871,6 +1022,7 @@ ob_set_subtarget(ob_sql engine_px engine/px/p2p_datahub/ob_p2p_dh_msg.cpp engine/px/p2p_datahub/ob_runtime_filter_query_range.cpp engine/px/p2p_datahub/ob_runtime_filter_msg.cpp + engine/px/p2p_datahub/ob_runtime_filter_vec_msg.cpp engine/px/p2p_datahub/ob_pushdown_topn_filter_msg.cpp ) @@ -883,7 +1035,15 @@ ob_set_subtarget(ob_sql engine_set engine/set/ob_merge_intersect_op.cpp engine/set/ob_merge_set_op.cpp engine/set/ob_merge_union_op.cpp + engine/set/ob_hash_set_vec_op.cpp + engine/set/ob_hash_union_vec_op.cpp + engine/set/ob_hash_except_vec_op.cpp + engine/set/ob_hash_intersect_vec_op.cpp engine/set/ob_set_op.cpp + engine/set/ob_merge_set_vec_op.cpp + engine/set/ob_merge_union_vec_op.cpp + engine/set/ob_merge_intersect_vec_op.cpp + engine/set/ob_merge_except_vec_op.cpp ) ob_set_subtarget(ob_sql engine_table diff --git a/src/sql/code_generator/ob_static_engine_cg.cpp b/src/sql/code_generator/ob_static_engine_cg.cpp index db1c862b9..99d73e28a 100644 --- a/src/sql/code_generator/ob_static_engine_cg.cpp +++ b/src/sql/code_generator/ob_static_engine_cg.cpp @@ -6163,7 +6163,7 @@ int ObStaticEngineCG::generate_spec( } } if (OB_SUCC(ret) && is_all_subquery_deterministic) { - spec.exec_param_idxs_inited_ = true; + spec.enable_subquery_result_cache_ = true; } } } diff --git a/src/sql/code_generator/ob_static_engine_expr_cg.h b/src/sql/code_generator/ob_static_engine_expr_cg.h index 0ab780073..1eb785f91 100644 --- a/src/sql/code_generator/ob_static_engine_expr_cg.h +++ b/src/sql/code_generator/ob_static_engine_expr_cg.h @@ -82,9 +82,10 @@ class ObStaticEngineExprCG uint32_t frame_idx, uint32_t frame_size, uint32_t zero_init_pos, - uint32_t zero_init_size) + uint32_t zero_init_size, + bool use_rich_format) : expr_start_pos_(start_pos), - frame_info_(expr_cnt, frame_idx, frame_size, zero_init_pos, zero_init_size) + frame_info_(expr_cnt, frame_idx, frame_size, zero_init_pos, zero_init_size, use_rich_format) {} TO_STRING_KV(K_(expr_start_pos), K_(frame_info)); public: @@ -152,7 +153,8 @@ class ObStaticEngineExprCG static int generate_partial_expr_frame(const ObPhysicalPlan &plan, ObExprFrameInfo &partial_expr_frame_info, - ObIArray &raw_exprs); + ObIArray &raw_exprs, + const bool use_rich_format); void set_need_flatten_gen_col(const bool v) { need_flatten_gen_col_ = v; } @@ -165,7 +167,7 @@ class ObStaticEngineExprCG bool contain_dynamic_eval_rt_qm_ = false); static int init_temp_expr_mem_size(ObTempExpr &temp_expr); - static int64_t frame_max_offset(const ObExpr &e, const int64_t batch_size); + static int64_t frame_max_offset(const ObExpr &e, const int64_t batch_size, const bool use_rich_format); private: static ObExpr *get_rt_expr(const ObRawExpr &raw_expr); @@ -184,6 +186,8 @@ class ObStaticEngineExprCG // row_dimension_, op_ int cg_expr_basic(const common::ObIArray &raw_exprs); + int init_attr_expr(ObExpr *rt_expr, ObRawExpr *raw_expr); + // init parent_cnt_, parents_ int cg_expr_parents(const common::ObIArray &raw_exprs); @@ -372,7 +376,12 @@ class ObStaticEngineExprCG // total datums size: header + reserved data int64_t get_expr_datums_size(const ObExpr &expr) { - return get_expr_datums_header_size(expr) + reserve_datums_buf_len(expr); + int64_t size = get_expr_datums_header_size(expr) + reserve_datums_buf_len(expr); + if (use_rich_format()) { + size += get_rich_format_size(expr); + } + + return size; } // datums meta/header size vector version. @@ -390,6 +399,45 @@ class ObStaticEngineExprCG return size; } + static int64_t get_vector_header_size() { + return sizeof(VectorHeader); + } + + // ptrs + inline int64_t get_ptrs_size(const ObExpr &expr) { + return get_ptrs_size(expr, batch_size_); + } + + static inline int64_t get_ptrs_size(const ObExpr &expr, int64_t batch_size) { + return expr.is_fixed_length_data_ ? 0 : sizeof(char *) * get_expr_datums_count(expr, batch_size); + } + + // cont dynamic buf header size + int64_t cont_dynamic_buf_header_size(const ObExpr &expr) { + return expr.is_fixed_length_data_ + ? 0 + : sizeof(ObDynReserveBuf); + } + + // lens / offset + inline int64_t get_offsets_size(const ObExpr &expr) { + return get_offsets_size(expr, batch_size_); + } + + static inline int64_t get_offsets_size(const ObExpr &expr, int64_t batch_size) { + return expr.is_fixed_length_data_ ? 0 : sizeof(uint32_t) * (get_expr_datums_count(expr, batch_size) + 1); + } + + int64_t get_rich_format_size(const ObExpr &expr) { + int64_t size = 0; + size += get_offsets_size(expr); + size += get_ptrs_size(expr); + size += get_vector_header_size(); + size += get_expr_bitmap_vector_size(expr); /* null bitmaps*/ + size += cont_dynamic_buf_header_size(expr); + + return size; + } // datum meta/header size non-vector version. // two parts: @@ -440,6 +488,8 @@ class ObStaticEngineExprCG int divide_probably_local_exprs(common::ObIArray &exprs); + bool use_rich_format() const; + private: int generate_extra_questionmarks(ObRawExprUniqueSet &flattened_raw_exprs, ObRawExprFactory &factory); bool is_dynamic_eval_qm(const ObRawExpr &raw_expr) const; diff --git a/src/sql/das/iter/ob_das_text_retrieval_iter.cpp b/src/sql/das/iter/ob_das_text_retrieval_iter.cpp index e742419c1..5a5fa2e9b 100644 --- a/src/sql/das/iter/ob_das_text_retrieval_iter.cpp +++ b/src/sql/das/iter/ob_das_text_retrieval_iter.cpp @@ -719,8 +719,14 @@ int ObDASTextRetrievalIter::fill_token_weight() LOG_WARN("unexpected null BM25 weight expr", K(ret), KPC_(token_weight_expr), KPC(total_doc_cnt_expr)); } else { - const int64_t total_doc_cnt = - total_doc_cnt_expr->locate_expr_datum(*ir_rtdef_->eval_ctx_, 0).get_int(); + int64_t total_doc_cnt = 0; + if (total_doc_cnt_expr->enable_rich_format() + && is_valid_format(total_doc_cnt_expr->get_format(*ir_rtdef_->eval_ctx_))) { + total_doc_cnt = total_doc_cnt_expr->get_vector(*ir_rtdef_->eval_ctx_)->get_int(0); + } else { + total_doc_cnt = + total_doc_cnt_expr->locate_expr_datum(*ir_rtdef_->eval_ctx_, 0).get_int(); + } ObEvalCtx::BatchInfoScopeGuard guard(*ir_rtdef_->eval_ctx_); guard.set_batch_idx(0); ObDatum &token_weight_datum = diff --git a/src/sql/das/ob_das_scan_op.cpp b/src/sql/das/ob_das_scan_op.cpp index 81748e34a..97c16a433 100644 --- a/src/sql/das/ob_das_scan_op.cpp +++ b/src/sql/das/ob_das_scan_op.cpp @@ -168,7 +168,8 @@ int ObDASScanRtDef::init_pd_op(ObExecContext &exec_ctx, ret = OB_INVALID_ARGUMENT; LOG_WARN("invalid argument", K(ret), K(eval_ctx_)); } else if (FALSE_IT(p_pd_expr_op_ = new(&pd_expr_op_) ObPushdownOperator(*eval_ctx_, - scan_ctdef.pd_expr_spec_))) { + scan_ctdef.pd_expr_spec_, + enable_rich_format()))) { } else if (OB_FAIL(pd_expr_op_.init_pushdown_storage_filter())) { LOG_WARN("init pushdown storage filter failed", K(ret)); } else if (OB_NOT_NULL(scan_ctdef.trans_info_expr_)) { diff --git a/src/sql/das/ob_das_scan_op.h b/src/sql/das/ob_das_scan_op.h index 8e50ffb9e..7ed6cc8aa 100644 --- a/src/sql/das/ob_das_scan_op.h +++ b/src/sql/das/ob_das_scan_op.h @@ -173,6 +173,7 @@ struct ObDASScanRtDef : ObDASBaseRtDef { } virtual ~ObDASScanRtDef(); + bool enable_rich_format() const { return scan_flag_.enable_rich_format_; } INHERIT_TO_STRING_KV("ObDASBaseRtDef", ObDASBaseRtDef, K_(runtime_schema_version), @@ -296,6 +297,7 @@ class ObDASScanOp : public ObIDASTaskOp common::ObTabletID &rowkey_doc_tid); int get_index_merge_tablet_ids(common::ObIArray &index_merge_tablet_ids); int get_func_lookup_tablet_ids(ObDASRelatedTabletID &related_tablet_ids); + bool enable_rich_format() const { return scan_rtdef_->enable_rich_format(); } INHERIT_TO_STRING_KV("parent", ObIDASTaskOp, KPC_(scan_ctdef), KPC_(scan_rtdef), diff --git a/src/sql/das/ob_das_utils.cpp b/src/sql/das/ob_das_utils.cpp index 210d7b667..11fde2ef6 100644 --- a/src/sql/das/ob_das_utils.cpp +++ b/src/sql/das/ob_das_utils.cpp @@ -351,6 +351,366 @@ int ObDASUtils::reshape_datum_vector_value(const ObObjMeta &col_type, return ret; } +static bool fast_check_vector_is_all_null(ObIVector *vector, const int64_t batch_size) +{ + bool is_all_null = false; + VectorFormat format = vector->get_format(); + switch (format) { + case VEC_FIXED: + case VEC_DISCRETE: + case VEC_CONTINUOUS: { + ObBitmapNullVectorBase *base = static_cast(vector); + is_all_null = base->has_null() && base->get_nulls()->is_all_true(batch_size); + break; + } + default: + break; + } + return is_all_null; +} + +static int new_discrete_vector(VecValueTypeClass value_tc, + const int64_t max_batch_size, + ObIAllocator &allocator, + ObDiscreteBase *&result_vec) +{ + int ret = OB_SUCCESS; + result_vec = nullptr; + ObIVector *vector = nullptr; + switch (value_tc) { +#define DISCRETE_VECTOR_INIT_SWITCH(value_tc) \ + case value_tc: { \ + using VecType = RTVectorType; \ + static_assert(sizeof(VecType) <= ObIVector::MAX_VECTOR_STRUCT_SIZE, \ + "vector size exceeds MAX_VECTOR_STRUCT_SIZE"); \ + vector = OB_NEWx(VecType, &allocator, nullptr, nullptr, nullptr); \ + break; \ + } + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_NUMBER); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_EXTEND); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_STRING); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_ENUM_SET_INNER); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_RAW); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_ROWID); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_LOB); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_JSON); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_GEO); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_UDT); + DISCRETE_VECTOR_INIT_SWITCH(VEC_TC_COLLECTION); +#undef DISCRETE_VECTOR_INIT_SWITCH + default: + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected discrete vector value type class", KR(ret), K(value_tc)); + break; + } + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(vector)) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc vecttor", KR(ret)); + } else { + ObDiscreteBase *discrete_vec = static_cast(vector); + const int64_t nulls_size = ObBitVector::memory_size(max_batch_size); + const int64_t lens_size = sizeof(int32_t) * max_batch_size; + const int64_t ptrs_size = sizeof(char *) * max_batch_size; + ObBitVector *nulls = nullptr; + int32_t *lens = nullptr; + char **ptrs = nullptr; + if (OB_ISNULL(nulls = to_bit_vector(allocator.alloc(nulls_size)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc mem", KR(ret), K(nulls_size)); + } else if (OB_ISNULL(lens = static_cast(allocator.alloc(lens_size)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc mem", KR(ret), K(lens_size)); + } else if (OB_ISNULL(ptrs = static_cast(allocator.alloc(ptrs_size)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc mem", KR(ret), K(ptrs_size)); + } else { + nulls->reset(max_batch_size); + discrete_vec->set_nulls(nulls); + discrete_vec->set_lens(lens); + discrete_vec->set_ptrs(ptrs); + result_vec = discrete_vec; + } + } + return ret; +} + +int ObDASUtils::reshape_vector_value(const ObObjMeta &col_type, + const ObAccuracy &col_accuracy, + ObIAllocator &allocator, + ObIVector *&vector, + ObBatchSelector &selector) +{ + int ret = OB_SUCCESS; + if (OB_ISNULL(vector) || !selector.is_valid()) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("invalid args", KR(ret), KP(vector), K(selector)); + } else if (fast_check_vector_is_all_null(vector, selector.get_max())) { + // do nothing + } else if (col_type.is_binary()) { + const int32_t binary_len = col_accuracy.get_length(); + const char pad_char = '\0'; + const VectorFormat format = vector->get_format(); + switch (format) { + case VEC_CONTINUOUS: + { + ObContinuousBase *continuous_vec = static_cast(vector); + ObDiscreteBase *discrete_vec = nullptr; + char *data = continuous_vec->get_data(); + uint32_t *offsets = continuous_vec->get_offsets(); + char **ptrs = nullptr; + ObLength *lens = nullptr; + bool has_value_change = false; + VecValueTypeClass value_tc = get_vec_value_tc(col_type.get_type(), + col_type.get_scale(), + col_type.get_stored_precision()); + if (OB_FAIL(new_discrete_vector(value_tc, selector.get_max(), allocator, discrete_vec))) { + LOG_WARN("fail to new discrete vector", KR(ret)); + } else { + ptrs = discrete_vec->get_ptrs(); + lens = discrete_vec->get_lens(); + } + int64_t i = 0; + while (OB_SUCC(ret) && OB_SUCC(selector.get_next(i))) { + if (continuous_vec->is_null(i)) { + discrete_vec->set_null(i); + } else { + const ObLength len = offsets[i + 1] - offsets[i]; + char *str = data + offsets[i]; + if (len < binary_len) { + char *dest_str = nullptr; + if (OB_ISNULL(dest_str = (char *)(allocator.alloc(binary_len)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc mem to binary", K(ret), K(binary_len)); + } else { + MEMCPY(dest_str, str, len); + MEMSET(dest_str + len, pad_char, binary_len - len); + ptrs[i] = dest_str; + lens[i] = binary_len; + has_value_change = true; + } + } else { + ptrs[i] = str; + lens[i] = binary_len; + } + } + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + } + if (OB_SUCC(ret) && has_value_change) { + vector = discrete_vec; + } + break; + } + case VEC_DISCRETE: + { + ObDiscreteBase *discrete_vec = static_cast(vector); + char **ptrs = discrete_vec->get_ptrs(); + ObLength *lens =discrete_vec->get_lens(); + int64_t i = 0; + while (OB_SUCC(ret) && OB_SUCC(selector.get_next(i))) { + if (!discrete_vec->is_null(i) && lens[i] < binary_len) { + char *str = ptrs[i]; + ObLength len = lens[i]; + char *dest_str = nullptr; + if (OB_ISNULL(dest_str = (char *)(allocator.alloc(binary_len)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc mem to binary", K(ret), K(binary_len)); + } else { + MEMCPY(dest_str, str, len); + MEMSET(dest_str + len, pad_char, binary_len - len); + ptrs[i] = dest_str; + lens[i] = binary_len; + } + } + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + } + break; + } + case VEC_UNIFORM: + { + ObUniformBase *uniform_vec = static_cast(vector); + ObDatum *datums = uniform_vec->get_datums(); + int64_t i = 0; + while (OB_SUCC(ret) && OB_SUCC(selector.get_next(i))) { + ObDatum &datum = datums[i]; + if (!datum.is_null() && datum.len_ < binary_len) { + const char *str = datum.ptr_; + ObLength len = datum.len_; + char *dest_str = nullptr; + if (OB_ISNULL(dest_str = (char *)(allocator.alloc(binary_len)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc mem to binary", K(ret), K(binary_len)); + } else { + MEMCPY(dest_str, str, len); + MEMSET(dest_str + len, pad_char, binary_len - len); + datum.ptr_ = dest_str; + datum.len_ = binary_len; + } + } + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + } + break; + } + case VEC_UNIFORM_CONST: + { + ObUniformBase *uniform_vec = static_cast(vector); + ObDatum &datum = uniform_vec->get_datums()[0]; + if (!datum.is_null() && datum.len_ < binary_len) { + const char *str = datum.ptr_; + ObLength len = datum.len_; + char *dest_str = nullptr; + if (OB_ISNULL(dest_str = (char *)(allocator.alloc(binary_len)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc mem to binary", K(ret), K(binary_len)); + } else { + MEMCPY(dest_str, str, len); + MEMSET(dest_str + len, pad_char, binary_len - len); + datum.ptr_ = dest_str; + datum.len_ = binary_len; + } + } + break; + } + default: + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected binary vector format", KR(ret), K(format), K(col_type)); + break; + } + } else if (col_type.is_fixed_len_char_type()) { + const ObString space_pattern = ObCharsetUtils::get_const_str(col_type.get_collation_type(), ' '); + const VectorFormat format = vector->get_format(); + switch (format) { + case VEC_CONTINUOUS: + { + ObContinuousBase *continuous_vec = static_cast(vector); + ObDiscreteBase *discrete_vec = nullptr; + char *data = continuous_vec->get_data(); + uint32_t *offsets = continuous_vec->get_offsets(); + char **ptrs = nullptr; + ObLength *lens = nullptr; + bool has_value_change = false; + VecValueTypeClass value_tc = get_vec_value_tc(col_type.get_type(), + col_type.get_scale(), + col_type.get_stored_precision()); + if (OB_FAIL(new_discrete_vector(value_tc, selector.get_max(), allocator, discrete_vec))) { + LOG_WARN("fail to new discrete vector", KR(ret)); + } else { + ptrs = discrete_vec->get_ptrs(); + lens = discrete_vec->get_lens(); + } + int64_t i = 0; + while (OB_SUCC(ret) && OB_SUCC(selector.get_next(i))) { + if (continuous_vec->is_null(i)) { + discrete_vec->set_null(i); + } else { + const ObLength length = offsets[i + 1] - offsets[i]; + { + ObLength len = length; + char *str = data + offsets[i]; + for (; len >= space_pattern.length(); len -= space_pattern.length()) { + if (0 != MEMCMP(str + len - space_pattern.length(), space_pattern.ptr(), space_pattern.length())) { + break; + } + } + ptrs[i] = str; + lens[i] = len; + if (len != length) { + has_value_change = true; + } + } + } + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + } + if (OB_SUCC(ret) && has_value_change) { + vector = discrete_vec; + } + break; + } + case VEC_DISCRETE: + { + ObDiscreteBase *discrete_vec = static_cast(vector); + char **ptrs = discrete_vec->get_ptrs(); + ObLength *lens =discrete_vec->get_lens(); + int64_t i = 0; + while (OB_SUCC(ret) && OB_SUCC(selector.get_next(i))) { + if (!discrete_vec->is_null(i)) { + ObLength len = lens[i]; + { + const char *str = ptrs[i]; + for (; len >= space_pattern.length(); len -= space_pattern.length()) { + if (0 != MEMCMP(str + len - space_pattern.length(), space_pattern.ptr(), space_pattern.length())) { + break; + } + } + } + lens[i] = len; + } + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + } + break; + } + case VEC_UNIFORM: + { + ObUniformBase *uniform_vec = static_cast(vector); + ObDatum *datums = uniform_vec->get_datums(); + int64_t i = 0; + while (OB_SUCC(ret) && OB_SUCC(selector.get_next(i))) { + ObDatum &datum = datums[i]; + if (!datum.is_null()) { + ObLength len = datum.len_; + { + const char *str = datum.ptr_; + for (; len >= space_pattern.length(); len -= space_pattern.length()) { + if (0 != MEMCMP(str + len - space_pattern.length(), space_pattern.ptr(), space_pattern.length())) { + break; + } + } + datum.len_ = len; + } + } + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + } + break; + } + case VEC_UNIFORM_CONST: + { + ObUniformBase *uniform_vec = static_cast(vector); + ObDatum &datum = uniform_vec->get_datums()[0]; + if (!datum.is_null()) { + ObLength len = datum.len_; + { + const char *str = datum.ptr_; + for (; len >= space_pattern.length(); len -= space_pattern.length()) { + if (0 != MEMCMP(str + len - space_pattern.length(), space_pattern.ptr(), space_pattern.length())) { + break; + } + } + datum.len_ = len; + } + } + break; + } + default: + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected fixed len char vector format", KR(ret), K(format), K(col_type)); + break; + } + } + return ret; +} + int ObDASUtils::wait_das_retry(int64_t retry_cnt) { int ret = OB_SUCCESS; diff --git a/src/sql/dtl/ob_dtl_basic_channel.cpp b/src/sql/dtl/ob_dtl_basic_channel.cpp index 957399e38..ec3fdd767 100644 --- a/src/sql/dtl/ob_dtl_basic_channel.cpp +++ b/src/sql/dtl/ob_dtl_basic_channel.cpp @@ -163,7 +163,8 @@ ObDtlBasicChannel::ObDtlBasicChannel( write_buf_use_time_(0), send_use_time_(0), msg_count_(0), - result_info_guard_() + result_info_guard_(), + meta_(nullptr) { ObRandom rand; hash_val_ = rand.get(); @@ -194,7 +195,8 @@ ObDtlBasicChannel::ObDtlBasicChannel( times_(0), write_buf_use_time_(0), send_use_time_(0), - msg_count_(0) + msg_count_(0), + meta_(nullptr) { // The server version at dtl creation determines whether to send the old ser method or the new chunk row store method use_crs_writer_ = true; @@ -632,15 +634,27 @@ int ObDtlBasicChannel::process1( LOG_WARN("there is no row store in internal result", K(ret)); } else if (OB_FAIL(DTL_IR_STORE_DO(*result_info, finish_add_row, true))) { LOG_WARN("failed to finish add row", K(ret)); - } else if (OB_FAIL(result_info->datum_store_->begin(datum_iter_))) { - LOG_WARN("begin iterator failed", K(ret)); + } else if (!result_info->is_rich_format()) { + if (OB_FAIL(result_info->datum_store_->begin(datum_iter_))) { + LOG_WARN("begin iterator failed", K(ret)); + } + } else { + if (OB_FAIL(result_info->get_row_store()->begin(row_iter_))) { + LOG_WARN("failed to begin chunk row store.", K(ret)); + } } } if (OB_SUCC(ret) && !channel_is_eof()) { ObDtlLinkedBuffer mock_buffer; mock_buffer.set_data_msg(true); ObDtlMsgType type = ObDtlMsgType::PX_DATUM_ROW; - mock_buffer.set_buf(reinterpret_cast(&datum_iter_)); + if (OB_ISNULL(result_info) || !result_info->is_rich_format()) { + mock_buffer.set_buf(reinterpret_cast(&datum_iter_)); + } else { + mock_buffer.set_buf(reinterpret_cast(&row_iter_)); + mock_buffer.set_row_meta(result_info->get_row_store()->get_row_meta()); + type = ObDtlMsgType::PX_VECTOR_ROW; + } type = static_cast(-type); // set type to negative value for interm result mock buffer. mock_buffer.set_msg_type(type); @@ -919,6 +933,7 @@ int ObDtlBasicChannel::push_back_send_list() int ObDtlBasicChannel::switch_writer(const ObDtlMsg &msg) { int ret = OB_SUCCESS; + switch_msg_type(msg); if (OB_UNLIKELY(nullptr == msg_writer_)) { if (msg.is_data_msg()) { const ObPxNewRow &px_row = static_cast(msg); @@ -926,6 +941,14 @@ int ObDtlBasicChannel::switch_writer(const ObDtlMsg &msg) msg_writer_ = &row_msg_writer_; } else if (DtlWriterType::CHUNK_DATUM_WRITER == msg_writer_map[px_row.get_data_type()]) { msg_writer_ = &datum_msg_writer_; + } else if (DtlWriterType::VECTOR_FIXED_WRITER == msg_writer_map[px_row.get_data_type()]) { + vector_fixed_msg_writer_.set_size_per_buffer(send_buffer_size_); + msg_writer_ = &vector_fixed_msg_writer_; + } else if (DtlWriterType::VECTOR_ROW_WRITER == msg_writer_map[px_row.get_data_type()]) { + vector_row_msg_writer_.set_row_meta(meta_); + msg_writer_ = &vector_row_msg_writer_; + } else if (DtlWriterType::VECTOR_WRITER == msg_writer_map[px_row.get_data_type()]) { + msg_writer_ = &vector_msg_writer_; } else { ret = OB_ERR_UNEXPECTED; LOG_WARN("unkown msg writer", K(msg.get_type()), @@ -1036,6 +1059,9 @@ int ObDtlBasicChannel::switch_buffer(const int64_t min_size, const bool is_eof, write_buffer_ = nullptr; LOG_WARN("failed to init message writer", K(ret)); } else { + if (VECTOR_ROW_WRITER == msg_writer_->type()) { + (static_cast (msg_writer_))->set_row_meta(meta_); + } if (OB_NOT_NULL(dfc_)) { write_buffer_->set_dfo_key(dfc_->get_dfo_key()); write_buffer_->set_sqc_id(dfc_->get_sender_sqc_info().sqc_id_); @@ -1129,6 +1155,14 @@ int ObDtlBasicChannel::push_buffer_batch_info() return ret; } +void ObDtlBasicChannel::switch_msg_type(const ObDtlMsg &msg) +{ + if (msg.is_data_msg() + && static_cast (msg).get_data_type() == PX_VECTOR) { + static_cast (const_cast (msg)).set_data_type(PX_VECTOR_ROW); + } +} + //----ObDtlRowMsgWriter ObDtlRowMsgWriter::ObDtlRowMsgWriter() : type_(CHUNK_ROW_WRITER), row_store_(), block_(nullptr), write_buffer_(nullptr) @@ -1278,6 +1312,224 @@ int ObDtlDatumMsgWriter::serialize() //--------------end ObDtlDatumMsgWriter--------------- +//-----------------start ObDtlVectorRowMsgWrite------------- +ObDtlVectorRowMsgWriter::ObDtlVectorRowMsgWriter() : + type_(VECTOR_ROW_WRITER), write_buffer_(nullptr), block_(nullptr), + block_buffer_(nullptr), meta_(nullptr), row_cnt_(0), write_ret_(OB_SUCCESS) +{} + +ObDtlVectorRowMsgWriter::~ObDtlVectorRowMsgWriter() +{ + reset(); +} + +int ObDtlVectorRowMsgWriter::init(ObDtlLinkedBuffer *buffer) +{ + int ret = OB_SUCCESS; + if (nullptr == buffer) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("write buffer is null", K(ret)); + } else { + reset(); + ObTempBlockStore::Block *blk = NULL; + if (OB_FAIL(ObTempBlockStore::init_dtl_block_buffer(buffer->buf(), buffer->size(), blk))) { + LOG_WARN("fail to init block buffer", K(ret)); + } else { + block_ = static_cast(blk); + block_buffer_ = static_cast( + static_cast(reinterpret_cast(blk) + blk->buf_off_)); + write_buffer_ = buffer; + } + } + return ret; +} + +int ObDtlVectorRowMsgWriter::need_new_buffer( + const ObDtlMsg &msg, ObEvalCtx *ctx, int64_t &need_size, bool &need_new) +{ + int ret = OB_SUCCESS; + if (OB_LIKELY(OB_BUF_NOT_ENOUGH != write_ret_ && nullptr != write_buffer_)) { + need_new = false; + } else { + int64_t serialize_need_size = 0; + const ObPxNewRow &px_row = static_cast(msg); + const ObIArray *row = px_row.get_exprs(); + if (nullptr == row) { + serialize_need_size = ObTempRowStore::Block::min_blk_size(0); + need_size = serialize_need_size; + } else { + if (OB_ISNULL(meta_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to get meta", K(ret)); + } else if (OB_FAIL(ObTempRowStore::RowBlock::calc_row_size(*row, *meta_, *ctx, serialize_need_size))) { + LOG_WARN("failed to calc row store size", K(ret)); + } + need_size = ObTempRowStore::Block::min_blk_size(serialize_need_size); + } + need_new = nullptr == write_buffer_ || (remain() < serialize_need_size); + if(need_new && nullptr != write_buffer_) { + write_buffer_->pos() = rows() > 0 ? used() : 0; + } + } + write_ret_ = OB_SUCCESS; + return ret; +} + +void ObDtlVectorRowMsgWriter::reset() +{ + block_ = nullptr; + write_buffer_ = nullptr; + row_cnt_ = 0; + block_buffer_ = nullptr; + meta_ = nullptr; +} + +int ObDtlVectorRowMsgWriter::serialize() +{ + return OB_SUCCESS; +} +//--------------end ObDtlVectorRowMsgWriter--------------- + +//--------------start ObDtlVectorsMsgWriter--------------- +ObDtlVectorMsgWriter::ObDtlVectorMsgWriter() : + type_(VECTOR_WRITER), write_buffer_(nullptr), block_(nullptr), + block_buffer_(nullptr), write_ret_(OB_SUCCESS) +{} + +ObDtlVectorMsgWriter::~ObDtlVectorMsgWriter() +{ + reset(); +} + +int ObDtlVectorMsgWriter::init(ObDtlLinkedBuffer *buffer) +{ + int ret = OB_SUCCESS; + if (nullptr == buffer) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("write buffer is null", K(ret)); + } else { + reset(); + if (OB_FAIL(ObDtlVectorsBuffer::init_vector_buffer( + static_cast(buffer->buf()), buffer->size(), block_))) { + LOG_WARN("init shrink buffer failed", K(ret)); + } else { + block_buffer_ = block_->get_buffer(); + write_buffer_ = buffer; + } + } + return ret; +} + +int ObDtlVectorMsgWriter::need_new_buffer( + const ObDtlMsg &msg, ObEvalCtx *ctx, int64_t &need_size, bool &need_new) +{ + int ret = OB_SUCCESS; + need_size = 0; + if (OB_LIKELY(OB_BUF_NOT_ENOUGH != write_ret_ && nullptr != write_buffer_)) { + need_new = false; + } else { + int64_t serialize_need_size = 0; + const ObPxNewRow &px_row = static_cast(msg); + const ObIArray *row = px_row.get_exprs(); + if (nullptr == write_buffer_) { + need_new = true; + ObDtlVectorsBuffer::calc_new_buffer_size(row, ctx->get_batch_idx(), *ctx, need_size); + } else if (nullptr == row) { + serialize_need_size = ObDtlVectorsBuffer::min_buf_size(); + need_size = serialize_need_size; + if (block_buffer_->remain() < serialize_need_size) { + need_new = true; + } + } else if (!block_buffer_->can_append_row(*row, ctx->get_batch_idx(), *ctx, need_size)) { + need_new = true; + } + if(need_new && nullptr != write_buffer_) { + write_buffer_->pos() = rows() > 0 ? used() : 0; + } + } + write_ret_ = OB_SUCCESS; + return ret; +} + +void ObDtlVectorMsgWriter::reset() +{ + block_ = nullptr; + block_buffer_ = nullptr; + write_buffer_ = nullptr; +} + +int ObDtlVectorMsgWriter::serialize() +{ + return OB_SUCCESS; +} +//--------------end ObDtlVectorsMsgWriter--------------- + +//--------------end ObDtlVectorsFixedMsgWriter--------------- +ObDtlVectorFixedMsgWriter::ObDtlVectorFixedMsgWriter() : + type_(VECTOR_FIXED_WRITER), write_buffer_(nullptr), vector_buffer_(), + write_ret_(OB_SUCCESS), size_per_buffer_(-1) +{} + +ObDtlVectorFixedMsgWriter::~ObDtlVectorFixedMsgWriter() +{ + reset(); +} + +int ObDtlVectorFixedMsgWriter::init(ObDtlLinkedBuffer *buffer) +{ + int ret = OB_SUCCESS; + if (nullptr == buffer || size_per_buffer_ < 0 || buffer->size() < size_per_buffer_) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("write buffer is null", K(ret), K(size_per_buffer_), K(buffer->size()), K(lbt())); + } else { + reset(); + vector_buffer_.set_buf(buffer->buf(), size_per_buffer_); /*keep fixed msg use buffer with same size*/ + write_buffer_ = buffer; + } + return ret; +} + +int ObDtlVectorFixedMsgWriter::need_new_buffer( + const ObDtlMsg &msg, ObEvalCtx *ctx, int64_t &need_size, bool &need_new) +{ + int ret = OB_SUCCESS; + need_size = 0; + if (OB_LIKELY(OB_BUF_NOT_ENOUGH != write_ret_ && nullptr != write_buffer_)) { + need_new = false; + } else { + int64_t serialize_need_size = 0; + const ObPxNewRow &px_row = static_cast(msg); + const ObIArray *row = px_row.get_exprs(); + if (nullptr == write_buffer_) { + need_new = true; + } else if (nullptr == row) { + serialize_need_size = ObDtlVectors::min_buf_size(); + need_size = serialize_need_size; + need_new = false; + } else if (vector_buffer_.get_row_cnt() >= vector_buffer_.get_row_limit()) { + need_new = true; + } + if(need_new && nullptr != write_buffer_) { + write_buffer_->pos() = rows() > 0 ? vector_buffer_.get_mem_used() : 0; + } + } + write_ret_ = OB_SUCCESS; + return ret; +} + +void ObDtlVectorFixedMsgWriter::reset() +{ + vector_buffer_.reset(); + write_buffer_ = nullptr; +} + +int ObDtlVectorFixedMsgWriter::serialize() +{ + return OB_SUCCESS; +} + +//--------------end ObDtlVectorsFixedMsgWriter--------------- + //----------------start ObDtlControlMsgWriter---------- int ObDtlControlMsgWriter::write(const ObDtlMsg &msg, ObEvalCtx *eval_ctx, const bool is_eof) { diff --git a/src/sql/dtl/ob_dtl_basic_channel.h b/src/sql/dtl/ob_dtl_basic_channel.h index 1cee8b930..276aacd51 100644 --- a/src/sql/dtl/ob_dtl_basic_channel.h +++ b/src/sql/dtl/ob_dtl_basic_channel.h @@ -35,6 +35,8 @@ #include "lib/ob_define.h" #include "lib/lock/ob_futex.h" #include "sql/dtl/ob_dtl_interm_result_manager.h" +#include "sql/dtl/ob_dtl_vectors_buffer.h" +#include "sql/engine/basic/ob_temp_row_store.h" namespace oceanbase { @@ -54,7 +56,10 @@ enum DtlWriterType CONTROL_WRITER = 0, CHUNK_ROW_WRITER = 1, CHUNK_DATUM_WRITER = 2, - MAX_WRITER = 3 + VECTOR_WRITER = 3, + VECTOR_FIXED_WRITER = 4, + VECTOR_ROW_WRITER = 5, + MAX_WRITER = 6 }; static DtlWriterType msg_writer_map[] = @@ -98,6 +103,9 @@ static DtlWriterType msg_writer_map[] = CONTROL_WRITER, // DH_SECOND_STAGE_REPORTING_WF_WHOLE_MSG, CONTROL_WRITER, // DH_OPT_STATS_GATHER_PIECE_MSG, CONTROL_WRITER, // DH_OPT_STATS_GATHER_WHOLE_MSG, + VECTOR_WRITER, //PX_VECTOR, + VECTOR_FIXED_WRITER, //PX_FIXED_VECTOR + VECTOR_ROW_WRITER, //PX_VECTOR_ROW, CONTROL_WRITER, // DH_SP_WINFUNC_PX_PIECE_MSG CONTROL_WRITER, // DH_SP_WINFUNC_PX_WHOLE_MSG CONTROL_WRITER, // DH_RD_WINFUNC_PX_PIECE_MSG @@ -277,7 +285,8 @@ OB_INLINE int ObDtlDatumMsgWriter::write( const ObPxNewRow &px_row = static_cast(msg); const ObIArray *row = px_row.get_exprs(); if (nullptr != row) { - if (OB_FAIL(block_->append_row(*row, eval_ctx, block_->get_buffer(), 0, nullptr, true))) { + if (OB_FAIL(block_->append_row(*row, eval_ctx, block_->get_buffer(), 0, nullptr, true, + px_row.get_vector_row_idx()))) { if (OB_BUF_NOT_ENOUGH != ret) { SQL_DTL_LOG(WARN, "failed to add row", K(ret)); } else { @@ -295,6 +304,289 @@ OB_INLINE int ObDtlDatumMsgWriter::write( return ret; } +class ObDtlVectorRowMsgWriter : public ObDtlChannelEncoder +{ +public: + ObDtlVectorRowMsgWriter(); + virtual ~ObDtlVectorRowMsgWriter(); + + virtual DtlWriterType type() { return type_; } + int init(ObDtlLinkedBuffer *buffer); + bool is_inited() const { return nullptr != write_buffer_; } + int try_append_row(const common::ObIArray &exprs, ObEvalCtx &ctx); + int try_append_batch(const common::ObIArray &exprs, + const common::ObIArray &vectors, + ObEvalCtx &ctx, const uint16_t selector[], + const int64_t size, uint32_t row_size_arr[], + ObCompactRow **new_rows); + void prefetch() + { + if (nullptr != block_buffer_) { + __builtin_prefetch(block_buffer_->head(), + 1, // for write + 1); // low temporal locality + } + } + void reset(); + + int write(const ObDtlMsg &msg, ObEvalCtx *eval_ctx, const bool is_eof); + int serialize(); + + int need_new_buffer(const ObDtlMsg &msg, ObEvalCtx *ctx, int64_t &need_size, bool &need_new); + + OB_INLINE int64_t used() { return block_buffer_->head_size(); } + OB_INLINE int64_t rows() { return block_->cnt_; } + OB_INLINE int64_t remain() { return block_buffer_->remain(); } + int handle_eof() { + int ret = common::OB_SUCCESS; + if (nullptr != write_buffer_) { + write_buffer_->pos() = used(); + } + return ret; + } + virtual void write_msg_type(ObDtlLinkedBuffer* buffer) + { + buffer->msg_type() = ObDtlMsgType::PX_VECTOR_ROW; + } + OB_INLINE ObTempRowStore::DtlRowBlock *get_block() { return block_; } + OB_INLINE ObDtlLinkedBuffer *get_write_buffer() { return write_buffer_; } + void set_row_meta(RowMeta *meta) { meta_ = meta; } +private: + DtlWriterType type_; + ObDtlLinkedBuffer *write_buffer_; + ObTempRowStore::DtlRowBlock *block_; + ObTempRowStore::ShrinkBuffer *block_buffer_; + RowMeta *meta_; + int64_t row_cnt_; + int write_ret_; +}; + +OB_INLINE int ObDtlVectorRowMsgWriter::try_append_row(const common::ObIArray &exprs, ObEvalCtx &ctx) +{ + int ret = OB_SUCCESS; + if (OB_ISNULL(meta_)) { + ret = OB_ERR_UNEXPECTED; + SQL_DTL_LOG(WARN, "failed to get meta", K(ret)); + } + ObCompactRow *new_row = nullptr; + if (OB_FAIL(ret)) { + } else if (OB_FAIL(block_->add_row(*block_buffer_, exprs, *meta_, + ctx, new_row))) { + if (OB_BUF_NOT_ENOUGH != ret) { + SQL_DTL_LOG(WARN, "failed to add row", K(ret)); + } else { + write_ret_ = OB_BUF_NOT_ENOUGH; + } + } else { + ++row_cnt_; + } + write_buffer_->pos() = used(); + return ret; +} + +OB_INLINE int ObDtlVectorRowMsgWriter::try_append_batch(const common::ObIArray &exprs, + const common::ObIArray &vectors, + ObEvalCtx &ctx, const uint16_t selector[], + const int64_t size, uint32_t row_size_arr[], + ObCompactRow **new_rows) +{ + int ret = OB_SUCCESS; + if (OB_ISNULL(meta_)) { + ret = OB_ERR_UNEXPECTED; + SQL_DTL_LOG(WARN, "failed to get meta", K(ret)); + } + if (OB_FAIL(ret)) { + } else if (OB_FAIL(ObTempRowStore::RowBlock::calc_rows_size(vectors, *meta_, + selector, size, row_size_arr))) { + SQL_DTL_LOG(WARN, "failed to calc size", K(ret)); + } else { + int64_t sum_size = 0; + for (int64_t i = 0; i < size; ++i) { + sum_size += row_size_arr[i]; + } + if (OB_FAIL(block_->add_batch(*block_buffer_, vectors, *meta_, selector, + size, row_size_arr, sum_size, + new_rows))) { + if (OB_BUF_NOT_ENOUGH != ret) { + SQL_DTL_LOG(WARN, "failed to add row", K(ret)); + } else { + write_ret_ = OB_BUF_NOT_ENOUGH; + } + } else { + row_cnt_ += size; + } + write_buffer_->pos() = used(); + } + return ret; +} + +OB_INLINE int ObDtlVectorRowMsgWriter::write( + const ObDtlMsg &msg, ObEvalCtx *eval_ctx, const bool is_eof) +{ + int ret = OB_SUCCESS; + const ObPxNewRow &px_row = static_cast(msg); + const ObIArray *row = px_row.get_exprs(); + if (nullptr != row) { + if (OB_FAIL(try_append_row(*row, *eval_ctx))) { + if (OB_BUF_NOT_ENOUGH != ret) { + SQL_DTL_LOG(WARN, "failed to append row", K(ret)); + } + } + } else { + write_buffer_->is_eof() = is_eof; + write_buffer_->pos() = used(); + } + return ret; +} + +class ObDtlVectorMsgWriter : public ObDtlChannelEncoder +{ +public: + ObDtlVectorMsgWriter(); + virtual ~ObDtlVectorMsgWriter(); + + virtual DtlWriterType type() { return type_; } + int init(ObDtlLinkedBuffer *buffer); + void reset(); + + int write(const ObDtlMsg &msg, ObEvalCtx *eval_ctx, const bool is_eof); + int serialize(); + + int need_new_buffer(const ObDtlMsg &msg, ObEvalCtx *ctx, int64_t &need_size, bool &need_new); + + OB_INLINE int64_t used() { return block_buffer_->data_size(); } + OB_INLINE int64_t rows() { return static_cast(block_->rows()); } + OB_INLINE int64_t remain() { return block_buffer_->remain(); } + int handle_eof() { + int ret = common::OB_SUCCESS; + if (nullptr != write_buffer_) { + write_buffer_->pos() = used(); + } + return ret; + } + virtual void write_msg_type(ObDtlLinkedBuffer* buffer) + { + buffer->msg_type() = ObDtlMsgType::PX_VECTOR; + } +private: + DtlWriterType type_; + ObDtlLinkedBuffer *write_buffer_; + ObDtlVectorsBlock *block_; + ObDtlVectorsBuffer* block_buffer_; + int write_ret_; +}; + +OB_INLINE int ObDtlVectorMsgWriter::write( + const ObDtlMsg &msg, ObEvalCtx *eval_ctx, const bool is_eof) +{ + int ret = OB_SUCCESS; + const ObPxNewRow &px_row = static_cast(msg); + const ObIArray *row = px_row.get_exprs(); + if (nullptr != row) { + if (OB_FAIL(block_buffer_->append_row(*row, static_cast (eval_ctx->get_batch_idx()), *eval_ctx))) { + if (OB_BUF_NOT_ENOUGH != ret) { + SQL_DTL_LOG(WARN, "failed to add row", K(ret)); + } else { + write_ret_ = OB_BUF_NOT_ENOUGH; + SQL_DTL_LOG(WARN, "to be remove, failed to add row", K(ret), K(used()), K(remain()), K(row->count())); + } + } + write_buffer_->pos() = used(); + } else { + write_buffer_->is_eof() = is_eof; + // Here special processing, if there is no data row, only header bytes, it must be sent, but for the data part if there is no row, then do not send + write_buffer_->pos() = used(); + } + return ret; +} + +class ObDtlVectorFixedMsgWriter : public ObDtlChannelEncoder +{ +public: + ObDtlVectorFixedMsgWriter(); + virtual ~ObDtlVectorFixedMsgWriter(); + + virtual DtlWriterType type() { return type_; } + int init(ObDtlLinkedBuffer *buffer); + bool is_inited() const { return nullptr != write_buffer_; } + void reset(); + OB_INLINE int64_t used() { return vector_buffer_.get_mem_used(); } + OB_INLINE int64_t rows() { return vector_buffer_.get_row_cnt(); } + OB_INLINE int64_t remain() { return vector_buffer_.get_mem_limit() - vector_buffer_.get_row_cnt(); } + OB_INLINE char *get_header(int32_t col_idx) { return vector_buffer_.get_data(col_idx); } + OB_INLINE int64_t get_row_cnt() const { return vector_buffer_.get_row_cnt(); } + OB_INLINE int64_t get_row_limit() const { return vector_buffer_.get_row_limit(); } + OB_INLINE int64_t get_fixed_len(int32_t col_idx) const { return vector_buffer_.get_fixed_length(col_idx); } + OB_INLINE void update_row_cnt(int64_t row_cnt) { vector_buffer_.update_row_cnt(row_cnt); } + OB_INLINE void set_null(int32_t col_idx, int64_t row_idx) { vector_buffer_.get_nulls(col_idx)->set(row_idx); } + int write(const ObDtlMsg &msg, ObEvalCtx *eval_ctx, const bool is_eof); + int append_row(const common::ObIArray &exprs, const int32_t batch_idx, ObEvalCtx &ctx) + { return vector_buffer_.append_row(exprs, batch_idx, ctx); } + int append_batch(const common::ObIArray &exprs, const ObIArray &vectors, + const uint16_t selector[], const int64_t size, ObEvalCtx &ctx) + { return vector_buffer_.append_batch(exprs, vectors, selector, size, ctx); } + void update_buffer_used() { write_buffer_->pos() = used(); } + void update_write_ret() { write_ret_ = OB_BUF_NOT_ENOUGH; } + void prefetch() + { + if (nullptr != write_buffer_) { + for (int64_t i = 0; i < vector_buffer_.get_col_cnt(); ++i) { + __builtin_prefetch(vector_buffer_.get_data(i), + 1, // for write + 1); // low temporal locality + } + } + } + int serialize(); + + int need_new_buffer(const ObDtlMsg &msg, ObEvalCtx *ctx, int64_t &need_size, bool &need_new); + int handle_eof() { + int ret = common::OB_SUCCESS; + if (nullptr != write_buffer_) { + write_buffer_->pos() = used(); + } + return ret; + } + virtual void write_msg_type(ObDtlLinkedBuffer* buffer) + { + buffer->msg_type() = ObDtlMsgType::PX_VECTOR_FIXED; + } + void set_size_per_buffer(const int64_t size) { size_per_buffer_ = size; } +private: + DtlWriterType type_; + ObDtlLinkedBuffer *write_buffer_; + ObDtlVectors vector_buffer_; + int write_ret_; + int64_t size_per_buffer_; +}; + +OB_INLINE int ObDtlVectorFixedMsgWriter::write( + const ObDtlMsg &msg, ObEvalCtx *eval_ctx, const bool is_eof) +{ + int ret = OB_SUCCESS; + const ObPxNewRow &px_row = static_cast(msg); + const ObIArray *row = px_row.get_exprs(); + if (nullptr != row) { + if (OB_FAIL(vector_buffer_.append_row(*row, static_cast (eval_ctx->get_batch_idx()), *eval_ctx))) { + if (OB_BUF_NOT_ENOUGH != ret) { + SQL_DTL_LOG(WARN, "failed to add row", K(ret)); + } else { + write_ret_ = OB_BUF_NOT_ENOUGH; + } + } + write_buffer_->pos() = used(); + } else { + if (!vector_buffer_.is_inited() && OB_FAIL(vector_buffer_.init())) { + SQL_DTL_LOG(WARN, "failed to init buffer", K(ret)); + } else { + write_buffer_->is_eof() = is_eof; + // Here special processing, if there is no data row, only header bytes, it must be sent, but for the data part if there is no row, then do not send + write_buffer_->pos() = used(); + } + } + return ret; +} + class SendMsgResponse { public: @@ -407,7 +699,12 @@ class ObDtlBasicChannel ObDtlLinkedBuffer *alloc_buf(const int64_t payload_size); ObDtlDatumMsgWriter &get_datum_writer() { return datum_msg_writer_; } + ObDtlVectorRowMsgWriter &get_vector_row_writer() { return vector_row_msg_writer_; } + ObDtlVectorMsgWriter &get_vector_msg_writer() { return vector_msg_writer_; } + ObDtlVectorFixedMsgWriter &get_vector_fixed_msg_writer() { return vector_fixed_msg_writer_; } virtual int push_buffer_batch_info() override; + void switch_msg_type(const ObDtlMsg &msg); + void set_row_meta(RowMeta &meta) { meta_ = &meta; } TO_STRING_KV(KP_(id), K_(peer_id)); protected: @@ -430,6 +727,7 @@ class ObDtlBasicChannel virtual void reset_px_row_iterator() { datum_iter_.reset(); + row_iter_.reset(); } protected: bool is_inited_; @@ -460,9 +758,13 @@ class ObDtlBasicChannel ObDtlControlMsgWriter ctl_msg_writer_; ObDtlRowMsgWriter row_msg_writer_; ObDtlDatumMsgWriter datum_msg_writer_; + ObDtlVectorRowMsgWriter vector_row_msg_writer_; + ObDtlVectorMsgWriter vector_msg_writer_; + ObDtlVectorFixedMsgWriter vector_fixed_msg_writer_; ObDtlChannelEncoder *msg_writer_; // row/datum store iterator for interm result iteration. ObChunkDatumStore::Iterator datum_iter_; + ObTempRowStore::Iterator row_iter_; ObDtlChannelBlockProc block_proc_; static const int64_t MAX_BUFFER_CNT = 2; @@ -473,6 +775,7 @@ class ObDtlBasicChannel int64_t send_use_time_; int64_t msg_count_; dtl::ObDTLIntermResultInfoGuard result_info_guard_; + RowMeta *meta_; }; OB_INLINE bool ObDtlBasicChannel::is_empty() const diff --git a/src/sql/dtl/ob_dtl_channel_agent.cpp b/src/sql/dtl/ob_dtl_channel_agent.cpp index 794cd19cd..283c7cba3 100644 --- a/src/sql/dtl/ob_dtl_channel_agent.cpp +++ b/src/sql/dtl/ob_dtl_channel_agent.cpp @@ -31,6 +31,15 @@ int ObDtlBufEncoder::switch_writer(const ObDtlMsg &msg) msg_writer_ = &row_msg_writer_; } else if (DtlWriterType::CHUNK_DATUM_WRITER == msg_writer_map[px_row.get_data_type()]) { msg_writer_ = &datum_msg_writer_; + } else if (DtlWriterType::VECTOR_FIXED_WRITER == msg_writer_map[px_row.get_data_type()]) { + vector_fixed_msg_writer_.set_size_per_buffer(size_per_buffer_); + msg_writer_ = &vector_fixed_msg_writer_; + } else if (DtlWriterType::VECTOR_ROW_WRITER == msg_writer_map[px_row.get_data_type()]) { + vector_row_msg_writer_.set_row_meta(meta_); + msg_writer_ = &vector_row_msg_writer_; + } else if (DtlWriterType::VECTOR_WRITER == msg_writer_map[px_row.get_data_type()]) { + //TODO : support local channel shuffle in vector mode + msg_writer_ = &vector_row_msg_writer_; } else { ret = OB_ERR_UNEXPECTED; LOG_WARN("unkown msg writer", K(msg.get_type()), K(msg_writer_->type())); @@ -44,6 +53,19 @@ int ObDtlBufEncoder::switch_writer(const ObDtlMsg &msg) LOG_WARN("unkown msg writer", K(msg.get_type()), K(msg_writer_->type())); } } + } else { +// #ifndef NDEBUG + // if (msg.is_data_msg() && msg_writer_->type() != DtlWriterType::VECTOR_ROW_WRITER) { + // const ObPxNewRow &px_row = static_cast(msg); + // if (msg_writer_map[px_row.get_data_type()] != msg_writer_->type()) { + // ret = OB_ERR_UNEXPECTED; + // } + // } else { + // if (msg_writer_map[msg.get_type()] != msg_writer_->type()) { + // ret = OB_ERR_UNEXPECTED; + // } + // } +// #endif } return ret; } diff --git a/src/sql/dtl/ob_dtl_channel_agent.h b/src/sql/dtl/ob_dtl_channel_agent.h index 73de171fa..e319d71d2 100644 --- a/src/sql/dtl/ob_dtl_channel_agent.h +++ b/src/sql/dtl/ob_dtl_channel_agent.h @@ -35,17 +35,27 @@ class ObDtlBufEncoder { public: ObDtlBufEncoder() - : buffer_(nullptr), - msg_writer_(nullptr) + : use_row_store_(false), + buffer_(nullptr), + msg_writer_(nullptr), + meta_(nullptr), + size_per_buffer_(-1) {} ~ObDtlBufEncoder() {} + void set_use_row_store() { + use_row_store_ = true; + } int switch_writer(const ObDtlMsg &msg); int need_new_buffer( const ObDtlMsg &msg, ObEvalCtx *eval_ctx, int64_t &need_size, bool &need_new); int write_data_msg(const ObDtlMsg &msg, ObEvalCtx *eval_ctx, bool is_eof); int set_new_buffer(ObDtlLinkedBuffer *buffer) { buffer_ = buffer; - return msg_writer_->init(buffer_); + int ret = msg_writer_->init(buffer_); + if (VECTOR_ROW_WRITER == msg_writer_->type()) { + (static_cast (msg_writer_))->set_row_meta(meta_); + } + return ret; } void reset_writer() { @@ -64,12 +74,20 @@ class ObDtlBufEncoder void write_msg_type(ObDtlLinkedBuffer* buffer) { msg_writer_->write_msg_type(buffer); } ObDtlLinkedBuffer *get_buffer() { return buffer_; } + void set_row_meta(RowMeta &meta) { meta_ = &meta; } + void set_size_per_buffer(const int64_t size) { size_per_buffer_ = size; } private: + int64_t use_row_store_; ObDtlLinkedBuffer *buffer_; ObDtlControlMsgWriter ctl_msg_writer_; ObDtlRowMsgWriter row_msg_writer_; ObDtlDatumMsgWriter datum_msg_writer_; + ObDtlVectorRowMsgWriter vector_row_msg_writer_; + ObDtlVectorMsgWriter vector_msg_writer_; + ObDtlVectorFixedMsgWriter vector_fixed_msg_writer_; ObDtlChannelEncoder *msg_writer_; + RowMeta *meta_; + int64_t size_per_buffer_; }; class ObDtlChanAgent @@ -87,6 +105,8 @@ class ObDtlChanAgent common::ObIArray &channels, int64_t timeout_ts); int destroy(); + void set_row_meta(RowMeta &meta) { dtl_buf_encoder_.set_row_meta(meta); } + void set_size_per_buffer(const int64_t size) { dtl_buf_encoder_.set_size_per_buffer(size); } private: int switch_buffer(int64_t need_size); int send_last_buffer(ObDtlLinkedBuffer *&last_buffer); diff --git a/src/sql/dtl/ob_dtl_interm_result_manager.cpp b/src/sql/dtl/ob_dtl_interm_result_manager.cpp index 281377805..a6567d900 100644 --- a/src/sql/dtl/ob_dtl_interm_result_manager.cpp +++ b/src/sql/dtl/ob_dtl_interm_result_manager.cpp @@ -226,12 +226,20 @@ int ObDTLIntermResultManager::get_interm_result_info(ObDTLIntermResultKey &key, int ObDTLIntermResultManager::create_interm_result_info(ObMemAttr &attr, ObDTLIntermResultInfoGuard &result_info_guard, - const ObDTLIntermResultMonitorInfo &monitor_info) + const ObDTLIntermResultMonitorInfo &monitor_info, + ObDTLIntermResultInfo::StoreType store_type) { int ret = OB_SUCCESS; void *result_info_buf = NULL; void *store_buf = NULL; - const int64_t store_size = sizeof(ObChunkDatumStore); + int64_t store_size = 0; + if (store_type == ObDTLIntermResultInfo::StoreType::DATUM) { + store_size = sizeof(ObChunkDatumStore); + } else if (store_type == ObDTLIntermResultInfo::StoreType::ROW) { + store_size = sizeof(ObTempRowStore); + } else { + store_size = sizeof(ObTempColumnStore); + } if (OB_ISNULL(result_info_buf = ob_malloc(sizeof(ObDTLIntermResultInfo), attr))) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("fail to alloc dtl interm result info", K(ret)); @@ -240,7 +248,14 @@ int ObDTLIntermResultManager::create_interm_result_info(ObMemAttr &attr, LOG_WARN("fail to alloc store", K(ret)); } else { ObDTLIntermResultInfo *result_info = new(result_info_buf) ObDTLIntermResultInfo(); - result_info->datum_store_ = new(store_buf) ObChunkDatumStore("DtlIntermRes"); + if (store_type == ObDTLIntermResultInfo::StoreType::DATUM) { + result_info->datum_store_ = new(store_buf) ObChunkDatumStore("DtlIntermRes"); + } else if (store_type == ObDTLIntermResultInfo::StoreType::ROW) { + result_info->block_store_ = new(store_buf) ObTempRowStore(); + } else { + result_info->block_store_ = new(store_buf) ObTempColumnStore(); + } + result_info->store_type_ = store_type; result_info->is_read_ = false; result_info->trace_id_ = *ObCurTraceId::get_trace_id(); result_info->monitor_info_ = monitor_info; @@ -295,6 +310,15 @@ void ObDTLIntermResultManager::free_interm_result_info_store(ObDTLIntermResultIn result_info->datum_store_->~ObChunkDatumStore(); ob_free(result_info->datum_store_); result_info->datum_store_ = NULL; + } else if (NULL != result_info->block_store_) { + result_info->block_store_->reset(); + if (result_info->store_type_ == ObDTLIntermResultInfo::StoreType::COLUMN) { + result_info->get_column_store()->~ObTempColumnStore(); + } else if (result_info->store_type_ == ObDTLIntermResultInfo::StoreType::ROW) { + result_info->get_row_store()->~ObTempRowStore(); + } + ob_free(result_info->block_store_); + result_info->block_store_ = NULL; } } } @@ -511,15 +535,27 @@ int ObDTLIntermResultManager::process_interm_result_inner(ObDtlLinkedBuffer &buf ret = OB_SUCCESS; ObMemAttr attr("DtlIntermRes", common::ObCtxIds::EXECUTE_CTX_ID); interm_res_key.start_time_ = oceanbase::common::ObTimeUtility::current_time(); - if (buffer.msg_type() != PX_DATUM_ROW) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("Unexpected buffer msg_type", K(ret), K(buffer.msg_type())); + ObDTLIntermResultInfo::StoreType store_type = ObDTLIntermResultInfo::StoreType::INVALID; + switch (buffer.msg_type()) { + case PX_DATUM_ROW: { + store_type = ObDTLIntermResultInfo::StoreType::DATUM; + break; + } + case PX_VECTOR_ROW: { + store_type = ObDTLIntermResultInfo::StoreType::ROW; + break; + } + default: { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("Unexpected buffer msg_type", K(ret), K(buffer.msg_type())); + } } if (OB_FAIL(ret)) { } else if (OB_FAIL(create_interm_result_info(attr, result_info_guard, ObDTLIntermResultMonitorInfo(buffer.get_dfo_key().qc_id_, - buffer.get_dfo_id(), buffer.get_sqc_id())))) { + buffer.get_dfo_id(), buffer.get_sqc_id()), + store_type))) { LOG_WARN("fail to create chunk row store", K(ret)); } else if (OB_FAIL(ObDTLIntermResultManager::init_result_info_store(result_info_guard, buffer))) { LOG_WARN("fail to init result info store", K(ret)); @@ -911,9 +947,25 @@ int ObDTLIntermResultManager::init_result_info_store(ObDTLIntermResultInfoGuard ObDtlLinkedBuffer &buffer) { int ret = OB_SUCCESS; - if (OB_FAIL(result_info_guard.result_info_->datum_store_->init( - 0, common::ObCtxIds::EXECUTE_CTX_ID, "DtlIntermRes"))) { - LOG_WARN("fail to init datum_store", K(ret)); + if (result_info_guard.result_info_->store_type_ == ObDTLIntermResultInfo::StoreType::DATUM) { + if (OB_FAIL(result_info_guard.result_info_->datum_store_->init( + 0, common::ObCtxIds::EXECUTE_CTX_ID, "DtlIntermRes"))) { + LOG_WARN("fail to init datum_store", K(ret)); + } + } else if (result_info_guard.result_info_->store_type_ == ObDTLIntermResultInfo::StoreType::ROW) { + ObMemAttr mem_attr("RowDtlIntermRes", ObCtxIds::EXECUTE_CTX_ID); + if (OB_FAIL(result_info_guard.result_info_->get_row_store()->init( + buffer.get_row_meta(), + buffer.get_max_batch_size(), + mem_attr, + 0 /*mem_limit*/, + true /*enable_dump*/, + NONE_COMPRESSOR))) { + LOG_WARN("fail to init row_store", K(ret)); + } + } else { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected store type", K(result_info_guard.result_info_->store_type_), K(ret)); } return ret; } diff --git a/src/sql/engine/aggregate/ob_aggregate_processor.cpp b/src/sql/engine/aggregate/ob_aggregate_processor.cpp index e19d65408..7b4782aad 100644 --- a/src/sql/engine/aggregate/ob_aggregate_processor.cpp +++ b/src/sql/engine/aggregate/ob_aggregate_processor.cpp @@ -16,7 +16,6 @@ #define USING_LOG_PREFIX SQL_ENG #include "ob_aggregate_processor.h" -#include "share/ob_lob_access_utils.h" #include "sql/engine/expr/ob_expr_minus.h" #include "sql/engine/expr/ob_array_expr_utils.h" #include "sql/engine/expr/ob_expr_estimate_ndv.h" @@ -38,91 +37,9 @@ namespace share { namespace aggregate { -using namespace common; -using namespace sql; - -static bool is_rollup_expr(const ObAggrInfo &aggr_info, ObExpr *expr, const int64_t seq) -{ - bool is_rollup = false; - if (has_exist_in_array(aggr_info.hash_rollup_info_->gby_exprs_, expr) - || !has_exist_in_array(aggr_info.hash_rollup_info_->expand_exprs_, expr)) { - } else { - ObIArray &expand_exprs = aggr_info.hash_rollup_info_->expand_exprs_; - bool found = false; - for (int64_t i = expand_exprs.count() - seq - 1; !found && i >= 0; --i) { - found = expr == expand_exprs.at(i); - } - is_rollup = !found; - } - return is_rollup; -} - -bool is_grouping(const ObAggrInfo &aggr_info, const int64_t seq) -{ - OB_ASSERT(aggr_info.param_exprs_.count() == 1 && aggr_info.param_exprs_.at(0) != nullptr); - return is_rollup_expr(aggr_info, aggr_info.param_exprs_.at(0), seq); -} - -int get_grouping_id(const ObAggrInfo &aggr_info, const int64_t seq, - number::ObCompactNumber *grouping_id) -{ - int ret = OB_SUCCESS; - const ObIArray ¶m_exprs = aggr_info.param_exprs_; - int512_t res = 0; - int512_t base = 1; - if (OB_UNLIKELY(param_exprs.count() <= 0) || OB_ISNULL(grouping_id)) { - ret = OB_ERR_UNEXPECTED; - SQL_LOG(WARN, "invalid grouping id arguments", K(ret), K(param_exprs.count()), KP(grouping_id)); - } - for (int64_t i = param_exprs.count() - 1; OB_SUCC(ret) && i >= 0; --i) { - ObExpr *grouping_expr = param_exprs.at(i); - if (OB_ISNULL(grouping_expr)) { - ret = OB_ERR_UNEXPECTED; - SQL_LOG(WARN, "invalid null expr", K(ret)); - } else if (is_rollup_expr(aggr_info, grouping_expr, seq)) { - res += base; - } - base = base << 1; - } - if (OB_SUCC(ret)) { - number::ObNumber tmp_nmb; - ObNumStackOnceAlloc tmp_alloc; - if (OB_FAIL(wide::to_number(res, 0, tmp_alloc, tmp_nmb))) { - SQL_LOG(WARN, "to_number failed", K(ret)); - } else { - grouping_id->desc_ = tmp_nmb.d_; - MEMCPY(grouping_id->digits_, tmp_nmb.get_digits(), - tmp_nmb.d_.len_ * sizeof(uint32_t)); - } - } - return ret; -} - -int get_grouping_id(const ObAggrInfo &aggr_info, const int64_t seq, int64_t *grouping_id) -{ - int ret = OB_SUCCESS; - const ObIArray ¶m_exprs = aggr_info.param_exprs_; - int64_t res = 0; - int64_t base = 1; - if (OB_UNLIKELY(param_exprs.count() <= 0) || OB_ISNULL(grouping_id)) { - ret = OB_ERR_UNEXPECTED; - SQL_LOG(WARN, "invalid grouping id arguments", K(ret), K(param_exprs.count()), KP(grouping_id)); - } - for (int64_t i = param_exprs.count() - 1; OB_SUCC(ret) && i >= 0; --i) { - ObExpr *grouping_expr = param_exprs.at(i); - if (OB_ISNULL(grouping_expr)) { - ret = OB_ERR_UNEXPECTED; - SQL_LOG(WARN, "invalid null expr", K(ret)); - } else if (is_rollup_expr(aggr_info, grouping_expr, seq)) { - res += base; - } - base <<= 1; - } - if (OB_SUCC(ret)) { - *grouping_id = res; - } - return ret; -} +extern bool is_grouping(const ObAggrInfo &aggr_info, const int64_t val); +extern int get_grouping_id(const ObAggrInfo &aggr_info, const int64_t val, number::ObCompactNumber *grouping_id); +extern int get_grouping_id(const ObAggrInfo &aggr_info, const int64_t val, int64_t *grouping_id); } // end aggregate } // end share using namespace common; diff --git a/src/sql/engine/aggregate/ob_hash_distinct_vec_op.cpp b/src/sql/engine/aggregate/ob_hash_distinct_vec_op.cpp new file mode 100644 index 000000000..604c651a0 --- /dev/null +++ b/src/sql/engine/aggregate/ob_hash_distinct_vec_op.cpp @@ -0,0 +1,592 @@ +/* + * Copyright (c) 2025 OceanBase. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define USING_LOG_PREFIX SQL_ENG + +#include "sql/engine/aggregate/ob_hash_distinct_vec_op.h" +#include "sql/engine/px/ob_px_util.h" + +namespace oceanbase +{ +using namespace common; +namespace sql +{ + +ObHashDistinctVecSpec::ObHashDistinctVecSpec(ObIAllocator &alloc, const ObPhyOperatorType type) + : ObOpSpec(alloc, type), + distinct_exprs_(alloc), + sort_collations_(alloc), + is_block_mode_(false), + by_pass_enabled_(false), + is_push_down_(false) +{} + +OB_SERIALIZE_MEMBER((ObHashDistinctVecSpec, ObOpSpec), + distinct_exprs_, + sort_collations_, + is_block_mode_, + by_pass_enabled_, + is_push_down_); + +ObHashDistinctVecOp::ObHashDistinctVecOp(ObExecContext &exec_ctx, const ObOpSpec &spec, ObOpInput *input) + : ObOperator(exec_ctx, spec, input), + first_got_row_(true), + has_got_part_(false), + iter_end_(false), + child_op_is_end_(false), + need_init_(true), + profile_(ObSqlWorkAreaType::HASH_WORK_AREA), + sql_mem_processor_(profile_, op_monitor_info_), + group_cnt_(0), + hash_values_for_batch_(nullptr), + extend_bkt_num_push_down_(0), + build_distinct_data_batch_func_(&ObHashDistinctVecOp::build_distinct_data_for_batch), + bypass_ctrl_(), + mem_context_(NULL) +{ + enable_sql_dumped_ = GCONF.is_sql_operator_dump_enabled(); +} + +int ObHashDistinctVecOp::inner_open() +{ + int ret = OB_SUCCESS; + if (OB_UNLIKELY(nullptr == left_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected status: left is null", K(ret)); + } else if (OB_FAIL(ObOperator::inner_open())) { + LOG_WARN("failed to inner open", K(ret)); + } else if (OB_FAIL(init_mem_context())) { + LOG_WARN("failed to init mem context", K(ret)); + } else { + first_got_row_ = true; + bypass_ctrl_.cut_ratio_ = ObAdaptiveByPassCtrl::INIT_CUT_RATIO; + + if (MY_SPEC.is_block_mode_) { + get_next_batch_func_ = &ObHashDistinctVecOp::do_block_distinct_for_batch; + } else { + get_next_batch_func_ = &ObHashDistinctVecOp::do_unblock_distinct_for_batch; + } + if (MY_SPEC.by_pass_enabled_) { + CK (!MY_SPEC.is_block_mode_); + // to avoid performance decrease, at least deduplicate 2/3 + bypass_ctrl_.cut_ratio_ = ObAdaptiveByPassCtrl::INIT_CUT_RATIO; + build_distinct_data_batch_func_ = &ObHashDistinctVecOp::build_distinct_data_for_batch_by_pass; + } + LOG_TRACE("trace block mode", K(MY_SPEC.is_block_mode_), + K(spec_.id_), K(MY_SPEC.is_push_down_)); + } + return ret; +} + +int ObHashDistinctVecOp::inner_close() +{ + int ret = OB_SUCCESS; + if (OB_FAIL(ObOperator::inner_close())) { + LOG_WARN("failed to inner close", K(ret)); + } else { + reset(); + } + sql_mem_processor_.unregister_profile(); + return ret; +} + +void ObHashDistinctVecOp::reset() +{ + first_got_row_ = true; + has_got_part_ = false; + group_cnt_ = 0; + hp_infras_.reset(); + bypass_ctrl_.reset(); + if (MY_SPEC.is_block_mode_) { + get_next_batch_func_ = &ObHashDistinctVecOp::do_block_distinct_for_batch; + } else { + get_next_batch_func_ = &ObHashDistinctVecOp::do_unblock_distinct_for_batch; + } + LOG_TRACE("trace block mode", K(MY_SPEC.is_block_mode_), K(spec_.id_)); +} + +int ObHashDistinctVecOp::inner_rescan() +{ + int ret = OB_SUCCESS; + if (OB_FAIL(ObOperator::inner_rescan())) { + LOG_WARN("failed to rescan child operator", K(ret)); + } else { + reset(); + iter_end_ = false; + } + return ret; +} + +void ObHashDistinctVecOp::destroy() +{ + sql_mem_processor_.unregister_profile_if_necessary(); + hp_infras_.destroy(); + if (OB_LIKELY(NULL != mem_context_)) { + DESTROY_CONTEXT(mem_context_); + mem_context_ = NULL; + } + ObOperator::destroy(); +} + +int ObHashDistinctVecOp::init_hash_partition_infras() +{ + int ret = OB_SUCCESS; + int64_t est_rows = MY_SPEC.rows_; + if (OB_FAIL(ObPxEstimateSizeUtil::get_px_size( + &ctx_, MY_SPEC.px_est_size_factor_, est_rows, est_rows))) { + LOG_WARN("failed to get px size", K(ret)); + } else if (OB_FAIL(sql_mem_processor_.init( + &mem_context_->get_malloc_allocator(), + est_rows * MY_SPEC.width_, + MY_SPEC.type_, + MY_SPEC.id_, + &ctx_))) { + LOG_WARN("failed to init sql mem processor", K(ret)); + } else if (OB_FAIL(hp_infras_.init(enable_sql_dumped_, + true, true, 2, MY_SPEC.max_batch_size_, MY_SPEC.distinct_exprs_, &sql_mem_processor_, + MY_SPEC.compress_type_))) { + LOG_WARN("failed to init hash partition infrastructure", K(ret)); + } else { + hp_infras_.set_io_event_observer(&io_event_observer_); + if (MY_SPEC.by_pass_enabled_) { + hp_infras_.set_push_down(); + } + int64_t est_bucket_num = hp_infras_.est_bucket_count(est_rows, MY_SPEC.width_, + MIN_BUCKET_COUNT, MAX_BUCKET_COUNT); + if (OB_FAIL(hp_infras_.set_funcs(&MY_SPEC.sort_collations_, &eval_ctx_))) { + LOG_WARN("failed to set funcs", K(ret)); + } else if (OB_FAIL(hp_infras_.start_round())) { + LOG_WARN("failed to start round", K(ret)); + } else if (OB_FAIL(hp_infras_.init_hash_table(est_bucket_num, + MIN_BUCKET_COUNT, MAX_BUCKET_COUNT))) { + LOG_WARN("failed to init hash table", K(ret)); + } else { + extend_bkt_num_push_down_ = INIT_L3_CACHE_SIZE / hp_infras_.get_bucket_size(); + op_monitor_info_.otherstat_1_value_ = est_bucket_num; + op_monitor_info_.otherstat_1_id_ = ObSqlMonitorStatIds::HASH_INIT_BUCKET_COUNT; + op_monitor_info_.otherstat_4_value_ = MY_SPEC.is_block_mode_; + op_monitor_info_.otherstat_4_id_ = ObSqlMonitorStatIds::DISTINCT_BLOCK_MODE; + } + } + return ret; +} + +int ObHashDistinctVecOp::init_hash_partition_infras_for_batch() +{ + int ret = OB_SUCCESS; + if (OB_FAIL(init_hash_partition_infras())) { + LOG_WARN("failed to get next row", K(ret)); + } else if (need_init_ && OB_FAIL(hp_infras_.init_my_skip(MY_SPEC.max_batch_size_))) { + LOG_WARN("failed to init hp skip", K(ret)); + } + return ret; +} + +int ObHashDistinctVecOp::build_distinct_data_for_batch(const int64_t batch_size, bool is_block) +{ + int ret = OB_SUCCESS; + bool got_batch = false; + int64_t read_rows = -1; + bool finish_turn = false; + ObBitVector *output_vec = nullptr; + while(OB_SUCC(ret) && !got_batch) { + const ObBatchRows *child_brs = nullptr; + if (!has_got_part_) { + clear_evaluated_flag(); + if (child_op_is_end_) { + finish_turn = true; + } else if (OB_FAIL(child_->get_next_batch(batch_size, child_brs))) { + LOG_WARN("failed to get next batch from child op", K(ret), K(is_block)); + } else if (OB_FAIL(hp_infras_.calc_hash_value_for_batch( + MY_SPEC.distinct_exprs_, *child_brs->skip_, child_brs->size_, + child_brs->all_rows_active_, hash_values_for_batch_))) { + LOG_WARN("failed to calc hash values batch for child", K(ret)); + } else { + //child_op_is_end_ means last batch data is return, finish_turn means no data to process + child_op_is_end_ = child_brs->end_ && (child_brs->size_ != 0); + finish_turn = child_brs->end_ && (0 == child_brs->size_); + read_rows = child_brs->size_; + } + } else if (OB_FAIL(hp_infras_.get_left_next_batch(MY_SPEC.distinct_exprs_, + batch_size, + read_rows, + hash_values_for_batch_))) { + if (OB_ITER_END == ret) { + //no data to process + finish_turn = true; + ret = OB_SUCCESS; + } else { + LOG_WARN("failed to get next batch from hp infra", K(ret)); + } + } + if (OB_SUCC(ret) && finish_turn) { + ret = OB_SUCCESS; + finish_turn = false; + //get dump partition + if (OB_FAIL(hp_infras_.finish_insert_row())) { + LOG_WARN("failed to finish insert row", K(ret)); + } else if (!has_got_part_) { + has_got_part_ = true; + LOG_DEBUG("start get dumped partition", K(group_cnt_)); + } else { + if (OB_FAIL(hp_infras_.close_cur_part(InputSide::LEFT))) { + LOG_WARN("failed to close curr part", K(ret)); + } + } + if (OB_FAIL(ret)) { + } else if (is_block) { + //if true, means we have process a full partition, then break the loop and return rows + break; + LOG_TRACE("trace block", K(is_block)); + } else if (OB_FAIL(hp_infras_.end_round())) { + LOG_WARN("failed to end round", K(ret)); + } else if (OB_FAIL(hp_infras_.start_round())) { + LOG_WARN("failed to start round", K(ret)); + } else if (OB_FAIL(hp_infras_.get_next_partition(InputSide::LEFT))) { + if (OB_ITER_END != ret) { + LOG_WARN("failed to get next dump partition", K(ret)); + } + } else if (OB_FAIL(hp_infras_.open_cur_part(InputSide::LEFT))) { + LOG_WARN("failed to open curr part", K(ret)); + } else if (OB_FAIL(hp_infras_.resize(hp_infras_.get_cur_part_row_cnt(InputSide::LEFT)))) { + LOG_WARN("failed to init hash table", K(ret)); + } + } else if (OB_FAIL(ret)) { + } else if (OB_FAIL(try_check_status())) { + LOG_WARN("failed to check status", K(ret)); + } else if (!has_got_part_ + && OB_FAIL(hp_infras_.insert_row_for_batch(MY_SPEC.distinct_exprs_, + hash_values_for_batch_, + read_rows, + child_brs->skip_, + output_vec))) { + LOG_WARN("failed to insert batch rows, no dump", K(ret)); + } else if (has_got_part_ + && OB_FAIL(hp_infras_.insert_row_for_batch(MY_SPEC.distinct_exprs_, + hash_values_for_batch_, + read_rows, + nullptr, + output_vec))) { + LOG_WARN("failed to insert batch rows, dump", K(ret)); + } else if (OB_ISNULL(output_vec)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to get output vector", K(ret)); + } else if (!is_block) { + brs_.size_ = read_rows; + brs_.skip_->deep_copy(*output_vec, read_rows); + int64_t got_rows = read_rows - output_vec->accumulate_bit_cnt(read_rows); + group_cnt_ += got_rows; + got_batch = (got_rows != 0); + } + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + brs_.size_ = 0; + brs_.end_ = true; + iter_end_ = true; + } + return ret; +} + +int ObHashDistinctVecOp::build_distinct_data_for_batch_by_pass(const int64_t batch_size, bool is_block) +{ + int ret = OB_SUCCESS; + bool got_batch = false; + int64_t read_rows = -1; + bool finish_turn = false; + ObBitVector *output_vec = nullptr; + bool can_insert = true; + int64_t exists_count = 0; + while(OB_SUCC(ret) && !got_batch) { + if (!bypass_ctrl_.by_pass_ && bypass_ctrl_.rebuild_times_ >= MAX_REBUILD_TIMES) { + bypass_ctrl_.by_pass_ = true; + } + const ObBatchRows *child_brs = nullptr; + clear_evaluated_flag(); + if (bypass_ctrl_.by_pass_) { + if (OB_FAIL(by_pass_get_next_batch(batch_size))) { + LOG_WARN("failed to get next batch", K(ret)); + } + break; + } + if (OB_FAIL(ret)) { + } else if (child_op_is_end_) { + finish_turn = true; + } else if (OB_FAIL(child_->get_next_batch(batch_size, child_brs))) { + LOG_WARN("failed to get next batch from child op", K(ret)); + } else if (OB_FAIL(hp_infras_.calc_hash_value_for_batch( + MY_SPEC.distinct_exprs_, *child_brs->skip_, child_brs->size_, + child_brs->all_rows_active_, hash_values_for_batch_))) { + LOG_WARN("failed to calc hash values batch for child", K(ret)); + } else { + int64_t add_cnt = (child_brs->size_ + - (child_brs->skip_->accumulate_bit_cnt(child_brs->size_))); + bypass_ctrl_.processed_cnt_ += add_cnt; + //child_op_is_end_ means last batch data is return, finish_turn means no data to process + child_op_is_end_ = child_brs->end_ && (child_brs->size_ != 0); + finish_turn = child_brs->end_ && (0 == child_brs->size_); + read_rows = child_brs->size_; + if (OB_FAIL(process_state(add_cnt, can_insert))) { + LOG_WARN("failed to process state ", K(ret)); + } + } + if (OB_FAIL(ret)) { + } else if (finish_turn) { + ret = OB_ITER_END; + } else if (OB_FAIL(try_check_status())) { + LOG_WARN("failed to check status", K(ret)); + } else if (OB_FAIL(hp_infras_. + do_insert_batch_with_unique_hash_table_by_pass(MY_SPEC.distinct_exprs_, + hash_values_for_batch_, + read_rows, + child_brs->skip_, + is_block, + can_insert, + exists_count, + bypass_ctrl_.by_pass_, + output_vec))) { + LOG_WARN("failed to insert batch rows, no dump", K(ret)); + } else if (OB_ISNULL(output_vec)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to get output vector", K(ret)); + } else { + bypass_ctrl_.exists_cnt_ += exists_count; + brs_.size_ = read_rows; + brs_.skip_->deep_copy(*output_vec, read_rows); + int64_t got_rows = read_rows - output_vec->accumulate_bit_cnt(read_rows); + group_cnt_ += got_rows; + got_batch = (got_rows != 0); + } + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + brs_.size_ = 0; + brs_.end_ = true; + iter_end_ = true; + } + return ret; +} + +int ObHashDistinctVecOp::do_unblock_distinct_for_batch(const int64_t batch_size) +{ + LOG_DEBUG("calc unblock hash distinct batch mode", K(batch_size)); + int ret = OB_SUCCESS; + if (first_got_row_) { + if (OB_FAIL(init_hash_partition_infras_for_batch())) { + LOG_WARN("failed to init hash infra for batch", K(ret)); + } + first_got_row_ = false; + } + if (OB_FAIL(ret)) { + } else if (OB_FAIL(((this->*build_distinct_data_batch_func_)(batch_size, false)))) { + LOG_WARN("failed to build distinct data for batch", K(ret)); + } + return ret; +} + +int ObHashDistinctVecOp::do_block_distinct_for_batch(const int64_t batch_size) { + LOG_DEBUG("calc block hash distinct batch mode", K(batch_size)); + int ret = OB_SUCCESS; + if (first_got_row_) { + if (OB_FAIL(init_hash_partition_infras_for_batch())) { + LOG_WARN("failed to init hash infra for batch", K(ret)); + } else if (OB_FAIL(((this->*build_distinct_data_batch_func_)(batch_size, true)))) { + LOG_WARN("failed to build distinct data", K(ret)); + } else if (OB_FAIL(hp_infras_.open_hash_table_part())) { + LOG_WARN("failed to open hash table part", K(ret)); + } + clear_evaluated_flag(); + first_got_row_ = false; + } + if (OB_SUCC(ret)) { + int64_t read_rows = 0; + if (OB_FAIL(hp_infras_.get_next_hash_table_batch(MY_SPEC.distinct_exprs_, + batch_size, + read_rows, + nullptr))) { + //Ob_ITER_END means data from child_ or current + //partition in infra is run out, read_size <= batch_size + if (OB_ITER_END == ret) { + if (OB_FAIL(hp_infras_.end_round())) { + LOG_WARN("failed to end round", K(ret)); + } else if (OB_FAIL(hp_infras_.start_round())) { + LOG_WARN("failed to start round", K(ret)); + } else if (OB_FAIL(hp_infras_.get_next_partition(InputSide::LEFT))) { + if (OB_ITER_END != ret) { + LOG_WARN("failed to get dumped partitions", K(ret)); + } + } else if (OB_FAIL(hp_infras_.open_cur_part(InputSide::LEFT))) { + LOG_WARN("failed to open cur part", K(ret)); + } else if (OB_FAIL(hp_infras_.resize(hp_infras_.get_cur_part_row_cnt(InputSide::LEFT)))) { + LOG_WARN("failed to init hashtable", K(ret)); + } else if (OB_FAIL(((this->*build_distinct_data_batch_func_)(batch_size, true)))) { + LOG_WARN("failed to build distinct data for batch", K(ret)); + } else if (OB_FAIL(hp_infras_.open_hash_table_part())) { + LOG_WARN("failed to open hash table part", K(ret)); + } else if (OB_FAIL(hp_infras_.get_next_hash_table_batch(MY_SPEC.distinct_exprs_, + batch_size, + read_rows, + nullptr))) { + LOG_WARN("failed to get next row in hash table", K(ret)); + } else { + group_cnt_ += read_rows; + brs_.size_ = read_rows; + } + } else { + LOG_WARN("failed to get next batch in hash table", K(ret)); + } + } else { + group_cnt_ += read_rows; + brs_.size_ = read_rows; + brs_.all_rows_active_ = true; + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + brs_.size_ = 0; + brs_.end_ = true; + iter_end_ = true; + } + } + + return ret; +} + +int ObHashDistinctVecOp::inner_get_next_batch(const int64_t max_row_cnt) +{ + int ret = OB_SUCCESS; + clear_evaluated_flag(); + int64_t batch_size = min(max_row_cnt, MY_SPEC.max_batch_size_); + if (iter_end_) { + brs_.size_ = 0; + brs_.end_ = true; + } else if (OB_UNLIKELY(OB_ISNULL(get_next_batch_func_))) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("get next batch func is nullptr", K(ret)); + } else if (need_init_) { + if (OB_ISNULL(hash_values_for_batch_ + = static_cast (ctx_.get_allocator().alloc(MY_SPEC.max_batch_size_ * sizeof(uint64_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to init hash values for batch", K(ret), K(MY_SPEC.max_batch_size_)); + } + } + if (OB_FAIL(ret)) { + } else if (OB_FAIL((this->*get_next_batch_func_)(batch_size))) { + LOG_WARN("failed to get next batch", K(ret)); + } else if (brs_.end_) { + op_monitor_info_.otherstat_2_value_ = group_cnt_; + op_monitor_info_.otherstat_2_id_ = ObSqlMonitorStatIds::HASH_ROW_COUNT; + op_monitor_info_.otherstat_3_value_ = hp_infras_.get_bucket_num(); + op_monitor_info_.otherstat_3_id_ = ObSqlMonitorStatIds::HASH_BUCKET_COUNT; + //for hash distinct , brs_.end means no data need to process, so do reset here + reset(); + iter_end_ = true; + } + need_init_ = false; + return ret; +} + +int ObHashDistinctVecOp::by_pass_get_next_batch(const int64_t batch_size) +{ + int ret = OB_SUCCESS; + const ObBatchRows *child_brs = nullptr; + if (OB_FAIL(child_->get_next_batch(batch_size, child_brs))) { + LOG_WARN("failed to get next batcn", K(ret)); + } else { + brs_.size_ = child_brs->size_; + group_cnt_ += (child_brs->size_ - child_brs->skip_->accumulate_bit_cnt(batch_size)); + brs_.skip_->deep_copy(*(child_brs->skip_), batch_size); + if (child_brs->end_ && (0 == child_brs->size_)) { + brs_.end_ = true; + brs_.size_ = 0; + iter_end_ = true; + } + } + return ret; +} + +int ObHashDistinctVecOp::process_state(int64_t probe_cnt, bool &can_insert) +{ + int64_t min_period_cnt = ObAdaptiveByPassCtrl::MIN_PERIOD_CNT; + can_insert = true; + int ret = OB_SUCCESS; + if (ObAdaptiveByPassCtrl::STATE_L2_INSERT == bypass_ctrl_.state_) { + can_insert = true; + if (hp_infras_.get_actual_mem_used() > INIT_L2_CACHE_SIZE) { + bypass_ctrl_.period_cnt_ = std::max(hp_infras_.get_hash_table_size(), min_period_cnt); + bypass_ctrl_.probe_cnt_ += probe_cnt; + bypass_ctrl_.state_ = ObAdaptiveByPassCtrl::STATE_ANALYZE; + } + } else if (ObAdaptiveByPassCtrl::STATE_L3_INSERT == bypass_ctrl_.state_) { + can_insert = true; + if (hp_infras_.get_actual_mem_used() > INIT_L3_CACHE_SIZE) { + bypass_ctrl_.period_cnt_ = std::max(hp_infras_.get_hash_table_size(), min_period_cnt); + bypass_ctrl_.probe_cnt_ += probe_cnt; + bypass_ctrl_.state_ = ObAdaptiveByPassCtrl::STATE_ANALYZE; + } + } else if (ObAdaptiveByPassCtrl::STATE_PROBE == bypass_ctrl_.state_) { + can_insert = false; + bypass_ctrl_.probe_cnt_ += probe_cnt; + if (bypass_ctrl_.probe_cnt_ >= bypass_ctrl_.period_cnt_) { + bypass_ctrl_.state_ = ObAdaptiveByPassCtrl::STATE_ANALYZE; + } + } else if (ObAdaptiveByPassCtrl::STATE_ANALYZE == bypass_ctrl_.state_) { + can_insert = false; + double ratio = MIN_RATIO_FOR_L3; + if (!(hp_infras_.get_hash_bucket_num() >= extend_bkt_num_push_down_) + && static_cast (bypass_ctrl_.exists_cnt_) / bypass_ctrl_.probe_cnt_ >= + std::max(ratio, 1 - (1 / static_cast (bypass_ctrl_.cut_ratio_)))) { + bypass_ctrl_.rebuild_times_ = 0; + if (hp_infras_.hash_table_full()) { + bypass_ctrl_.state_ = ObAdaptiveByPassCtrl::STATE_L3_INSERT; + if (OB_FAIL(hp_infras_.extend_hash_table_l3())) { + LOG_WARN("failed to extend hash table", K(ret)); + } + } else { + bypass_ctrl_.state_ = ObAdaptiveByPassCtrl::STATE_PROBE; + } + } else if (static_cast (bypass_ctrl_.exists_cnt_) / bypass_ctrl_.probe_cnt_ >= + 1 - (1 / static_cast (bypass_ctrl_.cut_ratio_))) { + bypass_ctrl_.state_ = ObAdaptiveByPassCtrl::STATE_PROBE; + bypass_ctrl_.rebuild_times_ = 0; + } else { + LOG_TRACE("get new state", K(bypass_ctrl_.state_), K(bypass_ctrl_.processed_cnt_), K(hp_infras_.get_hash_bucket_num()), + K(hp_infras_.get_hash_table_size()), K(bypass_ctrl_.exists_cnt_), K(bypass_ctrl_.probe_cnt_)); + hp_infras_.reset_hash_table_for_by_pass(); + bypass_ctrl_.state_ = ObAdaptiveByPassCtrl::STATE_L2_INSERT; + ++bypass_ctrl_.rebuild_times_; + } + bypass_ctrl_.probe_cnt_ = 0; + bypass_ctrl_.exists_cnt_ = 0; + } + return ret; +} + +int ObHashDistinctVecOp::init_mem_context() +{ + int ret = OB_SUCCESS; + if (NULL == mem_context_) { + lib::ContextParam param; + param.set_mem_attr("ObHashDistRows", + ObCtxIds::WORK_AREA); + if (OB_FAIL(CURRENT_CONTEXT->CREATE_CONTEXT(mem_context_, param))) { + LOG_WARN("memory entity create failed", K(ret)); + } + } + return ret; +} + +} // end namespace sql +} // end namespace oceanbase diff --git a/src/sql/engine/aggregate/ob_merge_groupby_vec_op.cpp b/src/sql/engine/aggregate/ob_merge_groupby_vec_op.cpp new file mode 100644 index 000000000..357056351 --- /dev/null +++ b/src/sql/engine/aggregate/ob_merge_groupby_vec_op.cpp @@ -0,0 +1,1343 @@ +/* + * Copyright (c) 2025 OceanBase. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define USING_LOG_PREFIX SQL_ENG + +#include "sql/engine/aggregate/ob_merge_groupby_vec_op.h" +#include "sql/engine/px/ob_px_util.h" + +namespace oceanbase +{ +using namespace common; +namespace sql +{ + +OB_SERIALIZE_MEMBER((ObMergeGroupByVecSpec, ObGroupBySpec), + group_exprs_, + rollup_exprs_, + is_duplicate_rollup_expr_, + has_rollup_, + distinct_exprs_, + est_rows_per_group_, + enable_hash_base_distinct_ +); + +DEF_TO_STRING(ObMergeGroupByVecSpec) +{ + int64_t pos = 0; + J_OBJ_START(); + J_NAME("groupbyvec_spec"); + J_COLON(); + pos += ObGroupBySpec::to_string(buf + pos, buf_len - pos); + J_COMMA(); + J_KV(K_(group_exprs), K_(rollup_exprs), K_(is_duplicate_rollup_expr), K_(has_rollup)); + J_OBJ_END(); + return pos; +} + + + +#define IS_VALID_DIFF_ROWID(id) (diff_row_idx_list_[id] != UINT32_MAX) + +int ObRowsGroupProcessor::init(ObEvalCtx &eval_ctx, const ObIArray &group_exprs) +{ + int ret = OB_SUCCESS; + groupby_exprs_ = &group_exprs; + group_expr_cnt_ = group_exprs.count(); + group_vectors_.reuse(); + diff_row_idx_list_.reuse(); + if (OB_FAIL(group_vectors_.reserve(group_expr_cnt_))) { + LOG_WARN("failed to init", K(ret), K(group_expr_cnt_)); + } else if (OB_FAIL(diff_row_idx_list_.reserve(group_expr_cnt_))) { + LOG_WARN("failed to init", K(ret), K(group_expr_cnt_)); + } else { + for (int64_t i = 0; OB_SUCC(ret) && i < group_expr_cnt_; ++i) { + ObExpr *expr = groupby_exprs_->at(i); + if (OB_FAIL(group_vectors_.push_back(expr->get_vector(eval_ctx)))) { + LOG_WARN("group_vectors_ push back failed", K(ret)); + } + } + } + return ret; +} + +int ObRowsGroupProcessor::prepare_process_next_batch() +{ + int ret = OB_SUCCESS; + last_group_row_idx_ = -1; + diff_row_idx_list_.reuse(); + for (int64_t i = 0; OB_SUCC(ret) && i < group_expr_cnt_; ++i) { + if (OB_FAIL(diff_row_idx_list_.push_back(UINT32_MAX))) { + LOG_WARN("failed to push idx", K(ret)); + } + } + return ret; +} + +void ObRowsGroupProcessor::reuse() +{ + last_group_row_idx_ = -1; + group_vectors_.reuse(); + diff_row_idx_list_.reuse(); +} + +void ObRowsGroupProcessor::reset() +{ + groupby_exprs_ = nullptr; + group_expr_cnt_ = 0; + last_group_row_idx_ = -1; + group_vectors_.reset(); + diff_row_idx_list_.reset(); +} + +void ObRowsGroupProcessor::derive_last_group_info(int64_t &diff_group_idx, uint32_t &group_end_idx) +{ + diff_group_idx = 0; + group_end_idx = diff_row_idx_list_[0]; + for (uint32_t i = 1; i < group_expr_cnt_; ++i) { + if (IS_VALID_DIFF_ROWID(i)) { + group_end_idx = std::min(group_end_idx, diff_row_idx_list_[i]); + if (IS_VALID_DIFF_ROWID(i - 1) && diff_row_idx_list_[i] < diff_row_idx_list_[i - 1]) { + diff_group_idx = i; + } + } + } +} + +int ObRowsGroupProcessor::find_next_new_group(const ObBatchRows &brs, + const LastCompactRow &group_store_row, + bool &found_new_group, uint32_t &group_end_idx, + int64_t &diff_group_idx) +{ + int ret = OB_SUCCESS; + found_new_group = false; + diff_group_idx = -1; + ObLength r_len = 0; + bool r_null = false; + const char *r_v = nullptr; + int64_t start_row_idx = 0; + int64_t end_row_idx = brs.size_; + int64_t diff_row_idx = 0; + int cmp_ret = 0; + for (int64_t i = 0; OB_SUCC(ret) && i < group_expr_cnt_; ++i) { + if (IS_VALID_DIFF_ROWID(i) && diff_row_idx_list_[i] > last_group_row_idx_) { + LOG_DEBUG("skip the current column match", K(i), K(diff_row_idx_list_[i]), + K(last_group_row_idx_)); + continue; + } else { + if (IS_VALID_DIFF_ROWID(i)) { + start_row_idx = diff_row_idx_list_[i] > last_group_row_idx_ ? diff_row_idx_list_[i] + 1 : + last_group_row_idx_ + 1; + } else { + start_row_idx = (-1 == last_group_row_idx_) ? 0 : last_group_row_idx_ + 1; + } + end_row_idx = (i > 0 && IS_VALID_DIFF_ROWID(i - 1) ? diff_row_idx_list_[i - 1] : brs.size_); + if (start_row_idx >= brs.size_ || end_row_idx - start_row_idx < 0) { + continue; + } else if (i > 0 && (0 == end_row_idx - start_row_idx)) { + found_new_group = true; + diff_row_idx_list_[i] = end_row_idx; + continue; + } + r_null = group_store_row.is_null(i); + group_store_row.get_cell_payload(i, r_v, r_len); + ObExpr *expr = groupby_exprs_->at(i); + if (OB_FAIL(group_vectors_[i]->null_first_mul_cmp( + *expr, *brs.skip_, + EvalBound(brs.size_, start_row_idx, end_row_idx, brs.all_rows_active_), r_null, r_v, + r_len, diff_row_idx, cmp_ret))) { + LOG_WARN("compare failed", K(ret)); + } else { + if ((0 != cmp_ret && diff_row_idx != end_row_idx) || diff_row_idx != brs.size_) { + /* Why is cmp_ret equal to 0 and diff_row_idx not equal to brs.size_? Need to set + * found_new_group to true + * [1, 2, 3] + * [1, 2, 3] -> first group + * [1, 3, 4] + * [1, 3, 4] -> second group + * first column diff row idx -> [2, 3, 4] + */ + found_new_group = true; + } else { + diff_row_idx = end_row_idx; + } + diff_row_idx_list_[i] = diff_row_idx; + } + } + } + if (OB_FAIL(ret)) { + } else if (found_new_group) { + derive_last_group_info(diff_group_idx, group_end_idx); + last_group_row_idx_ = group_end_idx; + } else { + diff_group_idx = group_expr_cnt_ - 1; + group_end_idx = brs.size_; + last_group_row_idx_ = brs.size_; + } + return ret; +} + +#undef IS_VALID_DIFF_ROWID + +int ObMergeGroupByVecOp::init_mem_context() +{ + int ret = OB_SUCCESS; + if (mem_context_ == nullptr) { + void *buf = nullptr; + lib::ContextParam param; + param.set_mem_attr(ObModIds::OB_SQL_AGGR_FUNC, + ObCtxIds::WORK_AREA); + if (OB_FAIL(CURRENT_CONTEXT->CREATE_CONTEXT(mem_context_, param))) { + LOG_WARN("memory entity create failed", K(ret)); + } else if (OB_ISNULL(mem_context_)) { + ret = OB_ERR_UNEXPECTED; + SQL_ENG_LOG(WARN, "mem entity is null", K(ret)); + } else if (OB_ISNULL(buf = mem_context_->allocp(sizeof(ObArenaAllocator)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + SQL_ENG_LOG(WARN, "failed to allocate memory", K(ret)); + } else { + arena_alloc_ = new (buf) ObArenaAllocator(mem_context_->get_malloc_allocator()); + arena_alloc_->set_label("VecGroupRows"); + } + } + return ret; +} + +void ObMergeGroupByVecOp::reset() +{ + is_end_ = false; + cur_output_group_id_ = OB_INVALID_INDEX; + first_output_group_id_ = 0; + last_child_output_.reset(); + cur_group_rowid_ = common::OB_INVALID_INDEX; + output_queue_cnt_ = 0; + for (int64_t i = 0; i < output_groupby_rows_.count(); i++) { + if (OB_NOT_NULL(output_groupby_rows_.at(i))) { + output_groupby_rows_.at(i)->reset(); + } + } + brs_holder_.reset(); + output_groupby_rows_.reset(); + cur_aggr_row_ = nullptr; + cur_group_store_row_ = nullptr; + is_group_first_calc_ = true; + cur_group_last_row_idx_ = -1; + group_processor_.reuse(); + group_rows_.reuse(); + if (OB_NOT_NULL(arena_alloc_)) { + arena_alloc_->reset(); + } +} + +int ObMergeGroupByVecOp::init_one_group(const int64_t group_id, bool fill_pos /* false */) +{ + int ret = OB_SUCCESS; + ObCompactRow *aggr_row = nullptr; + if (OB_FAIL(aggr_processor_.init_one_aggr_row(agg_row_meta_, aggr_row, + mem_context_->get_malloc_allocator(), group_id))) { + LOG_WARN("init scalar aggregate row failed", K(ret)); + } else if (fill_pos) { + if (group_rows_.count() <= group_id) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to fill group id", K(ret), K(group_id), K(group_rows_.count())); + } else { + group_rows_.at(group_id) = aggr_row; + } + } else if (OB_FAIL(group_rows_.push_back(aggr_row))) { + LOG_WARN("push_back failed", K(group_id), K(aggr_row), K(ret)); + } else { + LOG_DEBUG("succ init aggr_row", K(group_id), KPC(aggr_row), K(ret)); + } + return ret; +} + +// it's need call for rescan +int ObMergeGroupByVecOp::init_group_rows(const int64_t row_count) +{ + int ret = OB_SUCCESS; + cur_group_rowid_ = 0; + cur_output_group_id_ = 0; + if (MY_SPEC.has_rollup_) { + cur_group_rowid_ = all_groupby_exprs_.count(); + cur_output_group_id_ = all_groupby_exprs_.count(); + } + if (OB_FAIL(group_rows_.reserve(row_count))) { + LOG_WARN("failed to reserve", "cnt", row_count, K(ret)); + } else if (OB_FAIL(aggr_processor_.init_aggr_row_meta(agg_row_meta_))) { + LOG_WARN("failed to init aggregate row meta", K(ret)); + } else if (aggr_processor_.has_distinct()) { + const int64_t hp_infras_cnt = row_count <= 0 ? 1 : row_count; + const int64_t distinct_cnt = aggr_processor_.get_distinct_count(); + if (OB_FAIL(hp_infras_mgr_.reserve_hp_infras(hp_infras_cnt * distinct_cnt))) { + LOG_WARN("failed to init hp infras group", K(ret)); + } + } + for (int64_t i = group_rows_.count(); OB_SUCC(ret) && i < row_count; ++i) { + if (OB_FAIL(init_one_group(i))) { + LOG_WARN("failed to init one group", K(i), K(row_count), K(ret)); + } + } + return ret; +} + +int ObMergeGroupByVecOp::init_group_row_meta() +{ + int ret = OB_SUCCESS; + group_row_meta_.reset(); + if (OB_FAIL(group_row_meta_.init(all_groupby_exprs_, 0))) { + LOG_WARN("failed to init row meta", K(ret)); + } + return ret; +} + +int ObMergeGroupByVecOp::init_3stage_info() +{ + int ret = OB_SUCCESS; + if (ObThreeStageAggrStage::NONE_STAGE != MY_SPEC.aggr_stage_) { + if (OB_ISNULL(MY_SPEC.aggr_code_expr_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected status: aggr_code_expr is null in three stage aggregation", K(ret)); + } else if (ObThreeStageAggrStage::FIRST_STAGE != MY_SPEC.aggr_stage_ + && 0 == MY_SPEC.dist_aggr_group_idxes_.count()) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected status: distinct aggregation group is 0", K(ret), K(MY_SPEC.aggr_stage_), + K(MY_SPEC.dist_aggr_group_idxes_.count())); + } else { + int64_t idx = -1; + for (int64_t i = 0; i < MY_SPEC.distinct_exprs_.count() && OB_SUCC(ret); ++i) { + if (has_exist_in_array(child_->get_spec().output_, MY_SPEC.distinct_exprs_.at(i), &idx)) { + OZ(distinct_col_idx_in_output_.push_back(idx)); + } else { + // is_const + distinct_col_idx_in_output_.push_back(-1); + LOG_DEBUG("distinct expr is const and is not in the output of child", K(i), K(ret)); + } + } + LOG_DEBUG("debug distinct exprs", K(ret), K(MY_SPEC.distinct_exprs_.count())); + } + } + return ret; +} + +int ObMergeGroupByVecOp::rollup_init() +{ + int ret = OB_SUCCESS; + if (MY_SPEC.has_rollup_) { + init_group_cnt_ = MY_SPEC.group_exprs_.count() + MY_SPEC.rollup_exprs_.count(); + // for vectorization, from 0 and col_count - 1 are the rollup group row + // and the col_col is the last group row + // it's not init firstly + if (OB_FAIL(append(all_groupby_exprs_, MY_SPEC.group_exprs_))) { + LOG_WARN("failed to append group exprs", K(ret)); + } else if (OB_FAIL(append(all_groupby_exprs_, MY_SPEC.rollup_exprs_))) { + LOG_WARN("failed to append group exprs", K(ret)); + } else { + // prepare initial group + for (int64_t i = 0; !has_dup_group_expr_ && i < MY_SPEC.is_duplicate_rollup_expr_.count(); ++i) { + has_dup_group_expr_ = MY_SPEC.is_duplicate_rollup_expr_.at(i); + } + aggr_processor_.set_op_eval_infos(&eval_infos_); + aggr_processor_.set_has_rollup(); + } + } + return ret; +} + +// only init in inner_open +int ObMergeGroupByVecOp::gby_init() +{ + int ret = OB_SUCCESS; + if (!MY_SPEC.has_rollup_) { + init_group_cnt_ = 1; + all_groupby_exprs_.reset(); + if (OB_FAIL(append(all_groupby_exprs_, MY_SPEC.group_exprs_))) { + LOG_WARN("failed to append group exprs", K(ret)); + } + } + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(output_stored_rows_ = static_cast( + mem_context_->get_malloc_allocator().alloc(sizeof(ObCompactRow *) * + MY_SPEC.max_batch_size_)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + SQL_ENG_LOG(WARN, "allocate memory failed", K(ret)); + } + return ret; +} + +int ObMergeGroupByVecOp::init() +{ + int ret = OB_SUCCESS; + + group_rows_.set_ctx_id(ObCtxIds::DEFAULT_CTX_ID); + if (OB_FAIL(ObChunkStoreUtil::alloc_dir_id(dir_id_))) { + LOG_WARN("failed to alloc dir id", K(ret)); + } else if (FALSE_IT(aggr_processor_.set_dir_id(dir_id_))) { + } else if (FALSE_IT(aggr_processor_.set_io_event_observer(&io_event_observer_))) { + } else if (OB_FAIL(init_mem_context())) { + LOG_WARN("init memory context failed", K(ret)); + } else if (OB_FAIL(brs_holder_.init(child_->get_spec().output_, eval_ctx_))) { + LOG_WARN("failed to initialize brs_holder_", K(ret)); + } else if (OB_FAIL(gby_init())) { + LOG_WARN("failed to init", K(ret)); + } else if (OB_FAIL(rollup_init())) { + LOG_WARN("failed to init rollup", K(ret)); + } else if (OB_FAIL(init_3stage_info())) { + LOG_WARN("failed to init 3stage info", K(ret)); + } else if (OB_FAIL(init_hp_infras_group_mgr())) { + LOG_WARN("failed to init hp infras group manager", K(ret)); + } else if (OB_FAIL(init_group_rows(init_group_cnt_))) { + LOG_WARN("failed to init group rows", K(ret), K(init_group_cnt_)); + } else if (OB_FAIL(init_group_row_meta())) { + LOG_WARN("failed to init fixed group row meta", K(ret)); + } else if (OB_FAIL(group_processor_.init(eval_ctx_, all_groupby_exprs_))) { + LOG_WARN("failed to init group processor", K(ret)); + } else { + if (aggr_processor_.has_extra()) { + // set group_batch_factor_ to 1 avoid out of memory error + group_batch_factor_ = 1; + } + last_child_output_.reuse_ = true; + } + return ret; +} + +int ObMergeGroupByVecOp::inner_open() +{ + int ret = OB_SUCCESS; + reset(); + if (OB_FAIL(ObGroupByVecOp::inner_open())) { + LOG_WARN("failed to inner_open", K(ret)); + } else if (OB_FAIL(init())) { + LOG_WARN("failed to init", K(ret)); + } + return ret; +} + +int ObMergeGroupByVecOp::inner_close() +{ + reset(); + sql_mem_processor_.unregister_profile(); + return ObGroupByVecOp::inner_close(); +} + +void ObMergeGroupByVecOp::destroy() +{ + sql_mem_processor_.unregister_profile_if_necessary(); + all_groupby_exprs_.reset(); + distinct_col_idx_in_output_.reset(); + reset(); + arena_alloc_ = nullptr; + group_rows_.reset(); + agg_row_meta_.reset(); + group_row_meta_.reset(); + group_processor_.reset(); + hp_infras_mgr_.destroy(); + ObGroupByVecOp::destroy(); + if (nullptr != mem_context_) { + if (nullptr != output_stored_rows_) { + mem_context_->get_malloc_allocator().free(output_stored_rows_); + output_stored_rows_ = nullptr; + } + DESTROY_CONTEXT(mem_context_); + mem_context_ = nullptr; + } +} + +int ObMergeGroupByVecOp::inner_switch_iterator() +{ + int ret = OB_SUCCESS; + reset(); + if (OB_FAIL(ObGroupByVecOp::inner_switch_iterator())) { + LOG_WARN("failed to switch_iterator", K(ret)); + } else if (OB_FAIL(init_group_rows(init_group_cnt_))) { + LOG_WARN("failed to init group rows", K(ret)); + } else if (OB_FAIL(group_processor_.init(eval_ctx_, all_groupby_exprs_))) { + LOG_WARN("failed to init group processor", K(ret)); + } + return ret; +} + +int ObMergeGroupByVecOp::inner_rescan() +{ + int ret = OB_SUCCESS; + reset(); + if (OB_FAIL(ObGroupByVecOp::inner_rescan())) { + LOG_WARN("failed to rescan", K(ret)); + } else if (OB_FAIL(init_group_rows(init_group_cnt_))) { + LOG_WARN("failed to init group rows", K(ret)); + } else if (OB_FAIL(group_processor_.init(eval_ctx_, all_groupby_exprs_))) { + LOG_WARN("failed to init group processor", K(ret)); + } + return ret; +} + +int ObMergeGroupByVecOp::get_child_next_batch_row(const int64_t max_row_cnt, + const ObBatchRows *&batch_rows) +{ + int ret = OB_SUCCESS; + clear_evaluated_flag(); + if (OB_FAIL(child_->get_next_batch(max_row_cnt, batch_rows))) { + LOG_WARN("failed to get child row", K(ret)); + } else if (aggr_processor_.get_need_advance_collect() + && OB_FAIL(brs_holder_.save(MY_SPEC.max_batch_size_))) { + LOG_WARN("failed to backup child exprs", K(ret)); + } + return ret; +} + +int ObMergeGroupByVecOp::advance_collect_result(int64_t group_id) +{ + int ret = OB_SUCCESS; + aggregate::AggrRowPtr aggr_row = nullptr; + if (OB_FAIL(get_aggr_row(group_id, aggr_row))) { + LOG_WARN("failed to get aggr row", K(ret), K(group_id)); + } else if (OB_FAIL( + aggr_processor_.advance_collect_result(group_id, agg_row_meta_, aggr_row))) { + LOG_WARN("failed to calc and material distinct result", K(ret), K(group_id)); + } /*else if (OB_FAIL(brs_holder_.restore())) { + LOG_WARN("failed to restore child exprs", K(ret)); + }*/ + // According to the current optimization analysis, restore is not needed here anymore + clear_evaluated_flag(); + return ret; +} + +int ObMergeGroupByVecOp::before_process_next_batch() +{ + int ret = OB_SUCCESS; + set_output_queue_cnt(0); + if (cur_group_rowid_ > common::OB_INVALID_INDEX && OB_FAIL(brs_holder_.restore())) { + LOG_ERROR("failed to restore previous exprs", K(ret)); + } + return ret; +} + +int ObMergeGroupByVecOp::inner_get_next_batch(const int64_t max_row_cnt) +{ + int ret = OB_SUCCESS; + int64_t output_batch_cnt = common::min(max_row_cnt, MY_SPEC.max_batch_size_); + int64_t child_batch_cnt = common::max(max_row_cnt, MY_SPEC.max_batch_size_); + const ObBatchRows *child_brs = nullptr; + LOG_DEBUG("before inner_get_next_batch", "aggr_hold_size", aggr_processor_.get_aggr_hold_size(), + "aggr_used_size", aggr_processor_.get_aggr_used_size(), K(output_batch_cnt), + K(max_row_cnt)); + + if (is_output_queue_not_empty()) { + // consume aggr results generated in previous round + if (OB_FAIL(calc_batch_results(is_end_, output_batch_cnt))) { + LOG_WARN("failed to calc output results", K(ret)); + } + } else { + LOG_DEBUG("begin to get_next_batch rows from child", K(child_batch_cnt)); + if (OB_FAIL(before_process_next_batch())) { + LOG_WARN("failed to before process next batch", K(child_batch_cnt)); + } else { + brs_holder_.reset(); + while (OB_SUCC(ret) && OB_SUCC(get_child_next_batch_row(child_batch_cnt, child_brs))) { + if (child_brs->end_ && child_brs->size_ == 0) { + LOG_DEBUG("reach iterating end with empty result, do nothing"); + break; + } + if (OB_FAIL(try_check_status())) { + LOG_WARN("check status failed", K(ret)); + } else if (OB_FAIL(groupby_datums_eval_batch(*child_brs))) { + LOG_WARN("failed to calc_groupby_datums", K(ret)); + } else if (OB_FAIL(process_batch(*child_brs))) { + LOG_WARN("failed to process_batch_result", K(ret)); + } else if (stop_batch_iterating(*child_brs, output_batch_cnt)) { + if (!aggr_processor_.get_need_advance_collect()) { + OZ(brs_holder_.save(std::min(MY_SPEC.max_batch_size_, get_output_queue_cnt()))); + } + LOG_DEBUG("break out of iteratation", K(child_brs->end_), K(output_batch_cnt), + K(output_queue_cnt_)); + break; + } else { // do nothing + } + } + + if (OB_SUCC(ret) && child_brs->end_ && !OB_ISNULL(cur_aggr_row_)) { + // add last unfinised grouprow into output group + inc_output_queue_cnt(); + const int64_t advance_collect_group_id = cur_group_rowid_; + if (MY_SPEC.has_rollup_ && OB_FAIL(process_rollup(MY_SPEC.group_exprs_.count() - 1, true))) { + LOG_WARN("failed to process rollup", K(ret)); + } else if (aggr_processor_.get_need_advance_collect() + && OB_FAIL(advance_collect_result(advance_collect_group_id))) { + LOG_WARN("failed to collect distinct result", K(ret), K(advance_collect_group_id)); + } + } + if (OB_SUCC(ret) && OB_FAIL(calc_batch_results(child_brs->end_, output_batch_cnt))) { + LOG_WARN("failed to calc output results", K(ret)); + } + } + } + + LOG_DEBUG("after inner_get_next_batch", "aggr_hold_size", aggr_processor_.get_aggr_hold_size(), + "aggr_used_size", aggr_processor_.get_aggr_used_size(), K(output_batch_cnt), K(ret)); + return ret; +} + +int ObMergeGroupByVecOp::set_null(int64_t idx, LastCompactRow *rollup_store_row) +{ + int ret = OB_SUCCESS; + if (0 > idx) { + } else { + rollup_store_row->set_null(idx); + LOG_DEBUG("set null", K(idx), K(MY_SPEC.rollup_exprs_.count())); + if (has_dup_group_expr_) { + int64_t start_idx = idx - MY_SPEC.group_exprs_.count(); + ObExpr *base_expr = MY_SPEC.rollup_exprs_.at(start_idx); + for (int i = start_idx + 1; i < MY_SPEC.rollup_exprs_.count() && OB_SUCC(ret); ++i) { + if (base_expr == MY_SPEC.rollup_exprs_.at(i)) { + // set null to the same expr + rollup_store_row->set_null(i + MY_SPEC.group_exprs_.count()); + LOG_DEBUG("set null", K(i + MY_SPEC.group_exprs_.count()), K(start_idx), + K(MY_SPEC.rollup_exprs_.count())); + } + } + } + } + return ret; +} + +int ObMergeGroupByVecOp::get_rollup_row(int64_t prev_group_row_id, int64_t group_row_id, + aggregate::AggrRowPtrRef curr_aggr_row, + LastCompactRow *&cur_gby_store_row, + aggregate::AggrRowPtrRef prev_aggr_row, + LastCompactRow *&prev_gby_store_row, bool &need_set_null, + int64_t idx) +{ + int ret = OB_SUCCESS; + curr_aggr_row = nullptr; + cur_gby_store_row = nullptr; + prev_aggr_row = nullptr; + prev_gby_store_row = nullptr; + need_set_null = false; + (void) get_aggr_and_group_row(prev_group_row_id, prev_aggr_row, prev_gby_store_row); + if (OB_ISNULL(prev_aggr_row) || OB_ISNULL(prev_gby_store_row)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to get prev group row", K(ret), K(prev_group_row_id)); + } else if (group_row_id < get_group_rows_count()) { + // critical path: reuse grouprow directly no defensive check + (void) get_aggr_and_group_row(group_row_id, curr_aggr_row, cur_gby_store_row); + } + if (OB_FAIL(ret)) { + } else if (nullptr == curr_aggr_row) { + if (OB_FAIL(init_one_group(group_row_id, true))) { + LOG_WARN("failed to init_one_group", K(ret)); + } else if (OB_FAIL(get_aggr_row(group_row_id, curr_aggr_row))) { + LOG_WARN("failed to get_aggr_row", K(ret)); + // performance critical: use curr_group_row directly, no defensive check + } else { + // deep copy from prev group row + if (OB_FAIL(get_groupby_store_row(group_row_id, cur_gby_store_row))) { + LOG_WARN("failed to get_groupby_store_row", K(ret)); + } else if (OB_FAIL(cur_gby_store_row->deep_copy_last_compact_row(*prev_gby_store_row))) { + LOG_WARN("failed to store group row", K(ret)); + } else { + need_set_null = true; + if (0 <= idx) { + // if the expr in rollup in group by or the expr exists more than one tiem, + // then only the first expr need to set null + // eg: group by c1, rollup(c1,c1) + // then don't reset null + OZ(set_null(idx, cur_gby_store_row)); + } + } + } + } else if (cur_gby_store_row->is_empty()) { + // deep copy from prev group row + if (OB_FAIL(cur_gby_store_row->deep_copy_last_compact_row(*prev_gby_store_row))) { + LOG_WARN("failed to store group row", K(ret)); + } else { + need_set_null = true; + if (0 <= idx) { + OZ(set_null(idx, cur_gby_store_row)); + } + } + } + return ret; +} + +int ObMergeGroupByVecOp::get_empty_rollup_row(int64_t group_row_id, + aggregate::AggrRowPtrRef curr_group_row, + LastCompactRow *&curr_gby_store_row) +{ + int ret = OB_SUCCESS; + curr_group_row = nullptr; + curr_gby_store_row = nullptr; + if (group_row_id < get_group_rows_count()) { + // critical path: reuse grouprow directly no defensive check + (void) get_aggr_and_group_row(group_row_id, curr_group_row, curr_gby_store_row); + if (OB_ISNULL(curr_group_row)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to get group row", K(ret)); + } + } + if (OB_FAIL(ret)) { + } else if (nullptr == curr_group_row) { + if (OB_FAIL(init_one_group(group_row_id))) { + LOG_WARN("failed to init_one_group", K(ret)); + } else if (OB_FAIL(get_aggr_row(group_row_id, curr_group_row))) { + LOG_WARN("failed to get_aggr_row", K(ret)); + // performance critical: use curr_group_row directly, no defensive check + } else if (OB_FAIL(get_groupby_store_row(group_row_id, curr_gby_store_row))) { + LOG_WARN("failed to get groupby store row", K(ret), K(group_row_id)); + } else if (OB_ISNULL(curr_gby_store_row)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected status: store row is null", K(ret)); + } else if (output_groupby_rows_.count() != get_group_rows_count()) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected status: store row is null", K(ret)); + } + } + return ret; +} + +int ObMergeGroupByVecOp::get_aggr_row(const int64_t group_id, aggregate::AggrRowPtrRef aggr_row) +{ + int ret = OB_SUCCESS; + aggr_row = nullptr; + ObCompactRow *row = nullptr; + if (OB_FAIL(group_rows_.at(group_id, row))) { + LOG_WARN("failed to get group row", K(group_id)); + } else { + aggr_row = static_cast(row->get_extra_payload(agg_row_meta_)); + } + return ret; +} + +int ObMergeGroupByVecOp::get_aggr_and_group_row(const int64_t group_id, + aggregate::AggrRowPtrRef aggr_row, + LastCompactRow *&store_row) +{ + int ret = OB_SUCCESS; + aggr_row = nullptr; + store_row = nullptr; + if (OB_FAIL(get_aggr_row(group_id, aggr_row))) { + LOG_WARN("failed to get aggr row", K(ret), K(group_id)); + } else if (OB_FAIL(get_groupby_store_row(group_id, store_row))) { + LOG_WARN("failed to get group by store row", K(ret), K(group_id)); + } + return ret; +} + +inline int ObMergeGroupByVecOp::swap_group_row(const int a, const int b) +{ + int ret = OB_SUCCESS; + if (a == b) { // do nothing + } else if (OB_FAIL(aggr_processor_.swap_group_row(a, b))) { + LOG_WARN("failed to swap group row", K(ret), K(a), K(b)); + } else if (group_rows_.count() > common::max(a, b)) { + ObCompactRow *groupb = group_rows_.at(b); + group_rows_.at(b) = group_rows_.at(a); + group_rows_.at(a) = groupb; + } else { + ret = OB_ARRAY_OUT_OF_RANGE; + } + return ret; +} + +inline int ObMergeGroupByVecOp::create_groupby_store_row(LastCompactRow *&store_row) +{ + int ret = OB_SUCCESS; + void *buf = arena_alloc_->alloc(sizeof(LastCompactRow)); + if (OB_ISNULL(buf)) { + LOG_WARN("failed alloc memory", K(ret)); + ret = OB_ALLOCATE_MEMORY_FAILED; + } else { + store_row = new (buf) LastCompactRow(*arena_alloc_); + if (OB_FAIL(output_groupby_rows_.push_back(store_row))) { + LOG_WARN("failed push back", K(ret)); + } + store_row->reuse_ = true; + } + return ret; +} + +inline int ObMergeGroupByVecOp::get_groupby_store_row(int i, LastCompactRow *&store_row) +{ + int ret = OB_SUCCESS; + store_row = nullptr; + if (i < output_groupby_rows_.count()) { + store_row = output_groupby_rows_.at(i); + } else if (i == output_groupby_rows_.count()) { + if (OB_FAIL(create_groupby_store_row(store_row))) { + LOG_WARN("failed create groupby store row", K(ret)); + } + } else { + for (int64_t cur = output_groupby_rows_.count(); OB_SUCC(ret) && cur <= i; ++cur) { + if (OB_FAIL(create_groupby_store_row(store_row))) { + LOG_WARN("failed create groupby store row", K(ret)); + } + } + } + return ret; +} + +int ObMergeGroupByVecOp::prepare_and_save_curr_groupby_datums(const ObBatchRows &brs, + int64_t curr_group_rowid, + ObIArray &group_exprs, + LastCompactRow *&gby_store_row) +{ + int ret = OB_SUCCESS; + gby_store_row = nullptr; + if (OB_FAIL(get_groupby_store_row(curr_group_rowid, gby_store_row))) { + LOG_WARN("failed to get_groupby_store_row", K(ret)); + } else if (OB_FAIL(gby_store_row->save_store_row(group_exprs, brs, eval_ctx_, + group_row_meta_))) { + LOG_WARN("failed to store group row", K(ret)); + } + LOG_DEBUG("finish prepare and save groupby store row", K(group_exprs), K(ret), + K(ROWEXPR2STR(eval_ctx_, group_exprs))); + return ret; +} + +int ObMergeGroupByVecOp::get_cur_group_row(const ObBatchRows &brs, int64_t group_row_id, + aggregate::AggrRowPtrRef curr_aggr_row, + LastCompactRow *&cur_gby_store_row, + ObIArray &group_exprs) +{ + int ret = OB_SUCCESS; + curr_aggr_row = nullptr; + cur_gby_store_row = nullptr; + if (group_row_id < get_group_rows_count()) { + // critical path: reuse grouprow directly no defensive check + (void)get_aggr_row(group_row_id, curr_aggr_row); + if (OB_ISNULL(curr_aggr_row)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to get group row", K(ret), K(group_row_id)); + } else if (OB_FAIL(prepare_and_save_curr_groupby_datums( + brs, cur_group_rowid_, group_exprs, cur_gby_store_row))) { + LOG_WARN("failed to prepare group datums", K(ret)); + } + } else { + if (OB_FAIL(init_one_group(group_row_id))) { + LOG_WARN("failed to init_one_group", K(ret)); + } else if (OB_FAIL(get_aggr_row(group_row_id, curr_aggr_row))) { + LOG_WARN("failed to get_aggr_row", K(ret)); + // performance critical: use curr_aggr_row directly, no defensive check + } else if (OB_FAIL(prepare_and_save_curr_groupby_datums( + brs, cur_group_rowid_, group_exprs, cur_gby_store_row))) { + LOG_WARN("failed to eval_aggr_param_batch"); + } + } + return ret; +} + +int ObMergeGroupByVecOp::gen_rollup_group_rows(int64_t start_diff_group_idx, int64_t end_group_idx, + int64_t max_group_idx, int64_t cur_group_row_id) +{ + int ret = OB_SUCCESS; + int64_t cur_rollup_group_id = cur_group_row_id; + int64_t prev_group_row_id = cur_rollup_group_id; + int64_t cur_rollup_idx = end_group_idx; + int64_t start_rollup_idx = start_diff_group_idx; + int64_t null_idx = all_groupby_exprs_.count(); + const int64_t group_exprs_cnt = MY_SPEC.group_exprs_.count(); + aggregate::AggrRowPtr curr_group_row = nullptr; + aggregate::AggrRowPtr prev_group_row = nullptr; + LastCompactRow *curr_group_store_row = nullptr; + LastCompactRow *prev_group_store_row = nullptr; + bool need_set_null = false; + for (int64_t idx = cur_rollup_idx; OB_SUCC(ret) && idx >= start_rollup_idx; --idx) { + cur_rollup_group_id = idx; + if (idx <= max_group_idx) { + } else if (OB_FAIL(get_rollup_row( + prev_group_row_id, cur_rollup_group_id, curr_group_row, curr_group_store_row, + prev_group_row, prev_group_store_row, need_set_null, + MY_SPEC.is_duplicate_rollup_expr_.at(idx - group_exprs_cnt) ? -1 : idx))) { + LOG_WARN("failed to get one new group row", K(ret)); + } else if (OB_FAIL(aggr_processor_.rollup_batch_process( + prev_group_row, curr_group_row, + MY_SPEC.is_duplicate_rollup_expr_.at(idx - group_exprs_cnt) ? null_idx : idx, + all_groupby_exprs_.count()))) { + LOG_WARN("failed to rollup process", K(ret)); + } + if (OB_FAIL(ret)) { + } else if (idx != cur_rollup_idx) { + // output prev rollup group row + ++cur_group_rowid_; + curr_group_row = nullptr; + curr_group_store_row = nullptr; + inc_output_queue_cnt(); + if (aggr_processor_.get_need_advance_collect() + && OB_FAIL(advance_collect_result(prev_group_row_id))) { + LOG_WARN("failed to calc and material distinct result", K(ret), K(prev_group_row_id)); + } else if (OB_FAIL( + get_empty_rollup_row(cur_group_rowid_, curr_group_row, curr_group_store_row))) { + LOG_WARN("failed to get one new group row", K(ret)); + } else if (OB_FAIL(swap_group_row(prev_group_row_id, cur_group_rowid_))) { + LOG_WARN("failed to swap group row", K(ret)); + } else { + // It must be same as swap group row + std::swap(output_groupby_rows_[prev_group_row_id], output_groupby_rows_[cur_group_rowid_]); + LOG_DEBUG("debug gen rollup group row", K(prev_group_row_id), K(cur_group_rowid_), + K(cur_rollup_group_id), K(output_queue_cnt_), K(start_diff_group_idx), K(idx), + K(max_group_idx)); + } + } + prev_group_row_id = idx; + } + return ret; +} + +int ObMergeGroupByVecOp::process_rollup(const int64_t diff_group_idx, bool is_end) +{ + int ret = OB_SUCCESS; + int64_t start_rollup_id = diff_group_idx; + int64_t end_rollup_id = all_groupby_exprs_.count() - 1; + int64_t max_group_idx = MY_SPEC.group_exprs_.count() - 1; + LOG_DEBUG("debug grouping_id", K(end_rollup_id), K(start_rollup_id), K(max_group_idx)); + if (end_rollup_id >= start_rollup_id + && OB_FAIL(gen_rollup_group_rows(start_rollup_id, end_rollup_id, max_group_idx, + cur_group_rowid_))) { + LOG_WARN("failed to genereate rollup group row", K(ret)); + } + return ret; +} + +int ObMergeGroupByVecOp::add_batch_rows_for_3stage(const ObBatchRows &brs, + int32_t start_idx, + int32_t end_idx) +{ + int ret = OB_SUCCESS; + if (ObThreeStageAggrStage::THIRD_STAGE == MY_SPEC.aggr_stage_) { + if (OB_FAIL(add_batch_rows_for_3th_stage(brs, start_idx, end_idx))) { + LOG_WARN("failed to add batch rows for 3th stage", K(ret), K(start_idx), K(end_idx)); + } + } else { + int32_t start_agg_id = 0, end_agg_id = aggr_processor_.aggregates_cnt(); + if (OB_FAIL(ObGroupByVecOp::calculate_3stage_agg_info( + *cur_group_store_row_->compact_row_, *cur_group_store_row_->ref_row_meta_, + static_cast(start_idx) /*batch_idx*/, start_agg_id, end_agg_id))) { + LOG_WARN("calculate stage info failed", K(ret)); + } else if (OB_UNLIKELY(start_agg_id == -1 || end_agg_id == -1)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("invalid start/end aggregate id", K(ret), K(start_agg_id), K(end_agg_id)); + } else if (OB_FAIL(aggr_processor_.add_batch_rows(start_agg_id, end_agg_id, cur_aggr_row_, brs, + start_idx, end_idx))) { + LOG_WARN("add batch rows failed", K(ret)); + } + } + return ret; +} + +int ObMergeGroupByVecOp::add_batch_rows_for_3th_stage(const ObBatchRows &brs, + const uint32_t start_idx, + const uint32_t end_idx) +{ + int ret = OB_SUCCESS; + int32_t start_agg_id = 0, end_agg_id = aggr_processor_.aggregates_cnt(); + for (int i = start_idx; OB_SUCC(ret) && i < end_idx; i++) { + if (OB_FAIL(ObGroupByVecOp::calculate_3stage_agg_info(*cur_group_store_row_->compact_row_, + *cur_group_store_row_->ref_row_meta_, i, + start_agg_id, end_agg_id))) { + LOG_WARN("calculate stage info failed", K(ret)); + } else if (OB_UNLIKELY(start_agg_id == -1 || end_agg_id == -1)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("invalid start/end aggregate id", K(ret), K(start_agg_id), K(end_agg_id)); + } else if (OB_FAIL(aggr_processor_.add_batch_rows(start_agg_id, end_agg_id, cur_aggr_row_, brs, + i, i + 1))) { + LOG_WARN("add batch rows failed", K(ret)); + } + } + return ret; +} + +int ObMergeGroupByVecOp::aggregate_group_rows(const ObBatchRows &brs, int32_t start_idx, + int32_t end_idx) +{ + int ret = OB_SUCCESS; + if (!(start_idx == 0 && end_idx == 0)) { + int32_t start_agg_id = 0, end_agg_id = aggr_processor_.aggregates_cnt(); + if (OB_LIKELY(ObThreeStageAggrStage::NONE_STAGE == MY_SPEC.aggr_stage_)) { + if (OB_FAIL(aggr_processor_.add_batch_rows(start_agg_id, end_agg_id, cur_aggr_row_, brs, + start_idx, end_idx))) { + LOG_WARN("add batch rows failed", K(ret)); + } + } else { + if (OB_FAIL(add_batch_rows_for_3stage(brs, start_idx, end_idx))) { + LOG_WARN("add three stage rows failed", K(ret)); + } + } + } + return ret; +} + +int ObMergeGroupByVecOp::process_batch(const ObBatchRows &brs) +{ + int ret = OB_SUCCESS; + uint32_t group_start_idx = 0; + uint32_t group_end_idx = 0; + bool is_iter_end = false; + bool found_new_group = false; + int64_t diff_group_idx = -1; + int64_t group_count = MY_SPEC.group_exprs_.count(); + int64_t all_group_cnt = all_groupby_exprs_.count(); + bool need_dup_data = 0 < MY_SPEC.distinct_exprs_.count() && 0 == MY_SPEC.rollup_exprs_.count(); + int cmp_ret = 0; + LOG_DEBUG("begin process_batch_results", K(brs.size_), K(group_start_idx), K(group_end_idx), + K(cur_group_rowid_)); + + if (OB_FAIL(aggr_processor_.eval_aggr_param_batch(brs))) { + LOG_WARN("failed to eval_aggr_param_batch"); + } + ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx_); + batch_info_guard.set_batch_size(brs.size_); + if (OB_FAIL(ret)) { + } else if (all_group_cnt > 0) { + cur_group_last_row_idx_ = -1; + int idx = 0; + group_processor_.prepare_process_next_batch(); + group_end_idx = brs.size_; + while (OB_SUCC(ret) && !is_iter_end && idx < brs.size_) { + if (brs.skip_->at(idx)) { + ++idx; + continue; + } + found_new_group = false; + if (nullptr == cur_aggr_row_) { + batch_info_guard.set_batch_idx(idx); + // only first group + if (OB_FAIL(get_cur_group_row(brs, cur_group_rowid_, cur_aggr_row_, cur_group_store_row_, + all_groupby_exprs_))) { + LOG_WARN("failed to get one new group row", K(ret)); + } else { + is_group_first_calc_ = true; + cur_group_last_row_idx_ = idx; + } + } + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(cur_aggr_row_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected status: cur_aggr_row_ is null", K(ret)); + } else if (OB_FAIL(group_processor_.find_next_new_group( + brs, *cur_group_store_row_, found_new_group, group_end_idx, diff_group_idx))) { + LOG_WARN("failed to find next new group", K(ret)); + } else if (need_dup_data + && OB_FAIL(process_unique_distinct_columns_for_batch( + *cur_group_store_row_, last_child_output_, group_start_idx, group_end_idx, + const_cast(brs)))) { + LOG_WARN("failed to check unique distinct columns", K(ret)); + } else if (found_new_group) { + diff_group_idx = diff_group_idx < group_count ? + std::max(diff_group_idx, MY_SPEC.group_exprs_.count() - 1) : + diff_group_idx; + is_group_first_calc_ = true; + is_iter_end = group_end_idx >= brs.size_ ? true : false; + group_end_idx = group_end_idx < brs.size_ ? group_end_idx : brs.size_ - 1; + // calc last group result + cur_group_last_row_idx_ = + (is_iter_end ? brs.size_ - 1 : (group_end_idx > 0 ? group_end_idx - 1 : 0)); + LOG_DEBUG("new group found, calc ast group result", K(brs.size_), K(group_start_idx), + K(group_end_idx), K(cur_group_rowid_), K(output_queue_cnt_)); + inc_output_queue_cnt(); + if (OB_FAIL(aggregate_group_rows(brs, group_start_idx, group_end_idx))) { + LOG_WARN("failed to aggregate_group_rows", K(cur_group_rowid_), K(ret), + K(group_start_idx), K(group_end_idx)); + } else { + const int64_t advance_collect_group_id = cur_group_rowid_; + if (MY_SPEC.has_rollup_ && OB_FAIL(process_rollup(diff_group_idx))) { + LOG_WARN("failed to process rollup", K(ret)); + } else if (aggr_processor_.get_need_advance_collect() + && OB_FAIL(advance_collect_result(advance_collect_group_id))) { + LOG_WARN("failed to collect distinct result", K(ret), K(advance_collect_group_id)); + } else { + ++cur_group_rowid_; + // create new group + batch_info_guard.set_batch_idx(group_end_idx); + if (OB_FAIL(get_cur_group_row(brs, cur_group_rowid_, cur_aggr_row_, + cur_group_store_row_, all_groupby_exprs_))) { + LOG_WARN("failed to get one new group row", K(ret)); + } else { + group_start_idx = group_end_idx; // record new start idx in next round + } + } + } + } + idx = group_end_idx; + } + } else { // no groupby column, equals to scalar group by + if (nullptr == cur_aggr_row_) { + if (OB_FAIL(get_cur_group_row(brs, cur_group_rowid_, cur_aggr_row_, cur_group_store_row_, + all_groupby_exprs_))) { + LOG_WARN("failed to get new group row", K(ret)); + } + } + } + + group_end_idx = brs.size_; + LOG_DEBUG("calc last unfinished group row", K(brs.size_), K(found_new_group), + K(cur_group_rowid_), K(group_start_idx), K(group_end_idx)); + // cur_group_rowid_ is common::OB_INVALID_INDEX means all rows are skipped + // therefore, do nothing when all rows are skipped + if (OB_SUCC(ret) && cur_group_rowid_ != common::OB_INVALID_INDEX + && OB_FAIL(aggregate_group_rows(brs, group_start_idx, group_end_idx))) { + LOG_WARN("failed to aggregate_group_rows", K(ret), K(cur_group_rowid_), K(group_start_idx), + K(group_end_idx)); + } + if (OB_SUCC(ret) && 0 < MY_SPEC.distinct_exprs_.count() && -1 != cur_group_last_row_idx_) { + // the current row is not same as before row, then save the current row + ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx_); + batch_info_guard.set_batch_size(brs.size_); + batch_info_guard.set_batch_idx(cur_group_last_row_idx_); + if (OB_FAIL(last_child_output_.save_store_row(child_->get_spec().output_, brs, eval_ctx_))) { + LOG_WARN("failed to store child output", K(ret)); + } + } + return ret; +} + +int ObMergeGroupByVecOp::groupby_datums_eval_batch(const ObBatchRows &brs) +{ + int ret = OB_SUCCESS; + int64_t all_count = all_groupby_exprs_.count(); + + for (int64_t i = 0; OB_SUCC(ret) && i < all_count; i++) { + ObExpr *expr = all_groupby_exprs_.at(i); + if (OB_FAIL(expr->eval_vector(eval_ctx_, brs))) { + LOG_WARN("eval failed", K(ret)); + } + } + return ret; +} + +int ObMergeGroupByVecOp::process_unique_distinct_columns_for_batch( + const LastCompactRow &cur_gby_store_row, const LastCompactRow &last_child_output, + const uint32_t group_start_idx, const uint32_t group_end_idx, ObBatchRows &brs) +{ + int ret = OB_SUCCESS; + int cmp_ret = 0; + ObLength r_len = 0; + bool r_null = false; + const char *r_v = nullptr; + bool is_same_before_row = true; + const ObDatum &aggr_code_datum = cur_gby_store_row.get_datum(MY_SPEC.aggr_code_idx_); + for (uint32_t idx = group_start_idx; OB_SUCC(ret) && idx < group_end_idx; idx++) { + is_same_before_row = true; + if (brs.skip_->at(idx)) { + continue; + } else if (is_group_first_calc_) { + is_same_before_row = false; + is_group_first_calc_ = false; + } else if (aggr_code_datum.get_int() >= MY_SPEC.dist_aggr_group_idxes_.count()) { + // non-distinct aggregate function + is_same_before_row = false; + LOG_DEBUG("debug non-distinct aggregate function", K(ret), K(aggr_code_datum.get_int()), + K(MY_SPEC.dist_aggr_group_idxes_.count())); + } else if (-1 != cur_group_last_row_idx_) { + // non first batch + for (int64_t i = 0; + is_same_before_row && i < distinct_col_idx_in_output_.count() && OB_SUCC(ret); ++i) { + if (-1 == distinct_col_idx_in_output_.at(i)) { + continue; + } + ObExpr *expr = MY_SPEC.distinct_exprs_.at(i); + ObIVector *vec = expr->get_vector(eval_ctx_); + vec->get_payload(cur_group_last_row_idx_, r_null, r_v, r_len); + if (OB_FAIL(vec->null_first_cmp(*expr, idx, r_null, r_v, r_len, cmp_ret))) { + LOG_WARN("compare failed", K(ret)); + } else if (0 != cmp_ret) { + is_same_before_row = false; + } + } // end for + LOG_DEBUG("debug non-distinct aggregate function", K(ret), K(aggr_code_datum.get_int()), + K(MY_SPEC.dist_aggr_group_idxes_.count()), K(is_same_before_row)); + } else { + for (int64_t i = 0; + is_same_before_row && i < distinct_col_idx_in_output_.count() && OB_SUCC(ret); ++i) { + if (-1 == distinct_col_idx_in_output_.at(i)) { + continue; + } + r_null = last_child_output.is_null(distinct_col_idx_in_output_.at(i)); + last_child_output.get_cell_payload(distinct_col_idx_in_output_.at(i), r_v, r_len); + ObExpr *expr = MY_SPEC.distinct_exprs_.at(i); + ObIVector *vec = expr->get_vector(eval_ctx_); + if (OB_FAIL(vec->null_first_cmp(*expr, idx, r_null, r_v, r_len, cmp_ret))) { + LOG_WARN("compare failed", K(ret)); + } else if (0 != cmp_ret) { + is_same_before_row = false; + } + } // end for + LOG_DEBUG("finish check unique distinct columns", K(ret), K(aggr_code_datum.get_int()), "row", + ROWEXPR2STR(eval_ctx_, MY_SPEC.distinct_exprs_), K(is_same_before_row)); + } + LOG_DEBUG("finish check unique distinct columns", K(ret), "row", + ROWEXPR2STR(eval_ctx_, MY_SPEC.distinct_exprs_), K(is_same_before_row)); + if (OB_SUCC(ret)) { + if (is_same_before_row) { + brs.skip_->set(idx); + brs.set_all_rows_active(false); + } + cur_group_last_row_idx_ = idx; + } + } + return ret; +} + +int ObMergeGroupByVecOp::collect_group_results(const RowMeta &row_meta, + const ObIArray &groupby_exprs, + const int32_t output_batch_size, + ObBatchRows &output_brs, int64_t &cur_group_id) +{ + int ret = OB_SUCCESS; + const int64_t start_group_id = cur_group_id; + int32_t output_size = output_batch_size; + LastCompactRow *start_group_row = get_groupby_store_row(start_group_id); + if (OB_ISNULL(start_group_row)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("is null", K(start_group_id), K(output_groupby_rows_.count())); + } else if (OB_FAIL(aggr_processor_.collect_group_results(row_meta, output_size, output_brs, + cur_output_group_id_))) { + LOG_WARN("failed to collect batch result", K(ret)); + } else { + clear_evaluated_flag(); + for (int i = 0; OB_SUCC(ret) && i < output_size; i++) { + int64_t group_id = start_group_id + i; + LastCompactRow *aggr_row = get_groupby_store_row(group_id); + if (OB_ISNULL(aggr_row)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("is null", K(group_id), K(output_groupby_rows_.count())); + } else if (FALSE_IT(output_stored_rows_[i] = aggr_row->compact_row_)) { + } + } + for (int col_id = 0; OB_SUCC(ret) && col_id < groupby_exprs.count(); col_id++) { + ObExpr *out_expr = groupby_exprs.at(col_id); + if (OB_ISNULL(out_expr)) { + ret = OB_ERR_UNEXPECTED; + SQL_LOG(WARN, "invalid null expr", K(ret)); + } else if (OB_UNLIKELY(out_expr->is_const_expr())) { + // do nothing + } else if (OB_FAIL(out_expr->init_vector_default(eval_ctx_, output_batch_size))) { + SQL_LOG(WARN, "init vector failed", K(ret)); + } else if (OB_FAIL(out_expr->get_vector(eval_ctx_)->from_rows( + *start_group_row->ref_row_meta_, output_stored_rows_, output_size, col_id))) { + SQL_LOG(WARN, "from rows failed", K(ret)); + } + } + for (int i = 0; OB_SUCC(ret) && i < groupby_exprs.count(); i++) { + if (!groupby_exprs.at(i)->is_const_expr()) { + groupby_exprs.at(i)->set_evaluated_projected(eval_ctx_); + } + } + } + return ret; +} + +int ObMergeGroupByVecOp::calc_batch_results(const bool is_iter_end, const int64_t max_output_size) +{ + int ret = OB_SUCCESS; + if (nullptr == cur_aggr_row_) { + // get empty result from child, just return empty + brs_.size_ = 0; + brs_.end_ = is_iter_end; + LOG_DEBUG("debug cur_aggr_row_ is null", K(ret)); + } else { + if (is_iter_end) { + is_end_ = true; + } + + // make sure output size is less than aggr group_rows + int64_t output_size = common::min(get_output_queue_cnt(), max_output_size); + clear_evaluated_flag(); + // note: brs_.size_ is set in collect_result_batch + if (OB_FAIL(collect_group_results(agg_row_meta_, all_groupby_exprs_, output_size, brs_, + cur_output_group_id_))) { + LOG_WARN("failed to collect batch result", K(ret)); + } else { + LOG_DEBUG("collect result done", K(cur_output_group_id_), + K(get_output_queue_cnt()), K(is_iter_end), K(output_size), + K(get_group_rows_count())); + set_output_queue_cnt(get_output_queue_cnt() - brs_.size_); + if (!is_output_queue_not_empty()) { + LOG_DEBUG("all output row are consumed, do the cleanup", + K(cur_output_group_id_), K(get_output_queue_cnt()), + K(is_iter_end), K(output_size), + K(get_group_rows_count()), + K(cur_group_rowid_)); + + // aggregation rows cleanup and reuse + int64_t start_pos = MY_SPEC.has_rollup_ ? all_groupby_exprs_.count(): 0; + for (int64_t i = start_pos; OB_SUCC(ret) && i < cur_group_rowid_; i++) { + if (OB_FAIL(reuse_group(i))) { + LOG_WARN("failed to reuse group ", K(ret), K(i)); + } + } + if (is_end_) {// all output rows are consumed, child operator eached end. mark batch end + brs_.end_ = true; + } else { + // move last unfinished grouprow + // curr_group_rowid(last group row) calculation is NOT done, move it + // to group 0 + if (OB_FAIL(swap_group_row(start_pos, cur_group_rowid_))) { + LOG_WARN("failed to swap aggregation group rows", K(ret), + K(cur_group_rowid_)); + } else { + std::swap(output_groupby_rows_[start_pos], + output_groupby_rows_[cur_group_rowid_]); + } + cur_group_rowid_ = start_pos; + cur_output_group_id_ = start_pos; + } + } + } + } + return ret; +} + +int ObMergeGroupByVecOp::reuse_group(const int64_t group_id) +{ + int ret = OB_SUCCESS; + LastCompactRow *store_row = nullptr; + if (OB_FAIL(aggr_processor_.reuse_group(group_id))) { + LOG_WARN("failed to reuse group", K(ret), K(group_id)); + } else if (OB_FAIL(get_groupby_store_row(group_id, store_row))) { + LOG_WARN("failed to get group by store row", K(ret), K(group_id)); + } else { + store_row->reuse(); + } + return ret; +} + +int ObMergeGroupByVecOp::init_hp_infras_group_mgr() +{ + int ret = OB_SUCCESS; + + if (aggr_processor_.has_distinct()) { + int64_t est_rows = MY_SPEC.est_rows_per_group_; + aggr_processor_.set_io_event_observer(&io_event_observer_); + if (OB_FAIL(ObPxEstimateSizeUtil::get_px_size(&ctx_, MY_SPEC.px_est_size_factor_, est_rows, + est_rows))) { + LOG_WARN("failed to get px size", K(ret)); + } else if (OB_FAIL(sql_mem_processor_.init(&ctx_.get_allocator(), + est_rows * MY_SPEC.width_, MY_SPEC.type_, + MY_SPEC.id_, &ctx_))) { + LOG_WARN("failed to init sql mem processor", K(ret)); + } else if (OB_FAIL(hp_infras_mgr_.init(GCONF.is_sql_operator_dump_enabled(), + est_rows, MY_SPEC.width_, true /*unique*/, 1 /*ways*/, + &eval_ctx_, &sql_mem_processor_, &io_event_observer_, + MY_SPEC.compress_type_))) { + LOG_WARN("failed to init hash infras group", K(ret)); + } else { + aggr_processor_.set_hp_infras_mgr(&hp_infras_mgr_); + } + } + return ret; +} + +} // end namespace sql +} // end namespace oceanbase diff --git a/src/sql/engine/aggregate/ob_merge_groupby_vec_op.h b/src/sql/engine/aggregate/ob_merge_groupby_vec_op.h new file mode 100644 index 000000000..bba473e6f --- /dev/null +++ b/src/sql/engine/aggregate/ob_merge_groupby_vec_op.h @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2025 OceanBase. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef OCEANBASE_BASIC_OB_MERGE_GROUPBY_VEC_OP_H_ +#define OCEANBASE_BASIC_OB_MERGE_GROUPBY_VEC_OP_H_ + +#include "common/row/ob_row_store.h" +#include "sql/engine/aggregate/ob_groupby_op.h" +#include "sql/engine/aggregate/ob_groupby_vec_op.h" + +namespace oceanbase +{ +namespace sql +{ +class ObMergeGroupByVecSpec : public ObGroupBySpec +{ + OB_UNIS_VERSION_V(1); + +public: + ObMergeGroupByVecSpec(common::ObIAllocator &alloc, const ObPhyOperatorType type) : + ObGroupBySpec(alloc, type), group_exprs_(alloc), rollup_exprs_(alloc), distinct_exprs_(alloc), + is_duplicate_rollup_expr_(alloc), has_rollup_(false), + est_rows_per_group_(0), enable_hash_base_distinct_(false) + {} + + DECLARE_VIRTUAL_TO_STRING; + inline void set_rollup(const bool has_rollup) + { + has_rollup_ = has_rollup; + } + inline int init_group_exprs(const int64_t count) + { + return group_exprs_.init(count); + } + inline int init_rollup_exprs(const int64_t count) + { + return rollup_exprs_.init(count); + } + inline int init_duplicate_rollup_expr(const int64_t count) + { + return is_duplicate_rollup_expr_.init(count); + } + +private: + // disallow copy + DISALLOW_COPY_AND_ASSIGN(ObMergeGroupByVecSpec); + +public: + ExprFixedArray group_exprs_; // group by column + ExprFixedArray rollup_exprs_; // rollup column + ExprFixedArray distinct_exprs_; // the distinct arguments of aggregate function + common::ObFixedArray is_duplicate_rollup_expr_; + bool has_rollup_; + int64_t est_rows_per_group_; + bool enable_hash_base_distinct_; +}; + +class ObRowsGroupProcessor +{ +public: + ObRowsGroupProcessor() : + groupby_exprs_(nullptr), group_expr_cnt_(0), last_group_row_idx_(-1), group_vectors_(), + diff_row_idx_list_() + {} + void reuse(); + void reset(); + int prepare_process_next_batch(); + int init(ObEvalCtx &eval_ctx, const ObIArray &group_exprs); + int find_next_new_group(const ObBatchRows &brs, const LastCompactRow &group_store_row, + bool &found_new_group, uint32_t &group_end_idx, int64_t &diff_group_idx); + +private: + void derive_last_group_info(int64_t &diff_group_idx, uint32_t &group_end_idx); + +private: + // disallow copy + DISALLOW_COPY_AND_ASSIGN(ObRowsGroupProcessor); + +private: + const ObIArray *groupby_exprs_; + int64_t group_expr_cnt_; + int64_t last_group_row_idx_; + ObSEArray group_vectors_; + ObSEArray diff_row_idx_list_; +}; + +class ObMergeGroupByVecOp : public ObGroupByVecOp +{ +public: + ObMergeGroupByVecOp(ObExecContext &exec_ctx, const ObOpSpec &spec, ObOpInput *input) : + ObGroupByVecOp(exec_ctx, spec, input), mem_context_(nullptr), arena_alloc_(nullptr), + is_end_(false), init_group_cnt_(0), cur_output_group_id_(common::OB_INVALID_INDEX), + first_output_group_id_(0), last_child_output_(aggr_processor_.get_aggr_alloc()), + cur_group_rowid_(-1), output_queue_cnt_(0), cur_aggr_row_(nullptr), + cur_group_store_row_(nullptr), all_groupby_exprs_(), + group_row_meta_(&exec_ctx.get_allocator()), distinct_col_idx_in_output_(), + has_dup_group_expr_(false), is_group_first_calc_(true), cur_group_last_row_idx_(-1), + dir_id_(-1), + group_batch_factor_(8), agg_row_meta_(&exec_ctx.get_allocator()), + group_rows_(), output_stored_rows_(nullptr), + profile_(ObSqlWorkAreaType::HASH_WORK_AREA), sql_mem_processor_(profile_, op_monitor_info_), + hp_infras_mgr_{}, group_processor_() + {} + void reset(); + virtual int inner_open() override; + virtual int inner_close() override; + virtual int inner_rescan() override; + virtual int inner_switch_iterator() override; + virtual int inner_get_next_row() override + { + return common::OB_NOT_IMPLEMENT; + } + virtual int inner_get_next_batch(const int64_t max_row_cnt) override; + virtual void destroy() override; + int init_mem_context(); + int init(); + int gby_init(); + int rollup_init(); + int init_3stage_info(); + int init_one_group(const int64_t group_id, bool fill_pos = false); + int init_group_rows(const int64_t row_count); + int init_group_row_meta(); + int groupby_datums_eval_batch(const ObBatchRows &brs); + int aggregate_group_rows(const ObBatchRows &brs, int32_t start_idx, int32_t end_idx); + int add_batch_rows_for_3stage(const ObBatchRows &brs, int32_t start_idx, int32_t end_idx); + int add_batch_rows_for_3th_stage(const ObBatchRows &brs, const uint32_t start_idx, + const uint32_t end_idx); + int process_batch(const ObBatchRows &brs); + int prepare_and_save_curr_groupby_datums(const ObBatchRows &brs, int64_t curr_group_rowid, + ObIArray &group_exprs, + LastCompactRow *&cur_gby_store_row); + int process_unique_distinct_columns_for_batch(const LastCompactRow &cur_gby_store_row, + const LastCompactRow &last_child_output, + const uint32_t group_start_idx, + const uint32_t group_end_idx, ObBatchRows &brs); + int calc_batch_results(const bool is_iter_end, const int64_t max_output_size); +private: + // disallow copy + DISALLOW_COPY_AND_ASSIGN(ObMergeGroupByVecOp); + inline void inc_output_queue_cnt() + { + output_queue_cnt_++; + } + inline void set_output_queue_cnt(const int64_t new_cnt) + { + output_queue_cnt_ = new_cnt; + } + inline int64_t get_output_queue_cnt() + { + return output_queue_cnt_; + } + inline bool stop_batch_iterating(const ObBatchRows &brs, const int64_t output_size) + { + return (output_queue_cnt_ >= (group_batch_factor_ * output_size) || brs.end_); + } + inline bool is_output_queue_not_empty() + { + return (get_output_queue_cnt() > 0); + } + + inline int get_groupby_store_row(int i, LastCompactRow *&store_row); + inline LastCompactRow *get_groupby_store_row(int i) + { + LastCompactRow *store_row = nullptr; + if (i < output_groupby_rows_.count()) { + store_row = output_groupby_rows_.at(i); + } + return store_row; + } + inline int create_groupby_store_row(LastCompactRow *&store_row); + int reuse_group(const int64_t group_id); + int before_process_next_batch(); + + int get_cur_group_row(const ObBatchRows &brs, int64_t group_row_id, + aggregate::AggrRowPtrRef curr_aggr_row, LastCompactRow *&cur_gby_store_row, + ObIArray &group_exprs); + int gen_rollup_group_rows(int64_t start_diff_group_idx, int64_t end_group_idx, + int64_t max_group_idx, int64_t cur_group_row_id); + int get_rollup_row(int64_t prev_group_row_id, int64_t group_row_id, + aggregate::AggrRowPtrRef curr_aggr_row, LastCompactRow *&cur_gby_store_row, + aggregate::AggrRowPtrRef prev_aggr_row, LastCompactRow *&prev_gby_store_row, + bool &need_set_null, int64_t idx); + int get_empty_rollup_row(int64_t group_row_id, aggregate::AggrRowPtrRef curr_aggr_row, + LastCompactRow *&curr_gby_store_row); + int set_null(int64_t idx, LastCompactRow *rollup_store_row); + + int get_child_next_batch_row(const int64_t max_row_cnt, const ObBatchRows *&batch_rows); + int advance_collect_result(int64_t group_id); + int init_hsp_infras_group_mgr(); + inline int64_t get_group_rows_count() const + { + return group_rows_.count(); + } + int swap_group_row(const int a, const int b); + int get_aggr_row(const int64_t group_id, aggregate::AggrRowPtrRef aggr_row); + int get_aggr_and_group_row(const int64_t group_id, aggregate::AggrRowPtrRef aggr_row, + LastCompactRow *&store_row); + int process_rollup(const int64_t diff_group_idx, bool is_end = false); + int collect_group_results(const RowMeta &row_meta, const ObIArray &group_exprs, + const int32_t output_batch_size, ObBatchRows &output_brs, + int64_t &cur_group_id); + int init_hp_infras_group_mgr(); + +private: + lib::MemoryContext mem_context_; + common::ObArenaAllocator *arena_alloc_; + bool is_end_; + int64_t init_group_cnt_; + int64_t cur_output_group_id_; + int64_t first_output_group_id_; + LastCompactRow last_child_output_; + int64_t cur_group_rowid_; + int64_t output_queue_cnt_; + ObVectorsResultHolder brs_holder_; + ObSEArray output_groupby_rows_; + aggregate::AggrRowPtr cur_aggr_row_; + LastCompactRow *cur_group_store_row_; + ObSEArray all_groupby_exprs_; + RowMeta group_row_meta_; + ObSEArray distinct_col_idx_in_output_; + bool has_dup_group_expr_; + bool is_group_first_calc_; + int64_t cur_group_last_row_idx_; + int64_t dir_id_; + // default is a magic number 8, may use a sophisticated way + int64_t group_batch_factor_; + RowMeta agg_row_meta_; + common::ObSegmentArray + group_rows_; + const ObCompactRow **output_stored_rows_; + ObSqlWorkAreaProfile profile_; + ObSqlMemMgrProcessor sql_mem_processor_; + ObHashPartInfrasVecMgr hp_infras_mgr_; + ObRowsGroupProcessor group_processor_; +}; + +} // end namespace sql +} // end namespace oceanbase + +#endif // OCEANBASE_BASIC_OB_MERGE_GROUPBY_VEC_OP_H_ diff --git a/src/sql/engine/basic/ob_chunk_datum_store.cpp b/src/sql/engine/basic/ob_chunk_datum_store.cpp index 1b5df5415..28f4ac808 100644 --- a/src/sql/engine/basic/ob_chunk_datum_store.cpp +++ b/src/sql/engine/basic/ob_chunk_datum_store.cpp @@ -18,6 +18,7 @@ #include "ob_chunk_datum_store.h" #include "sql/engine/ob_exec_context.h" +#include "sql/engine/expr/ob_array_expr_utils.h" // for ObChunkStoreUtil namespace oceanbase @@ -158,13 +159,14 @@ void ObChunkDatumStore::StoredRow::swizzling(char *base/*= NULL*/) } } -template +template int ObChunkDatumStore::StoredRow::do_build(StoredRow *&sr, const ObExprPtrIArray &exprs, ObEvalCtx &ctx, char *buf, const int64_t buf_len, - const uint32_t extra_size) + const uint32_t extra_size, + int64_t vector_row_idx) { int ret = OB_SUCCESS; sr = reinterpret_cast(buf); @@ -179,6 +181,30 @@ int ObChunkDatumStore::StoredRow::do_build(StoredRow *&sr, if (OB_UNLIKELY(NULL == expr)) { // Set datum to NULL for NULL expr datums[i].set_null(); + } else if (IS_VECTOR_ROW) { + // TODO: shanting2.0 remove later. + if (OB_UNLIKELY(VEC_INVALID == expr->get_format(ctx))) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("expr not evaluated before", K(ret), KPC(expr)); + } else { + ObIVector *vec = expr->get_vector(ctx); + const char *payload = NULL; + ObLength len = 0; + ObEvalCtx::TempAllocGuard tmp_alloc_g(ctx); + if (OB_UNLIKELY(expr->is_nested_expr())) { + if (OB_FAIL(ObArrayExprUtils::get_collection_payload( + tmp_alloc_g.get_allocator(), ctx, *expr, vector_row_idx, payload, len))) { + LOG_WARN("get collection payload failed", K(ret)); + } + } else { + vec->get_payload(vector_row_idx, payload, len); + } + if (OB_SUCC(ret)) { + ObDatum in_datum(payload, len, vec->is_null(vector_row_idx)); + ret = UNSWIZZLING ? deep_copy_unswizzling(in_datum, &datums[i], buf, buf_len, pos) : + datums[i].deep_copy(in_datum, buf, buf_len, pos); + } + } } else { ObDatum *in_datum = NULL; if (OB_FAIL(expr->eval(ctx, in_datum))) { @@ -204,11 +230,17 @@ int ObChunkDatumStore::StoredRow::build(StoredRow *&sr, char *buf, const int64_t buf_len, const uint32_t extra_size, /* = 0 */ - const bool unswizzling /* = false */) + const bool unswizzling /* = false */, + int64_t vector_row_idx /* OB_INVALID_ID */) { + bool is_vector_row = OB_INVALID_ID != vector_row_idx; return unswizzling - ? do_build(sr, exprs, ctx, buf, buf_len, extra_size) - : do_build(sr, exprs, ctx, buf, buf_len, extra_size); + ? (is_vector_row + ? do_build(sr, exprs, ctx, buf, buf_len, extra_size, vector_row_idx) + : do_build(sr, exprs, ctx, buf, buf_len, extra_size, vector_row_idx)) + : (is_vector_row + ? do_build(sr, exprs, ctx, buf, buf_len, extra_size, vector_row_idx) + : do_build(sr, exprs, ctx, buf, buf_len, extra_size, vector_row_idx)); } int ObChunkDatumStore::StoredRow::build(StoredRow *&sr, @@ -259,7 +291,8 @@ int ObChunkDatumStore::Block::add_row(const common::ObIArray &exprs, Ob } int ObChunkDatumStore::BlockBufferWrap::append_row( - const common::ObIArray &exprs, ObEvalCtx *ctx, int64_t row_extend_size) + const common::ObIArray &exprs, ObEvalCtx *ctx, int64_t row_extend_size, + int64_t vector_row_idx) { int ret = OB_SUCCESS; OB_ASSERT(is_inited()); @@ -273,8 +306,17 @@ int ObChunkDatumStore::BlockBufferWrap::append_row( for (int64_t i = 0; OB_SUCC(ret) && i < sr->cnt_; ++i) { ObDatum *datum = new (&sr->cells()[i])ObDatum(); // Attension : can't print dst datum after deep_copy_unswizzling - ret = deep_copy_unswizzling(static_cast(exprs.at(i)->locate_expr_datum(*ctx)), - datum, head(), max_size, pos); + if (OB_INVALID_ID == vector_row_idx) { + ret = deep_copy_unswizzling(static_cast(exprs.at(i)->locate_expr_datum(*ctx)), + datum, head(), max_size, pos); + } else { + const ObIVector *vec = exprs.at(i)->get_vector(*ctx); + const char *payload = NULL; + ObLength len = 0; + vec->get_payload(vector_row_idx, payload, len); + ObDatum in_datum(payload, len, vec->is_null(vector_row_idx)); + ret = deep_copy_unswizzling(in_datum, datum, head(), max_size, pos); + } if (OB_FAIL(ret)) { if (OB_BUF_NOT_ENOUGH != ret) { LOG_WARN("failed to copy datum", K(ret), K(i), K(pos), @@ -296,7 +338,8 @@ int ObChunkDatumStore::BlockBufferWrap::append_row( int ObChunkDatumStore::Block::append_row( const common::ObIArray &exprs, ObEvalCtx *ctx, - BlockBuffer *buf, int64_t row_extend_size, StoredRow **stored_row, const bool unswizzling) + BlockBuffer *buf, int64_t row_extend_size, StoredRow **stored_row, const bool unswizzling, + int64_t vector_row_idx) { int ret = OB_SUCCESS; if (!buf->is_inited()) { @@ -305,7 +348,7 @@ int ObChunkDatumStore::Block::append_row( } else { StoredRow *sr = NULL; if (OB_FAIL(StoredRow::build(sr, exprs, *ctx, buf->head(), buf->remain(), - row_extend_size, unswizzling))) { + row_extend_size, unswizzling, vector_row_idx))) { if (OB_BUF_NOT_ENOUGH != ret) { LOG_WARN("build stored row failed", K(ret)); } diff --git a/src/sql/engine/basic/ob_select_into_op.cpp b/src/sql/engine/basic/ob_select_into_op.cpp index aa4e5365c..2f8f686b8 100644 --- a/src/sql/engine/basic/ob_select_into_op.cpp +++ b/src/sql/engine/basic/ob_select_into_op.cpp @@ -26,7 +26,6 @@ #include "sql/engine/expr/ob_expr_json_func_helper.h" #include "common/udt/ob_collection_type.h" #include "share/config/ob_server_config.h" -#include "share/ob_lob_access_utils.h" namespace oceanbase { diff --git a/src/sql/engine/basic/ob_temp_table_insert_op.cpp b/src/sql/engine/basic/ob_temp_table_insert_op.cpp index 3affca729..df8b5ad33 100644 --- a/src/sql/engine/basic/ob_temp_table_insert_op.cpp +++ b/src/sql/engine/basic/ob_temp_table_insert_op.cpp @@ -263,7 +263,8 @@ int ObTempTableInsertOp::init_chunk_row_store(ObDTLIntermResultInfo *&chunk_row_ MY_INPUT.qc_id_, MY_INPUT.dfo_id_, MY_INPUT.sqc_id_ - )))) { + ), + ObDTLIntermResultInfo::StoreType::DATUM))) { LOG_WARN("failed to create row store.", K(ret)); } else if (FALSE_IT(chunk_row_store = result_info_guard.result_info_)) { } else if (OB_FAIL(chunk_row_store->datum_store_->init(UINT64_MAX, diff --git a/src/sql/engine/basic/ob_temp_table_insert_vec_op.cpp b/src/sql/engine/basic/ob_temp_table_insert_vec_op.cpp new file mode 100644 index 000000000..7fc7499d1 --- /dev/null +++ b/src/sql/engine/basic/ob_temp_table_insert_vec_op.cpp @@ -0,0 +1,390 @@ +/* + * Copyright (c) 2025 OceanBase. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define USING_LOG_PREFIX SQL_ENG + +#include "ob_temp_table_insert_vec_op.h" +#include "share/rc/ob_module_provider.h" +#include "sql/engine/px/ob_px_sqc_handler.h" +namespace oceanbase +{ +using namespace common; +using namespace storage; +using namespace share; +using namespace share::schema; +namespace sql +{ + +using dtl::ObDTLIntermResultInfo; +static const uint64_t TEMP_TABLE_VEC_PAGE_SIZE = 100000; + +OB_SERIALIZE_MEMBER(ObTempTableInsertVecOpInput, qc_id_, dfo_id_, sqc_id_); + +DEF_TO_STRING(ObTempTableInsertVecOpSpec) +{ + int64_t pos = 0; + J_OBJ_START(); + J_NAME("op_spec"); + J_COLON(); + pos += ObOpSpec::to_string(buf + pos, buf_len - pos); + J_COMMA(); + J_KV(K(temp_table_id_), + K(is_distributed_)); + J_OBJ_END(); + return pos; +} + +OB_SERIALIZE_MEMBER_INHERIT(ObTempTableInsertVecOpSpec, ObOpSpec, + temp_table_id_, + is_distributed_); + +int ObTempTableInsertVecOp::inner_rescan() +{ + // Rescan is currently not supported. + int ret = OB_ERR_UNEXPECTED; + return ret; +} + +int ObTempTableInsertVecOp::inner_open() +{ + int ret = OB_SUCCESS; + if (OB_ISNULL(ctx_.get_my_session())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("ctx session is null"); + } else if (OB_ISNULL(mem_context_)) { + lib::ContextParam param; + + param.set_mem_attr("TempTableInsert", ObCtxIds::WORK_AREA) + .set_properties(lib::USE_TL_PAGE_OPTIONAL); + if (OB_FAIL(CURRENT_CONTEXT->CREATE_CONTEXT(mem_context_, param))) { + LOG_WARN("create entity failed", K(ret)); + } else if (OB_ISNULL(mem_context_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("null memory entity returned", K(ret)); + } else if (OB_FAIL(sql_mem_processor_.init( + &mem_context_->get_malloc_allocator(), + TEMP_TABLE_VEC_PAGE_SIZE * MY_SPEC.width_, + MY_SPEC.type_, + MY_SPEC.id_, + &ctx_))) { + LOG_WARN("failed to init sql memory manager processor", K(ret)); + } + } + return ret; +} + +int ObTempTableInsertVecOp::inner_close() +{ + int ret = OB_SUCCESS; + if (!MY_SPEC.is_distributed_) { + //do nothing + } else if (OB_ISNULL(task_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpect null task", K(ret)); + } else if (!task_->interm_result_ids_.empty()) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("result ids should be empty", K(ret)); + } else if (OB_FAIL(task_->interm_result_ids_.assign(interm_result_ids_))) { + LOG_WARN("failed to assign result ids", K(ret)); + } else { + task_->temp_table_id_ = MY_SPEC.temp_table_id_; + } + int temp_ret = ret; + if (OB_FAIL(clear_all_interm_res_info())) { + // overwrite ret, has temp_ret + LOG_WARN("failed to clear row store", K(ret)); + } + ret = temp_ret; + sql_mem_processor_.unregister_profile(); + return ret; +} + +void ObTempTableInsertVecOp::destroy() +{ + interm_result_ids_.reset(); + sql_mem_processor_.unregister_profile_if_necessary(); + destroy_mem_context(); + ObOperator::destroy(); +} + +int ObTempTableInsertVecOp::inner_get_next_row() +{ + int ret = common::OB_NOT_IMPLEMENT; + LOG_WARN("Vec Operator call inner_get_next_row()", K(ret)); + return ret; +} + +int ObTempTableInsertVecOp::inner_get_next_batch(const int64_t max_row_cnt) +{ + int ret = OB_SUCCESS; + if (init_temp_table_) { + if (OB_FAIL(do_get_next_vector(max_row_cnt))) { + LOG_WARN("failed to insert chunk row to temp table in vectorized mode", K(ret)); + } else if (OB_FAIL(insert_interm_result_info())) { + LOG_WARN("failed to insert chunk row store to dtl", K(ret)); + } else { + init_temp_table_ = false; + } + } + brs_.end_ = true; + brs_.size_ = 0; + return ret; +} + +int ObTempTableInsertVecOp::do_get_next_vector(const int64_t max_row_cnt) +{ + int ret = OB_SUCCESS; + dtl::ObDTLIntermResultInfo *result_info = NULL; + const ObBatchRows * child_brs = nullptr; + while (OB_SUCC(ret)) { + clear_evaluated_flag(); + if (OB_FAIL(child_->get_next_batch(max_row_cnt, child_brs))) { + LOG_WARN("fail to get next row from child.", K(ret)); + } else if (OB_FAIL(add_rows_to_temp_table(result_info, child_brs))) { + LOG_WARN("failed to add row to chunk row store.", K(ret)); + } + if (child_brs->end_) { + break; + } + LOG_DEBUG("finish processing batch result", KPC(child_brs)); + } + return ret; +} + +int ObTempTableInsertVecOp::add_rows_to_temp_table( + ObDTLIntermResultInfo *&interm_res_info, const ObBatchRows *brs) +{ + int ret = OB_SUCCESS; + int64_t read_rows = -1; + if (NULL == interm_res_info && OB_FAIL(create_interm_result_info(interm_res_info))) { + LOG_WARN("failed to init chunk row store", K(ret)); + } else if (OB_FAIL(process_dump(*interm_res_info))) { + LOG_WARN("failed to process dump", K(ret)); + } else if (OB_FAIL(interm_res_info->get_column_store()->add_batch( + MY_SPEC.get_child()->output_, eval_ctx_, *brs, read_rows))) { + LOG_WARN("failed to add rows to chunk row store.", K(ret), KPC(brs)); + } else if (!MY_SPEC.is_distributed_) { + //do nothing + } else if (interm_res_info->get_column_store()->get_row_cnt() < + TEMP_TABLE_VEC_PAGE_SIZE) { + //do nothing + } else { + interm_res_info = NULL; + } + return ret; +} + +int ObTempTableInsertVecOp::create_interm_result_info(ObDTLIntermResultInfo *&interm_res_info) +{ + int ret = OB_SUCCESS; + if (OB_ISNULL(ctx_.get_my_session())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("fail to get my session.", K(ret)); + } else { + + ObMemAttr mem_attr("TempTableInsert", ObCtxIds::WORK_AREA); + dtl::ObDTLIntermResultInfoGuard result_info_guard; + if (OB_FAIL(share::g_mp->dtl_interm_result_manager()->create_interm_result_info(mem_attr, + result_info_guard, + dtl::ObDTLIntermResultMonitorInfo( + MY_INPUT.qc_id_, + MY_INPUT.dfo_id_, + MY_INPUT.sqc_id_), + ObDTLIntermResultInfo::StoreType::COLUMN))) { + LOG_WARN("failed to create row store.", K(ret)); + } else if (FALSE_IT(interm_res_info = result_info_guard.result_info_)) { + } else if (OB_FAIL(interm_res_info->get_column_store()->init(MY_SPEC.get_child()->output_, + MY_SPEC.max_batch_size_, + mem_attr, + 0 /*mem_limit*/, + true /*enable_dump*/, + false /*reuse_vector_array*/, + MY_SPEC.compress_type_))) { + LOG_WARN("failed to init the chunk row store.", K(ret)); + } else if (OB_FAIL(all_interm_res_info_.push_back(interm_res_info))) { + LOG_WARN("failed to push back row store", K(ret)); + } else { + interm_res_info->get_column_store()->set_callback(&sql_mem_processor_); + interm_res_info->get_column_store()->set_dir_id(sql_mem_processor_.get_dir_id()); + interm_res_info->get_column_store()->set_io_event_observer(&io_event_observer_); + + // inc ref count because refered by all_interm_res_info_. decrease when remove from all_interm_res_info_. + dtl::ObDTLIntermResultManager::inc_interm_result_ref_count(interm_res_info); + LOG_TRACE("trace init sql mem mgr for temp table insert", K(MY_SPEC.width_), + K(profile_.get_cache_size()), K(profile_.get_expect_size())); + } + } + return ret; +} + +int ObTempTableInsertVecOp::insert_interm_result_info() +{ + int ret = OB_SUCCESS; + uint64_t interm_result_id; + ObSEArray keys_insert; + dtl::ObDTLIntermResultKey dtl_int_key; + ObDTLIntermResultInfo *interm_res_info = NULL; + ObPhysicalPlanCtx *phy_plan_ctx = NULL; + if (OB_ISNULL(phy_plan_ctx = GET_PHY_PLAN_CTX(ctx_))) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("phy_plan_ctx is NULL", K(ret)); + } else if (!MY_SPEC.is_distributed_ && + all_interm_res_info_.empty() && + OB_FAIL(create_interm_result_info(interm_res_info))) { + // An empty row store is required as a placeholder for the local temp table. + LOG_WARN("failed to init chunk row store", K(ret)); + } else if (!MY_SPEC.is_distributed_ && all_interm_res_info_.count() != 1) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("local temp table shoud have one chunk row store", K(ret)); + } + for (int64_t i = 0; OB_SUCC(ret) && i < all_interm_res_info_.count(); ++i) { + ObDTLIntermResultInfo *&cur_interm_res_info = all_interm_res_info_.at(i); + if (OB_UNLIKELY(NULL == cur_interm_res_info || !cur_interm_res_info->is_store_valid())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpect invalid row store", K(ret)); + } else if (!MY_SPEC.is_distributed_ && + OB_FAIL(prepare_interm_result_id_for_local(interm_result_id))) { + LOG_WARN("failed to prepare interm result id", K(ret)); + } else if (MY_SPEC.is_distributed_ && + OB_FAIL(prepare_interm_result_id_for_distribute(interm_result_id))) { + LOG_WARN("failed to prepare interm result id", K(ret)); + } else if (OB_FAIL(cur_interm_res_info->get_column_store()->finish_add_row())) { + LOG_WARN("failed to finish add row", K(ret)); + } else { + dtl_int_key.channel_id_ = interm_result_id; + dtl_int_key.start_time_ = oceanbase::common::ObTimeUtility::current_time(); + dtl_int_key.timeout_ts_ = phy_plan_ctx->get_timeout_timestamp(); + cur_interm_res_info->set_eof(true); + // The chunk row store does not require managing the dump logic. + cur_interm_res_info->is_read_ = true; + if (OB_FAIL(share::g_mp->dtl_interm_result_manager()->insert_interm_result_info( + dtl_int_key, cur_interm_res_info))) { + LOG_WARN("failed to insert row store.", K(ret), K(dtl_int_key.channel_id_)); + } else if (OB_FAIL(keys_insert.push_back(dtl_int_key))) { + LOG_WARN("failed to push back key", K(ret)); + share::g_mp->dtl_interm_result_manager()->erase_interm_result_info(dtl_int_key); + } else { + cur_interm_res_info->get_column_store()->reset_callback(); + } + } + } + if (OB_FAIL(ret)) { + // Exception handling + for (int64_t i = 0; i < keys_insert.count(); ++i) { + share::g_mp->dtl_interm_result_manager()->erase_interm_result_info(keys_insert.at(i)); + } + } else { + clear_all_interm_res_info(); + } + return ret; +} + +// clear all_col_store and decrease ref count of each result_info in it. +int ObTempTableInsertVecOp::clear_all_interm_res_info() +{ + int ret = OB_SUCCESS; + for (int64_t i = 0; OB_SUCC(ret) && i < all_interm_res_info_.count(); ++i) { + ObDTLIntermResultInfo *col_store = all_interm_res_info_.at(i); + if (NULL != col_store) { + share::g_mp->dtl_interm_result_manager()->dec_interm_result_ref_count(col_store); + } + } + all_interm_res_info_.reset(); + return ret; +} + +int ObTempTableInsertVecOp::prepare_interm_result_id_for_local(uint64_t &interm_result_id) +{ + int ret = OB_SUCCESS; + ObSqlTempTableCtx temp_table_ctx; + temp_table_ctx.temp_table_id_ = MY_SPEC.temp_table_id_; + temp_table_ctx.is_local_interm_result_ = true; + interm_result_id = dtl::ObDtlChannel::generate_id(); + ObTempTableResultInfo info; + if (OB_FAIL(info.interm_result_ids_.push_back(interm_result_id))) { + LOG_WARN("failed to push back", K(ret)); + } else if (OB_FAIL(temp_table_ctx.interm_result_infos_.push_back(info))) { + LOG_WARN("failed to push back info", K(ret)); + } else if (OB_FAIL(get_exec_ctx().get_temp_table_ctx().push_back(temp_table_ctx))) { + LOG_WARN("failed to push back", K(ret)); + } + return ret; +} + +int ObTempTableInsertVecOp::prepare_interm_result_id_for_distribute(uint64_t &interm_result_id) +{ + int ret = OB_SUCCESS; + interm_result_id = dtl::ObDtlChannel::generate_id(); + if (OB_FAIL(interm_result_ids_.push_back(interm_result_id))) { + LOG_WARN("failed to push back result id", K(ret)); + } + return ret; +} + +int ObTempTableInsertVecOp::process_dump(dtl::ObDTLIntermResultInfo &interm_res_info) +{ + int ret = OB_SUCCESS; + bool updated = false; + bool dumped = false; + UNUSED(updated); + // For material, due to the need for sequential preservation, + // the implementation of dump is to dump everything while also preserving the final memory data. + // Currently, the chosen approach is to dump from the beginning to the end. + // Another implementation approach is to dump the remaining data up to the maximum memory capacity, + // and any future data writes would require a dump. However, this approach would require memory scaling. + if (OB_FAIL(sql_mem_processor_.update_max_available_mem_size_periodically( + &mem_context_->get_malloc_allocator(), + [&](int64_t cur_cnt){ return interm_res_info.get_column_store()->get_row_cnt_in_memory() > cur_cnt; }, + updated))) { + LOG_WARN("failed to update max available memory size periodically", K(ret)); + } else if (need_dump() && GCONF.is_sql_operator_dump_enabled() + && OB_FAIL(sql_mem_processor_.extend_max_memory_size( + &mem_context_->get_malloc_allocator(), + [&](int64_t max_memory_size) { + return sql_mem_processor_.get_data_size() > max_memory_size; + }, + dumped, sql_mem_processor_.get_data_size()))) { + LOG_WARN("failed to extend max memory size", K(ret)); + } else if (dumped) { + int64_t dump_start_time = oceanbase::common::ObTimeUtility::current_time(); + int64_t dump_end_time = dump_start_time; + for (int64_t i = 0; OB_SUCC(ret) && i < all_interm_res_info_.count(); ++i) { + // The last block of the last chunk may still need to insert data and should not be dumped. + bool dump_last_block = i < all_interm_res_info_.count() - 1; + if (OB_FAIL(all_interm_res_info_.at(i)->get_column_store()->dump(dump_last_block))) { + LOG_WARN("failed to dump row store", K(ret)); + } else { + dump_end_time = oceanbase::common::ObTimeUtility::current_time(); + all_interm_res_info_.at(i)->dump_time_ = 0 == all_interm_res_info_.at(i)->dump_time_ ? + dump_start_time : + all_interm_res_info_.at(i)->dump_time_; + all_interm_res_info_.at(i)->dump_cost_ += dump_end_time - dump_start_time; + dump_start_time = dump_end_time; + } + } + if (OB_SUCC(ret)) { + sql_mem_processor_.set_number_pass(1); + LOG_WARN("trace temp table insert dump", + K(sql_mem_processor_.get_data_size()), + K(all_interm_res_info_.count()), + K(sql_mem_processor_.get_mem_bound())); + } + } + return ret; +} + +} // end namespace sql +} // end namespace oceanbase diff --git a/src/sql/engine/cmd/ob_get_diagnostics_executor.cpp b/src/sql/engine/cmd/ob_get_diagnostics_executor.cpp index 5630065ba..6d65d5ea6 100644 --- a/src/sql/engine/cmd/ob_get_diagnostics_executor.cpp +++ b/src/sql/engine/cmd/ob_get_diagnostics_executor.cpp @@ -17,7 +17,6 @@ #define USING_LOG_PREFIX SQL_ENG #include "sql/engine/cmd/ob_get_diagnostics_executor.h" #include "observer/ob_inner_sql_connection_pool.h" -#include "share/ob_lob_access_utils.h" #include "sql/session/ob_basic_session_info.h" using namespace oceanbase::common; using namespace oceanbase::share; diff --git a/src/sql/engine/dml/ob_dml_service.cpp b/src/sql/engine/dml/ob_dml_service.cpp index b1b9f28b1..89f012330 100644 --- a/src/sql/engine/dml/ob_dml_service.cpp +++ b/src/sql/engine/dml/ob_dml_service.cpp @@ -751,6 +751,236 @@ int ObDMLService::process_insert_row(const ObInsCtDef &ins_ctdef, return ret; } +int ObDMLService::process_insert_batch( + const ObInsCtDef &ins_ctdef, + ObTableModifyOp &dml_op, + const bool use_rich_format) +{ + int ret = OB_SUCCESS; + if (OB_FAIL(check_column_type_batch(ins_ctdef, dml_op, use_rich_format))) { + LOG_WARN("failed to check column type batch", KR(ret), K(ins_ctdef), K(use_rich_format)); + } else if (OB_FAIL(check_nested_sql_legality(dml_op.get_exec_ctx(), ins_ctdef.das_ctdef_.index_tid_))) { + LOG_WARN("failed to check stmt table", KR(ret), K(ins_ctdef.das_ctdef_.index_tid_)); + } else if (!ins_ctdef.has_instead_of_trigger_ && OB_FAIL(check_filter_row_batch(ins_ctdef, dml_op))) { + LOG_WARN("failed to check filter row batch", KR(ret)); + } + return ret; +} + +int ObDMLService::check_column_type_batch( + const ObInsCtDef &ins_ctdef, + ObTableModifyOp &dml_op, + const bool use_rich_format) +{ + int ret = OB_SUCCESS; + ObEvalCtx &eval_ctx = dml_op.get_eval_ctx(); + ObExecContext &exec_ctx = dml_op.get_exec_ctx(); + ObBatchRows &batch_rows = dml_op.get_brs(); + const ExprFixedArray &dml_expr_array = ins_ctdef.new_row_; + const ObIArray &column_infos = ins_ctdef.column_infos_; + const int64_t column_offset = ins_ctdef.is_table_without_pk_ ? 1: 0; + // todo@lanyi check column_offset for the order by table + const int64_t row_num = 0; // no sense + ObUserLoggingCtx::Guard logging_ctx_guard(*(exec_ctx.get_user_logging_ctx())); + exec_ctx.set_cur_rownum(row_num); + CK (dml_expr_array.count() == column_infos.count() + column_offset); + + for (int64_t i = 0; OB_SUCC(ret) && (i < dml_expr_array.count()); ++i) { + if (ins_ctdef.is_table_without_pk_ && (0 == i)) { + continue; // skip hidden table pk column + } else { + const ColumnContent &column_info = column_infos.at(i - column_offset); + common::ObString column_name = column_info.column_name_; + exec_ctx.set_cur_column_name(&column_name); + ObExpr *expr = dml_expr_array.at(column_info.projector_index_); + if (use_rich_format) { + if (OB_FAIL(expr->eval_vector(eval_ctx, batch_rows))) { + LOG_WARN("failed to eval vector", KR(ret)); + } + } else { + if (OB_FAIL(expr->eval_batch(eval_ctx, *(batch_rows.skip_), batch_rows.size_))) { + LOG_WARN("failed to eval batch", KR(ret)); + } + } + if (OB_FAIL(ret)) { + ret = log_user_error_inner(ret, row_num, column_name, exec_ctx, expr->datum_meta_.type_); + } else if (!ins_ctdef.has_instead_of_trigger_) { + if (OB_UNLIKELY(expr->obj_meta_.is_geometry()) + && OB_FAIL(check_geometry_column_batch(ins_ctdef, dml_op, column_info, use_rich_format))) { + LOG_WARN("failed to check geometry column batch", KR(ret), K(column_info), K(use_rich_format)); + } else if (!column_info.is_nullable_) { + bool need_check_null = use_rich_format ? expr->get_vector(eval_ctx)->has_null() : true; + if (need_check_null && OB_FAIL(check_column_null_batch( + ins_ctdef, dml_op, column_info, use_rich_format))) { + LOG_WARN("failed to check column null batch", KR(ret), K(column_info)); + } + } + } + } + } + return ret; +} + +int ObDMLService::check_geometry_column_batch( + const ObInsCtDef &ins_ctdef, + ObTableModifyOp &dml_op, + const ColumnContent &column_info, + const bool use_rich_format) +{ + int ret = OB_SUCCESS; + ObEvalCtx &eval_ctx = dml_op.get_eval_ctx(); + ObBatchRows &batch_rows = dml_op.get_brs(); + const ExprFixedArray &dml_expr_array = ins_ctdef.new_row_; + ObExpr *expr = dml_expr_array.at(column_info.projector_index_); + common::ObString column_name = column_info.column_name_; + ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx); + batch_info_guard.set_batch_size(batch_rows.size_); + batch_info_guard.set_batch_idx(0); + ObArenaAllocator tmp_allocator(ObModIds::OB_LOB_ACCESS_BUFFER, OB_MALLOC_NORMAL_BLOCK_SIZE); + for (int64_t i = 0; OB_SUCC(ret) && (i < batch_rows.size_); ++i) { + bool is_skipped = batch_rows.skip_->at(i); + batch_info_guard.set_batch_idx(i); + if (!is_skipped) { + ObDatum gis_datum; + ObDatum *ptr_datum = &gis_datum; + if (use_rich_format) { + ObIVector *vec = expr->get_vector(eval_ctx); + if (OB_ISNULL(vec)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected null vec", KR(ret), KP(vec)); + } else if (vec->is_null(i)) { + gis_datum.set_null(); + } else { + const char *payload = nullptr; + int32_t len = 0; + vec->get_payload(i, payload, len); + gis_datum.ptr_ = payload; + gis_datum.len_ = len; + } + } else { + ptr_datum = &expr->locate_expr_datum(eval_ctx); + } + if (OB_FAIL(ret)) { + } else if (OB_FAIL(check_geometry_type(eval_ctx, dml_expr_array, column_info, tmp_allocator, *ptr_datum))) { + LOG_WARN("failed to check geometry type", KR(ret), K(column_info)); + if (OB_FAIL(check_error_ret_by_row(ins_ctdef, dml_op, ret))) { + LOG_WARN("failed to check error ret by row", KR(ret)); + } + } + if (OB_SUCC(ret)) { + ret = dml_op.err_log_rt_def_.first_err_ret_; + } + } + } // end for + return ret; +} + +int ObDMLService::check_column_null_batch( + const ObInsCtDef &ins_ctdef, + ObTableModifyOp &dml_op, + const ColumnContent &column_info, + const bool use_rich_format) +{ + int ret = OB_SUCCESS; + ObSQLSessionInfo *session = nullptr; + ObEvalCtx &eval_ctx = dml_op.get_eval_ctx(); + ObBatchRows &batch_rows = dml_op.get_brs(); + const ExprFixedArray &dml_expr_array = ins_ctdef.new_row_; + ObExpr *expr = dml_expr_array.at(column_info.projector_index_); + common::ObString column_name = column_info.column_name_; + ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx); + batch_info_guard.set_batch_size(batch_rows.size_); + batch_info_guard.set_batch_idx(0); + if (OB_ISNULL(session = dml_op.get_exec_ctx().get_my_session())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected null session", KR(ret), KP(session)); + } else if (!column_info.is_nullable_) { + for (int64_t i = 0; OB_SUCC(ret) && (i < batch_rows.size_); ++i) { + bool is_skipped = batch_rows.skip_->at(i); + ObDatum *expr_datum = nullptr; + batch_info_guard.set_batch_idx(i); + if (!is_skipped) { + if (use_rich_format) { + ObIVector *vec = expr->get_vector(eval_ctx); + if (OB_ISNULL(vec)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected null vec", KR(ret), KP(vec)); + } else if (!vec->is_null(i)) { + is_skipped = true; + } else { + if (OB_FAIL(expr->eval(eval_ctx, expr_datum))) { + common::ObString column_name = column_info.column_name_; + ret = ObDMLService::log_user_error_inner(ret, 0/*row_num*/, column_name, dml_op.get_exec_ctx(), + expr->datum_meta_.type_); + } else if (OB_ISNULL(expr_datum)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected null expr datum", KR(ret), KP(expr_datum)); + } + } + } else { + expr_datum = expr->locate_expr_datumvector(eval_ctx).at(i); + if (OB_ISNULL(expr_datum)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected null expr datum", KR(ret), KP(expr_datum)); + } else if (!expr_datum->is_null()) { + is_skipped = true; + } + } + } + + if (OB_SUCC(ret)) { + if (!is_skipped && OB_FAIL(check_column_null(eval_ctx, + dml_expr_array, + column_info, + *expr_datum, + ins_ctdef.das_ctdef_.is_ignore_, + ins_ctdef.is_single_value_, + session->get_sql_mode()))) { + LOG_WARN("failed to check column null", KR(ret)); + if (OB_FAIL(check_error_ret_by_row(ins_ctdef, dml_op, ret))) { + LOG_WARN("failed to check error ret by row", KR(ret)); + } + } + } + if (OB_SUCC(ret)) { + ret = dml_op.err_log_rt_def_.first_err_ret_; + } + } // end for + } + return ret; +} + +int ObDMLService::check_filter_row_batch( + const ObInsCtDef &ins_ctdef, + ObTableModifyOp &dml_op) +{ + int ret = OB_SUCCESS; + ObEvalCtx &eval_ctx = dml_op.get_eval_ctx(); + ObBatchRows &batch_rows = dml_op.get_brs(); + ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx); + batch_info_guard.set_batch_size(batch_rows.size_); + batch_info_guard.set_batch_idx(0); + for (int64_t i = 0; OB_SUCC(ret) && (i < batch_rows.size_); ++i) { + bool is_skipped = batch_rows.skip_->at(i); + batch_info_guard.set_batch_idx(i); + if (!is_skipped) { + bool is_filtered = false; + if (OB_FAIL(check_filter_row(ins_ctdef, eval_ctx, is_skipped))) { + LOG_WARN("failed to check filter row", KR(ret)); + if (OB_FAIL(check_error_ret_by_row(ins_ctdef, dml_op, ret))) { + LOG_WARN("failed to check error ret by row", KR(ret)); + } + } else if (is_skipped) { + batch_rows.skip_->set(i); + } + if (OB_SUCC(ret)) { + ret = dml_op.err_log_rt_def_.first_err_ret_; + } + } + } // end for + return ret; +} + int ObDMLService::check_filter_row( const ObInsCtDef &ins_ctdef, ObEvalCtx &eval_ctx, diff --git a/src/sql/engine/expr/ob_datum_cast.cpp b/src/sql/engine/expr/ob_datum_cast.cpp index 57e4e4224..6b8399007 100644 --- a/src/sql/engine/expr/ob_datum_cast.cpp +++ b/src/sql/engine/expr/ob_datum_cast.cpp @@ -22,7 +22,6 @@ #endif #include "share/object/ob_decint_scale_util.h" #include "share/object/ob_obj_cast_util.h" -#include "share/ob_lob_access_utils.h" #include "share/ob_json_access_utils.h" #include "sql/engine/expr/ob_datum_cast.h" #include "share/object/ob_array_cast.h" diff --git a/src/sql/engine/expr/ob_expr_bool.cpp b/src/sql/engine/expr/ob_expr_bool.cpp index 96f4dccea..91200fe1e 100644 --- a/src/sql/engine/expr/ob_expr_bool.cpp +++ b/src/sql/engine/expr/ob_expr_bool.cpp @@ -220,6 +220,154 @@ inline int get_bool<>(const ObString &j_str, return ret; } +template +static int eval_vector_expr_bool(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound, + DataType (ArgVec::*get_data)(int64_t) const) +{ + int ret = OB_SUCCESS; + ArgVec *arg_vec = static_cast(expr.args_[0]->get_vector(ctx)); + ResVec *res_vec = static_cast(expr.get_vector(ctx)); + ObBitVector &eval_flags = expr.get_evaluated_flags(ctx); + const bool isFixedLenRes = std::is_same::value; + int64_t *data_ptr = isFixedLenRes ? + const_cast(reinterpret_cast(res_vec->get_payload(0))) : + nullptr; + bool no_skip_no_null = bound.get_all_rows_active() && !arg_vec->has_null(); + if (no_skip_no_null) { + for (int64_t idx = bound.start(); OB_SUCC(ret) && idx < bound.end(); ++idx) { + bool arg_is_true = false; + if (OB_FAIL(get_bool((arg_vec->*get_data)(idx), + arg_vec->get_length(idx), expr, arg_is_true))) { + LOG_WARN("failed to check is true", K(ret)); + } else if (isFixedLenRes) { + data_ptr[idx] = static_cast(arg_is_true); + } else { + res_vec->set_int(idx, static_cast(arg_is_true)); + } + } + eval_flags.set_all(bound.start(), bound.end()); + } else { + for (int64_t idx = bound.start(); OB_SUCC(ret) && idx < bound.end(); ++idx) { + if (skip.at(idx) || eval_flags.at(idx)) { + continue; + } else if (arg_vec->is_null(idx)) { + res_vec->set_null(idx); + } else { + bool arg_is_true = false; + if (OB_FAIL(get_bool((arg_vec->*get_data)(idx), + arg_vec->get_length(idx), expr, arg_is_true))) { + LOG_WARN("failed to check is true", K(ret)); + } else { + res_vec->set_int(idx, static_cast(arg_is_true)); + } + } + eval_flags.set(idx); + } + } + return ret; +} + +template +static inline int def_eval_vector_bool_expr(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound, + DataType (ObVectorBase::*get_data)(int64_t) const) +{ + int ret = OB_SUCCESS; + VectorFormat res_format = expr.get_format(ctx); + // The 'res_format' is expected to be Type 'IntegerFixedVec' under the regular circumstances. + // So a condition is added to optimize performance accordingly. + if (VEC_FIXED == res_format) { + VectorFormat arg_format = expr.args_[0]->get_format(ctx); + if (VEC_FIXED == arg_format || VEC_DISCRETE == arg_format || VEC_CONTINUOUS == arg_format) { + ret = eval_vector_expr_bool + (expr, ctx, skip, bound, get_data); + } else if (VEC_UNIFORM == arg_format) { + ret = eval_vector_expr_bool + (expr, ctx, skip, bound, get_data); + } else { + ret = eval_vector_expr_bool + (expr, ctx, skip, bound, get_data); + } + } else { + ret = eval_vector_expr_bool + (expr, ctx, skip, bound, get_data); + } + return ret; +} + +int ObExprBool::calc_vector_bool_expr(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + int ret = OB_SUCCESS; + if (OB_FAIL(expr.args_[0]->eval_vector(ctx, skip, bound))) { + LOG_WARN("fail to eval bool param", K(ret)); + } else { + ObObjType data_type = expr.args_[0]->datum_meta_.type_; + VectorFormat arg_format = expr.args_[0]->get_format(ctx); + switch(data_type) { + case ObTinyIntType: + case ObSmallIntType: + case ObMediumIntType: + case ObInt32Type: + case ObIntType: + case ObUTinyIntType: + case ObUSmallIntType: + case ObUMediumIntType: + case ObUInt32Type: + case ObUInt64Type: + case ObBitType: { + ret = def_eval_vector_bool_expr + (expr, ctx, skip, bound, &ObVectorBase::get_int); + break; + } + case ObFloatType: + case ObUFloatType: { + ret = def_eval_vector_bool_expr + (expr, ctx, skip, bound, &ObVectorBase::get_float); + break; + } + case ObDoubleType: + case ObUDoubleType: { + ret = def_eval_vector_bool_expr + (expr, ctx, skip, bound, &ObVectorBase::get_double); + break; + } + case ObDecimalIntType: { + ret = def_eval_vector_bool_expr + (expr, ctx, skip, bound, &ObVectorBase::get_decimal_int); + break; + } + case ObJsonType: { + if (VEC_DISCRETE == arg_format) { + ret = def_eval_vector_bool_expr + (expr, ctx, skip, bound, &ObVectorBase::get_string); + } else { + ret = def_eval_vector_bool_expr + (expr, ctx, skip, bound, &ObVectorBase::get_string); + } + break; + } + default: + if (VEC_DISCRETE == arg_format) { + ret = def_eval_vector_bool_expr + (expr, ctx, skip, bound, &ObVectorBase::get_number); + } else { + ret = def_eval_vector_bool_expr + (expr, ctx, skip, bound, &ObVectorBase::get_number); + } + break; + } //switch + } + return ret; +} + int ObExprBool::cg_expr(ObExprCGCtx &expr_cg_ctx, const ObRawExpr &raw_expr, ObExpr &rt_expr) const @@ -275,6 +423,7 @@ int ObExprBool::cg_expr(ObExprCGCtx &expr_cg_ctx, break; } } + rt_expr.eval_vector_func_ = ObExprBool::calc_vector_bool_expr; } return ret; } diff --git a/src/sql/engine/expr/ob_expr_calc_partition_id.cpp b/src/sql/engine/expr/ob_expr_calc_partition_id.cpp index 76897f7ca..6d8649390 100644 --- a/src/sql/engine/expr/ob_expr_calc_partition_id.cpp +++ b/src/sql/engine/expr/ob_expr_calc_partition_id.cpp @@ -17,8 +17,8 @@ #define USING_LOG_PREFIX SQL_ENG #include "ob_expr_calc_partition_id.h" #include "sql/engine/ob_exec_context.h" -#include "sql/engine/expr/ob_expr_cmp_func.h" #include "sql/engine/expr/ob_expr_func_part_hash.h" +#include "sql/engine/vector/expr_cmp_func.h" namespace oceanbase { @@ -97,6 +97,20 @@ int ObExprCalcPartitionBase::calc_result_typeN(ObExprResType &type, return OB_SUCCESS; } +typedef int64_t (*GetPayloadFunc)(const char *payload); +static int64_t get_64_len_val(const char *payload) +{ + return *reinterpret_cast(payload); +} + +static int64_t get_8_len_val(const char *payload) +{ + return static_cast(*(reinterpret_cast(payload))); +} + +static GetPayloadFunc FAST_CALC_PART_GET_VAL_FUNCS[2] = {get_64_len_val, get_8_len_val}; + +ERRSIM_POINT_DEF(ERRSIM_USE_FAST_CALC_PART); int ObExprCalcPartitionBase::cg_expr(ObExprCGCtx &expr_cg_ctx, const ObRawExpr &raw_expr, ObExpr &rt_expr) const @@ -105,6 +119,7 @@ int ObExprCalcPartitionBase::cg_expr(ObExprCGCtx &expr_cg_ctx, ObTableID ref_table_id = reinterpret_cast(raw_expr.get_ref_table_id()); CalcPartitionBaseInfo *calc_part_info = NULL; const ObTableSchema *table_schema = NULL; + OptRouteType opt_route = OPT_ROUTE_NONE; if (OB_ISNULL(expr_cg_ctx.schema_guard_)) { ret = OB_INVALID_ARGUMENT; LOG_WARN("invalid argument", K(ret)); @@ -135,6 +150,125 @@ int ObExprCalcPartitionBase::cg_expr(ObExprCGCtx &expr_cg_ctx, OB_ASSERT(1 == rt_expr.arg_cnt_); OB_ASSERT(PARTITION_LEVEL_ONE == calc_part_info->part_level_); rt_expr.eval_func_ = ObExprCalcPartitionBase::calc_partition_level_one; + bool fallback = false; + const ObExpr *part_expr = rt_expr.args_[0]; + if (T_OP_ROW != part_expr->type_ && + (CALC_TABLET_ID == calc_part_info->calc_id_type_ || + CALC_PARTITION_ID == calc_part_info->calc_id_type_) && + ERRSIM_USE_FAST_CALC_PART == OB_SUCCESS) { + ObDASTabletMapper tablet_mapper; + if (OB_ISNULL(expr_cg_ctx.session_)) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("invalid expr_cg_ctx session", K(ret)); + } else if (OB_ISNULL(expr_cg_ctx.session_->get_cur_exec_ctx())) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("invalid cur_exec_ctx", K(ret)); + } else if (OB_FAIL(expr_cg_ctx.session_->get_cur_exec_ctx()-> + get_das_ctx().get_das_tablet_mapper(calc_part_info->ref_table_id_, + tablet_mapper, + &calc_part_info->related_table_ids_))) { + LOG_WARN("get das tablet mapper failed", K(ret), K(calc_part_info)); + } else { + share::schema::RelatedTableInfo *related_info_ptr = nullptr; + if (tablet_mapper.get_related_table_info().related_tids_ != nullptr && + !tablet_mapper.get_related_table_info().related_tids_->empty()) { + related_info_ptr = &tablet_mapper.get_related_table_info(); + } + if (OB_NOT_NULL(related_info_ptr)) { + fallback = true; + } + } + if (OB_FAIL(ret)) { + } else if (fallback) { + } else if (table_schema->is_hash_part()) { + { + rt_expr.inner_func_cnt_ = 1; + void **func_buf = NULL; + int64_t func_buf_size = sizeof(void *); + if (OB_ISNULL(func_buf = (void **)expr_cg_ctx.allocator_->alloc(func_buf_size))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to allocate memory", K(ret)); + } else { + rt_expr.inner_functions_ = func_buf; + switch (ob_obj_type_class(part_expr->obj_meta_.get_type())) { + case ObIntTC: + case ObUIntTC: + case ObBitTC: { + rt_expr.inner_functions_[0] = (void *)(FAST_CALC_PART_GET_VAL_FUNCS[0]); + break; + } + case ObYearTC: { + rt_expr.inner_functions_[0] = (void *)(FAST_CALC_PART_GET_VAL_FUNCS[1]); + break; + } + default: { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("type is wrong", K(ret), K(part_expr->obj_meta_.get_type())); + break; + } + } + } + if (OB_SUCC(ret)) { + rt_expr.eval_vector_func_ = + ObExprCalcPartitionBase::fast_calc_partition_level_one_vector; + } + } + } else if (table_schema->is_key_part()) { + if (OB_UNLIKELY(!part_expr->obj_meta_.is_int())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("type invalid", K(part_expr->obj_meta_), KR(ret)); + } else { + rt_expr.eval_vector_func_ = + ObExprCalcPartitionBase::fast_calc_partition_level_one_vector; + } + } else if (table_schema->is_range_part()) { + ObPartition * const* part_array = table_schema->get_part_array(); + if (OB_ISNULL(part_array) || OB_ISNULL(part_array[0]) || + OB_ISNULL(part_array[0]->get_high_bound_val().get_obj_ptr())) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("partition_array is null", K(ret)); + } else if (part_expr->obj_meta_.get_type() != + part_array[0]->get_high_bound_val().get_obj_ptr()->get_meta().get_type()) { + fallback = true; + } else { + rt_expr.eval_vector_func_ = + ObExprCalcPartitionBase::fast_calc_partition_level_one_vector; + } + } else if (table_schema->is_list_part()) { + ObObjType part_expr_type = rt_expr.args_[0]->datum_meta_.type_; + // The following types are not supported for hash. + if (ob_is_json(part_expr_type)) { + fallback = true; + } else { + ObPartition * const* part_array = table_schema->get_part_array(); + if (OB_ISNULL(part_array) || OB_ISNULL(part_array[0])) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("partition_array is null", K(ret)); + } else { + const ObIArray &list_row_values = + part_array[0]->get_list_row_values(); + ObObj *list_part_obj = list_row_values.at(0).cells_; + if (OB_ISNULL(list_part_obj)) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("list_part_obj is null", K(ret)); + } else if (part_expr->obj_meta_.get_type() != + list_part_obj->get_meta().get_type()) { + fallback = true; + } else { + rt_expr.eval_vector_func_ = + ObExprCalcPartitionBase::fast_calc_partition_level_one_vector; + } + } + } + } else { + fallback = true; + } + } else { + fallback = true; + } + if (OB_SUCC(ret) && fallback) { + rt_expr.eval_vector_func_ = ObExprCalcPartitionBase::calc_partition_level_one_vector; + } } else if (2 == param_cnt) { OB_ASSERT(PARTITION_LEVEL_TWO == calc_part_info->part_level_); rt_expr.eval_func_ = ObExprCalcPartitionBase::calc_partition_level_two; @@ -247,6 +381,489 @@ int ObExprCalcPartitionBase::calc_partition_level_one(const ObExpr &expr, return ret; } +template +static int inner_fast_calc_hash_partition_level_one_vector(ArgVec *vec, + const int64_t row_idx, + const int64_t part_num, + ObPartition * const* part_array, + ObPartition *&partition, + GetPayloadFunc get_payload_func) +{ + int ret = OB_SUCCESS; + int64_t part_idx = OB_INVALID_INDEX; + int64_t val = 0; + if (OB_UNLIKELY(vec->is_null(row_idx))) { + val = 0; + } else { + val = (get_payload_func)(vec->get_payload(row_idx)); + if (OB_UNLIKELY(INT64_MIN == val)) { + val = INT64_MAX; + } else { + val = val < 0 ? -val : val; + } + } + if (OB_SUCC(ret)) { + part_idx = val % part_num; + if (OB_SUCC(ret) && OB_ISNULL(partition = part_array[part_idx])) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("partition is null", K(ret), K(part_idx)); + } + } + return ret; +} + +template +static int inner_fast_calc_key_partition_level_one_vector(ArgVec *vec, + const int64_t row_idx, + const int64_t part_num, + ObPartition * const* part_array, + ObPartition *&partition) +{ + int ret = OB_SUCCESS; + int64_t part_idx = OB_INVALID_INDEX; + int64_t val = 0; + if (OB_UNLIKELY(vec->is_null(row_idx))) { + val = 0; + } else { + val = *reinterpret_cast(vec->get_payload(row_idx)); + if (OB_UNLIKELY(val < 0)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("val is invalid", KR(ret), K(val), K(part_num)); + } + } + if (OB_SUCC(ret)) { + part_idx = val % part_num; + if (OB_SUCC(ret) && OB_ISNULL(partition = part_array[part_idx])) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("partition is null", K(ret), K(part_idx)); + } + } + return ret; +} + +template +static int inner_fast_calc_range_partition_level_one_vector(ArgVec *vec, + const int64_t row_idx, + const int64_t part_num, + ObPartition * const* part_array, + ObPartition *&partition, + const ObExprCalcPartitionBase::ObExprCalcPartCtx *calc_part_ctx) +{ + int ret = OB_SUCCESS; + ObObj part_val_obj; + const char *payload = NULL; + ObLength len = 0; + bool is_null = false; + vec->get_payload(row_idx, is_null, payload, len); + ObDatum datum(payload, len, is_null); + + ObFixedArray::const_iterator upper_res = + std::upper_bound(calc_part_ctx->range_partitions_.begin(), + calc_part_ctx->range_partitions_.end(), + datum, + calc_part_ctx->part_cmp_); + if (OB_FAIL(calc_part_ctx->part_cmp_.ret_)) { + LOG_WARN("partition_cmp failed", K(calc_part_ctx->part_cmp_.ret_)); + } else { + int64_t part_idx = upper_res - calc_part_ctx->range_partitions_.begin(); + if (OB_UNLIKELY(part_idx < 0 || part_idx >= part_num)) { + partition = nullptr; + } else if (OB_ISNULL(partition = part_array[part_idx])) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("partition is null", KR(ret)); + } + } + return ret; +} + +template +static int inner_fast_calc_list_partition_level_one_vector(ArgVec *vec, + const int64_t row_idx, + const int64_t part_num, + ObPartition * const* part_array, + ObPartition *&partition, + const ObExpr *part_expr, + const ObExprCalcPartitionBase::ObExprCalcPartCtx *calc_part_ctx) +{ + int ret = OB_SUCCESS; + ObObj part_val_obj; + const char *payload = NULL; + ObLength len = 0; + bool is_null = false; + vec->get_payload(row_idx, is_null, payload, len); + ObDatum datum(payload, len, is_null); + PartValKey tmp_row(datum, part_expr->basic_funcs_->murmur_hash_v2_, + part_expr->basic_funcs_->null_first_cmp_); + int64_t part_idx = OB_INVALID_INDEX; + if (OB_FAIL(calc_part_ctx->list_part_map_.get_refactored(tmp_row, part_idx))) { + if (ret == OB_HASH_NOT_EXIST) { + ret = OB_SUCCESS; + part_idx = calc_part_ctx->default_list_part_idx_; + } + } + if (OB_SUCC(ret)) { + if (OB_UNLIKELY(OB_INVALID_INDEX == part_idx)) { + partition = nullptr; + } else if (OB_ISNULL(partition = part_array[part_idx])) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("partition is null", KR(ret), K(part_idx)); + } + } + return ret; +} + +template +static int inner_fast_calc_partition_level_one_vector(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound, + const share::schema::ObTableSchema *table_schema) +{ + int ret = OB_SUCCESS; + const ObExpr *part_expr = expr.args_[0]; + ObBitVector &eval_flags = expr.get_evaluated_flags(ctx); + ArgVec *vec = static_cast(part_expr->get_vector(ctx)); + ResVec *res_vec = static_cast(expr.get_vector(ctx)); + const int64_t part_num = table_schema->get_partition_num(); + ObPartition * const* part_array = table_schema->get_part_array(); + ObExprCalcPartitionBase::ObExprCalcPartCtx *calc_part_ctx = NULL; + if (OB_UNLIKELY(OB_ISNULL(part_array) || part_num <= 0)) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("partition_array is null or partition_num is invalid", + KR(ret), KP(part_array), K(part_num)); + } + if (OB_SUCC(ret) && (Type == ObExprCalcPartitionBase::PartType::RANGE || + Type == ObExprCalcPartitionBase::PartType::LIST)) { + uint64_t calc_part_ctx_id = static_cast(expr.expr_ctx_id_); + if (OB_ISNULL(calc_part_ctx = static_cast( + ctx.exec_ctx_.get_expr_op_ctx(calc_part_ctx_id))) + && OB_FAIL(ctx.exec_ctx_.create_expr_op_ctx(calc_part_ctx_id, calc_part_ctx))) { + LOG_WARN("failed to create operator ctx", K(ret)); + } else if (calc_part_ctx->inited_) { + // base info for calc range/list partition inited already + } else if (Type == ObExprCalcPartitionBase::PartType::RANGE) { + if (OB_FAIL(calc_part_ctx->init_calc_range_partition_base_info(*table_schema, + *part_expr, ctx.exec_ctx_.get_allocator()))) { + LOG_WARN("Fail to init range partition base info", K(ret)); + } else { + calc_part_ctx->inited_ = true; + } + } else { // LIST + if (OB_FAIL(calc_part_ctx->init_calc_list_partition_base_info(*table_schema, + *part_expr, ctx.exec_ctx_.get_allocator()))) { + LOG_WARN("Fail to init list partition base info", K(ret)); + } else { + calc_part_ctx->inited_ = true; + } + } + } + for (int64_t row_idx = bound.start(); row_idx < bound.end() && OB_SUCC(ret); ++row_idx) { + if (skip.at(row_idx) || eval_flags.at(row_idx)) { + continue; + } + ObPartition *partition = NULL; + if (Type == ObExprCalcPartitionBase::PartType::HASH) { + ret = inner_fast_calc_hash_partition_level_one_vector( + vec, row_idx, part_num, part_array, partition, (GetPayloadFunc)(expr.inner_functions_[0])); + } else if(Type == ObExprCalcPartitionBase::PartType::KEY) { + ret = inner_fast_calc_key_partition_level_one_vector( + vec, row_idx, part_num, part_array, partition); + } else if (Type == ObExprCalcPartitionBase::PartType::RANGE) { + ret = inner_fast_calc_range_partition_level_one_vector( + vec, row_idx, part_num, part_array, partition, calc_part_ctx); + } else if (Type == ObExprCalcPartitionBase::PartType::LIST) { + ret = inner_fast_calc_list_partition_level_one_vector( + vec, row_idx, part_num, part_array, partition, part_expr, calc_part_ctx); + } else { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected part_type", K(Type), K(ret)); + } + if (OB_SUCC(ret)) { + // Fill in the result + if (CalcIdType == CALC_TABLET_ID) { + if (OB_NOT_NULL(partition)) { + res_vec->set_int(row_idx, partition->get_tablet_id().id()); + } else { + res_vec->set_int(row_idx, ObTabletID::INVALID_TABLET_ID); + } + eval_flags.set(row_idx); + } else if (CalcIdType == CALC_PARTITION_ID) { + if (OB_NOT_NULL(partition)) { + res_vec->set_int(row_idx, partition->get_part_id()); + } else { + res_vec->set_int(row_idx, OB_INVALID_ID); + } + eval_flags.set(row_idx); + } else { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected calc_id_type", K(CalcIdType), K(ret)); + } + } + } + return ret; +} + +#define PART_DISPATCH_VECTOR_IN_ARG_FORMAT(func_name, part_type, calc_id_type, res_vec) \ +if (arg_format == VEC_FIXED) { \ + ret = func_name( \ + expr, ctx, skip, bound, table_schema); \ +} else if (arg_format == VEC_UNIFORM) { \ + ret = func_name, res_vec, part_type, calc_id_type>( \ + expr, ctx, skip, bound, table_schema); \ +} else if (arg_format == VEC_DISCRETE) { \ + ret = func_name( \ + expr, ctx, skip, bound, table_schema); \ +} else if (arg_format == VEC_CONTINUOUS) { \ + ret = func_name( \ + expr, ctx, skip, bound, table_schema); \ +} else if (arg_format == VEC_UNIFORM_CONST) { \ + ret = func_name, res_vec, part_type, calc_id_type>( \ + expr, ctx, skip, bound, table_schema); \ +} else { \ + ret = func_name( \ + expr, ctx, skip, bound, table_schema); \ +} + +#define PART_DISPATCH_VECTOR_IN_RES_FORMAT(func_name, part_type, calc_id_type) \ +if (res_format == VEC_FIXED) { \ + PART_DISPATCH_VECTOR_IN_ARG_FORMAT(func_name, part_type, calc_id_type, ObFixedLengthBase); \ +} else if (res_format == VEC_UNIFORM) { \ + PART_DISPATCH_VECTOR_IN_ARG_FORMAT(func_name, part_type, calc_id_type, ObUniformFormat); \ +} else if (res_format == VEC_UNIFORM_CONST) { \ + PART_DISPATCH_VECTOR_IN_ARG_FORMAT(func_name, part_type, calc_id_type, ObUniformFormat); \ +} else { \ + PART_DISPATCH_VECTOR_IN_ARG_FORMAT(func_name, part_type, calc_id_type, ObVectorBase); \ +} + +#define PART_DISPATCH_VECTOR_IN_CALC_ID_TYPE(func_name, part_type) \ +if (calc_part_info->calc_id_type_ == CALC_TABLET_ID) { \ + PART_DISPATCH_VECTOR_IN_RES_FORMAT(func_name, part_type, CALC_TABLET_ID); \ +} else if (calc_part_info->calc_id_type_ == CALC_PARTITION_ID) { \ + PART_DISPATCH_VECTOR_IN_RES_FORMAT(func_name, part_type, CALC_PARTITION_ID); \ +} else { \ + ret = OB_ERR_UNEXPECTED; \ + LOG_WARN("unexpected calc id type", K(ret), K(calc_part_info->calc_id_type_)); \ +} + +#define PART_DISPATCH_VECTOR_IN_PART_TYPE(func_name) \ +if (table_schema->is_hash_part()) { \ + PART_DISPATCH_VECTOR_IN_CALC_ID_TYPE(func_name, ObExprCalcPartitionBase::PartType::HASH); \ +} else if (table_schema->is_key_part()) { \ + PART_DISPATCH_VECTOR_IN_CALC_ID_TYPE(func_name, ObExprCalcPartitionBase::PartType::KEY); \ +} else if (table_schema->is_range_part()) { \ + PART_DISPATCH_VECTOR_IN_CALC_ID_TYPE(func_name, ObExprCalcPartitionBase::PartType::RANGE); \ +} else if (table_schema->is_list_part()) { \ + PART_DISPATCH_VECTOR_IN_CALC_ID_TYPE(func_name, ObExprCalcPartitionBase::PartType::LIST); \ +} else { \ + ret = OB_ERR_UNEXPECTED; \ + LOG_WARN("unexpected part type", K(ret)); \ +} + +#define PART_DISPATCH_VECTOR_IN_PART_MODE(func_name) \ + PART_DISPATCH_VECTOR_IN_PART_TYPE(func_name); + +int ObExprCalcPartitionBase::fast_calc_partition_level_one_vector(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + int ret = OB_SUCCESS; + if (expr.expr_ctx_id_ == ObExpr::INVALID_EXP_CTX_ID) { + ret = OB_VERSION_NOT_MATCH; + LOG_WARN("partition expression runtime context is missing from the current plan format", + K(ret), K(expr.expr_ctx_id_)); + } else { + CalcPartitionBaseInfo *calc_part_info = reinterpret_cast(expr.extra_info_); + ObDASTabletMapper tablet_mapper; + const share::schema::ObTableSchema *table_schema = nullptr; + const ObExpr *part_expr = expr.args_[0]; + if (OB_FAIL(ctx.exec_ctx_.get_das_ctx().get_das_tablet_mapper(calc_part_info->ref_table_id_, + tablet_mapper, + &calc_part_info->related_table_ids_))) { + LOG_WARN("get das tablet mapper failed", K(ret), K(calc_part_info)); + } else if (OB_ISNULL(table_schema = tablet_mapper.get_table_schema())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("table_schema is null.", K(ret)); + } else if (OB_FAIL(part_expr->eval_vector(ctx, skip, bound))) { + LOG_WARN("calc part expr failed", K(ret)); + } else { + VectorFormat res_format = expr.get_format(ctx); + VectorFormat arg_format = expr.args_[0]->get_format(ctx); + PART_DISPATCH_VECTOR_IN_PART_MODE(inner_fast_calc_partition_level_one_vector); + } + } + return ret; +} + +int ObExprCalcPartitionBase::calc_partition_level_one_vector(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + int ret = OB_SUCCESS; + CalcPartitionBaseInfo *calc_part_info = reinterpret_cast(expr.extra_info_); + ObPartitionLevel part_level = PARTITION_LEVEL_ONE; + ObPartitionFuncType part_type = calc_part_info->part_type_; + ObDASTabletMapper tablet_mapper; + const ObExpr *part_expr = expr.args_[0]; + if (OB_FAIL(ctx.exec_ctx_.get_das_ctx().get_das_tablet_mapper(calc_part_info->ref_table_id_, + tablet_mapper, + &calc_part_info->related_table_ids_))) { + LOG_WARN("get das tablet mapper failed", K(ret), K(calc_part_info)); + } else if (T_OP_ROW == part_expr->type_) { + for (int64_t i = 0; OB_SUCC(ret) && i < part_expr->arg_cnt_; i++) { + if (OB_FAIL(part_expr->args_[i]->eval_vector(ctx, skip, bound))) { + LOG_WARN("fail to eval child of part expr", K(ret), K(i), KPC(part_expr)); + } + } + ObNewRow row; + ObEvalCtx::TempAllocGuard alloc_guard(ctx); + ObIAllocator &allocator = alloc_guard.get_allocator(); + ObSEArray part_child_vecs; + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(row.cells_ = static_cast( + allocator.alloc(sizeof(ObObj) * part_expr->arg_cnt_)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("allocate memory failed", K(ret)); + } else { + row.count_ = part_expr->arg_cnt_; + row.projector_size_ = 0; + row.projector_ = NULL; + } + for (int64_t i = 0; i < part_expr->arg_cnt_ && OB_SUCC(ret); i++) { + ObIVector *vec = part_expr->args_[i]->get_vector(ctx); + if (OB_FAIL(part_child_vecs.push_back(vec))) { + LOG_WARN("push back failed", K(ret)); + } + } + ObIVector *res_vec = expr.get_vector(ctx); + res_vec->reset_has_null(); + ObBitVector &eval_flags = expr.get_evaluated_flags(ctx); + for (int64_t row_idx = bound.start(); row_idx < bound.end() && OB_SUCC(ret); row_idx++) { + if (skip.contain(row_idx) || eval_flags.at(row_idx)) { + continue; + } + ObTabletID tablet_id(ObTabletID::INVALID_TABLET_ID); + ObObjectID partition_id = OB_INVALID_ID; + for (int64_t i = 0; i < part_expr->arg_cnt_ && OB_SUCC(ret); i++) { + new (&row.cells_[i]) ObObj(); + ObIVector *vec = part_child_vecs.at(i); + bool is_null = vec->is_null(row_idx); + const char *payload = NULL; + ObLength len = 0; + vec->get_payload(row_idx, payload, len); + ObDatum datum(payload, len, is_null); + if (OB_FAIL(datum.to_obj(row.cells_[i], part_expr->args_[i]->obj_meta_, + part_expr->args_[i]->obj_datum_map_))) { + LOG_WARN("to obj failed", K(ret)); + } + } + if (OB_FAIL(ret)) { + } else if (OB_FAIL(tablet_mapper.get_tablet_and_object_id(part_level, OB_INVALID_ID, row, + tablet_id, partition_id))) { + LOG_WARN("Failed to get part id", K(ret), K(row)); + } else { + res_vec->unset_null(row_idx); + eval_flags.set(row_idx); + if (CALC_TABLET_ID == calc_part_info->calc_id_type_) { + res_vec->set_int(row_idx, tablet_id.id()); + } else if (CALC_PARTITION_ID == calc_part_info->calc_id_type_) { + res_vec->set_int(row_idx, partition_id); + } else if (CALC_PARTITION_TABLET_ID == calc_part_info->calc_id_type_) { + uint64_t *payload = reinterpret_cast(const_cast(res_vec->get_payload(row_idx))); + payload[0] = partition_id; + payload[1] = tablet_id.id(); + res_vec->set_payload_shallow(row_idx, payload, sizeof(uint64_t) * 2); + } + } + } + } else { + if (OB_FAIL(part_expr->eval_vector(ctx, skip, bound))) { + LOG_WARN("calc part expr failed", K(ret)); + } else { + ObIVector *vec = part_expr->get_vector(ctx); + ObIVector *res_vec = expr.get_vector(ctx); + res_vec->reset_has_null(); + ObBitVector &eval_flags = expr.get_evaluated_flags(ctx); + for (int64_t row_idx = bound.start(); row_idx < bound.end() && OB_SUCC(ret); row_idx++) { + if (skip.contain(row_idx) || eval_flags.at(row_idx)) { + continue; + } + ObObj func_value; + ObObj result; + const char *payload = NULL; + ObLength len = 0; + vec->get_payload(row_idx, payload, len); + ObDatum datum(payload, len, vec->is_null(row_idx)); + if (OB_FAIL(datum.to_obj(func_value, + part_expr->obj_meta_, + part_expr->obj_datum_map_))) { + LOG_WARN("convert datum to obj failed", K(ret)); + } else if (func_value.is_outrow_lob()) { + ret = OB_NOT_SUPPORTED; + LOG_USER_ERROR(OB_NOT_SUPPORTED, "outrow lob as partition key"); + LOG_WARN("outrow lob as partition key is not supported", K(ret)); + } else { + result = func_value; + if (PARTITION_FUNC_TYPE_HASH == part_type) { + if (OB_FAIL(ObExprFuncPartHash::calc_value_for_mysql(func_value, result, + func_value.get_type()))) { + LOG_WARN("Failed to calc hash value mysql mode", K(ret)); + } + } + if (OB_SUCC(ret)) { + ObSEArray tablet_ids; + ObSEArray partition_ids; + // Here you can also uniformly use the above ObNewRow interface, and put calc_value_for_mysql + // Use datum to implement, temporarily keep consistent with the previous method + ObRowkey rowkey(const_cast(&result), 1); + ObNewRange range; + if (OB_FAIL(range.build_range(calc_part_info->ref_table_id_, rowkey))) { + LOG_WARN("Failed to build range", K(ret)); + } else if (OB_FAIL(tablet_mapper.get_tablet_and_object_id( + part_level, + OB_INVALID_ID, + range, + tablet_ids, + partition_ids))) { + LOG_WARN("Failed to get part id", K(ret)); + } else if (partition_ids.count() != 0 && partition_ids.count() != 1) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("invalid partition cnt", K(ret), K(part_expr), K(partition_ids), K(range), K(rowkey)); + } else { + ObTabletID tablet_id(ObTabletID::INVALID_TABLET_ID); + ObObjectID partition_id = OB_INVALID_ID; + if (OB_SUCC(ret) && 1 == partition_ids.count()) { + partition_id = partition_ids.at(0); + if (1 == tablet_ids.count()) { + tablet_id = tablet_ids.at(0); + } + } + if (OB_SUCC(ret)) { + res_vec->unset_null(row_idx); + eval_flags.set(row_idx); + if (CALC_TABLET_ID == calc_part_info->calc_id_type_) { + res_vec->set_int(row_idx, tablet_id.id()); + } else if (CALC_PARTITION_ID == calc_part_info->calc_id_type_) { + res_vec->set_int(row_idx, partition_id); + } else if (CALC_PARTITION_TABLET_ID == calc_part_info->calc_id_type_) { + uint64_t *payload = reinterpret_cast(const_cast(res_vec->get_payload(row_idx))); + payload[0] = partition_id; + payload[1] = tablet_id.id(); + res_vec->set_payload_shallow(row_idx, payload, sizeof(uint64_t) * 2); + } + } + } + } + } + } + } + } + return ret; +} + int ObExprCalcPartitionBase::calc_partition_level_two(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &res_datum) @@ -659,6 +1276,7 @@ int PartValKey::hash(uint64_t &hash_val, uint64_t seed) const } bool RangePartCmp::operator()(const ObDatum &l, const RangePartition &r) { + int ret = OB_SUCCESS; int cmp_ret = 0; bool res = false; @@ -668,7 +1286,10 @@ bool RangePartCmp::operator()(const ObDatum &l, const RangePartition &r) { // In part calc, MySQL treats null values as infinitely small. res = true; } else { - ret_ = cmp_func_(l, r.datum_, cmp_ret); + ret_ = (row_cmp_func_)(part_expr_obj_meta_, + part_array_obj_meta_, + (const void *)l.ptr_, l.len_, + (const void *)r.datum_.ptr_, r.datum_.len_, cmp_ret); res = cmp_ret < 0; } return res; @@ -701,17 +1322,15 @@ int ObExprCalcPartitionBase::ObExprCalcPartCtx::init_calc_range_partition_base_i } } if (OB_SUCC(ret)) { - if (OB_ISNULL(part_cmp_.cmp_func_ = ObExprCmpFuncsHelper::get_datum_expr_cmp_func( - part_expr.datum_meta_.type_, - part_expr.datum_meta_.type_, - part_expr.datum_meta_.scale_, - part_expr.datum_meta_.scale_, - part_expr.datum_meta_.precision_, - part_expr.datum_meta_.precision_, - part_expr.datum_meta_.cs_type_, - part_expr.obj_meta_.has_lob_header()))) { + if (OB_ISNULL(part_cmp_.row_cmp_func_ = VectorCmpExprFuncsHelper::get_row_cmp_func( + part_expr.datum_meta_, + part_expr.datum_meta_))) { ret = OB_ERR_UNEXPECTED; - LOG_WARN("cmp_func is null", K(ret), K(part_expr.datum_meta_)); + LOG_WARN("row_cmp_func is null", K(ret), K(part_expr.datum_meta_)); + } else { + part_cmp_.part_expr_obj_meta_ = part_expr.obj_meta_; + part_cmp_.part_array_obj_meta_ = + part_array[0]->get_high_bound_val().get_obj_ptr()->get_meta(); } } return ret; diff --git a/src/sql/engine/expr/ob_expr_calc_partition_id.h b/src/sql/engine/expr/ob_expr_calc_partition_id.h index 5654e28dc..89c5c1172 100644 --- a/src/sql/engine/expr/ob_expr_calc_partition_id.h +++ b/src/sql/engine/expr/ob_expr_calc_partition_id.h @@ -59,12 +59,15 @@ struct RangePartition { struct RangePartCmp { public: - RangePartCmp() : cmp_func_(nullptr), ret_(OB_SUCCESS) {} + RangePartCmp() : row_cmp_func_(nullptr), ret_(OB_SUCCESS), + part_expr_obj_meta_(), part_array_obj_meta_() {} ~RangePartCmp() = default; bool operator()(const ObDatum &l, const RangePartition &r); - ObExprCmpFuncType cmp_func_; + sql::RowCmpFunc row_cmp_func_; int ret_; + common::ObObjMeta part_expr_obj_meta_; + common::ObObjMeta part_array_obj_meta_; }; struct PartValKey @@ -131,6 +134,16 @@ class ObExprCalcPartitionBase : public ObFuncExprOperator { public: static const ObObjectID NONE_PARTITION_ID = OB_INVALID_ID; + enum OptRouteType { + OPT_ROUTE_NONE, + OPT_ROUTE_HASH_ONE + }; + enum class PartType { + HASH, + KEY, + RANGE, + LIST + }; class ObExprCalcPartCtx : public ObExprOperatorCtx { @@ -193,6 +206,12 @@ class ObExprCalcPartitionBase : public ObFuncExprOperator static int calc_partition_level_one(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &res_datum); + static int calc_partition_level_one_vector(const ObExpr &expr, ObEvalCtx &ctx, + const ObBitVector &skip, const EvalBound &bound); + static int fast_calc_partition_level_one_vector(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound); static int calc_partition_level_two(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &res_datum); diff --git a/src/sql/engine/expr/ob_expr_cast.cpp b/src/sql/engine/expr/ob_expr_cast.cpp index ac46e9376..a2e7700e5 100644 --- a/src/sql/engine/expr/ob_expr_cast.cpp +++ b/src/sql/engine/expr/ob_expr_cast.cpp @@ -16,11 +16,11 @@ #define USING_LOG_PREFIX SQL_ENG #include "sql/engine/expr/ob_expr_cast.h" -#include "sql/engine/expr/ob_datum_cast.h" #include "share/geo/ob_geometry_cast.h" #include "sql/engine/expr/ob_expr_subquery_ref.h" #include "sql/engine/subquery/ob_subplan_filter_op.h" #include "pl/ob_pl_resolver.h" +#include "sql/engine/expr/vector_cast/vector_cast.h" // from sql_parser_base.h #define DEFAULT_STR_LENGTH -1 @@ -746,6 +746,19 @@ int ObExprCast::cg_expr(ObExprCGCtx &op_cg_ctx, LOG_WARN("choose_cast_func failed", K(ret)); } } + if (OB_SUCC(ret)) { + int tmp_ret = OB_E(EventTable::EN_ENABLE_VECTOR_CAST) OB_SUCCESS; + rt_expr.eval_vector_func_ = + tmp_ret == OB_SUCCESS ? + VectorCasterUtil::get_vector_cast(rt_expr.args_[0]->get_vec_value_tc(), + rt_expr.get_vec_value_tc(), just_eval_arg, + rt_expr.eval_func_, cast_mode) : + nullptr; + // Some VEC_TC_XXXX classes still have some types not yet implemented for vectorization, and they still use the non-vectorized interface + if (ObTinyTextType == in_type || ObTinyTextType == out_type) { + rt_expr.eval_vector_func_ = nullptr; + } + } } if (OB_SUCC(ret)) { rt_expr.extra_ = cast_mode; diff --git a/src/sql/engine/expr/ob_expr_is.cpp b/src/sql/engine/expr/ob_expr_is.cpp index 22dcd1e2d..fa280aab5 100644 --- a/src/sql/engine/expr/ob_expr_is.cpp +++ b/src/sql/engine/expr/ob_expr_is.cpp @@ -211,14 +211,17 @@ int ObExprIs::cg_expr(ObExprCGCtx &op_cg_ctx, const ObRawExpr &raw_expr, ObExpr } else if(FALSE_IT(param1_type = rt_expr.args_[0]->datum_meta_.type_)) { } else if (param2->get_value().is_null()) { // c1 is null rt_expr.eval_func_ = ObExprIs::calc_is_null; + rt_expr.eval_vector_func_ = ObExprIs::calc_vector_is_null; } else if (param2->get_value().is_true()) { if (OB_FAIL(cg_result_type_class(param1_type, rt_expr.eval_func_, false, true))) { LOG_WARN("is expr got unexpected type param", K(ret)); } + rt_expr.eval_vector_func_ = ObExprIs::calc_vector_is_true; } else if (param2->get_value().is_false()) { if (OB_FAIL(cg_result_type_class(param1_type, rt_expr.eval_func_, false, false))) { LOG_WARN("is expr got unexpected type param", K(ret)); } + rt_expr.eval_vector_func_ = ObExprIs::calc_vector_is_false; } else if (ObDoubleType == param2->get_value().get_type()) { if (isnan(param2->get_value().get_double())) { rt_expr.eval_func_ = ObExprIs::calc_is_nan; @@ -248,14 +251,17 @@ int ObExprIsNot::cg_expr(ObExprCGCtx &op_cg_ctx, const ObRawExpr &raw_expr, ObEx } else if (param2->get_value().is_null()) { // c1 is null rt_expr.eval_func_ = ObExprIsNot::calc_is_not_null; rt_expr.eval_batch_func_ = ObExprIsNot::calc_batch_is_not_null; + rt_expr.eval_vector_func_ = ObExprIsNot::calc_vector_is_not_null; } else if (param2->get_value().is_true()) { if (OB_FAIL(cg_result_type_class(param1_type, rt_expr.eval_func_, true, true))) { LOG_WARN("is expr got unexpected type param", K(ret)); } + rt_expr.eval_vector_func_ = ObExprIsNot::calc_vector_is_not_true; } else if (param2->get_value().is_false()) { if (OB_FAIL(cg_result_type_class(param1_type, rt_expr.eval_func_, true, false))) { LOG_WARN("is expr got unexpected type param", K(ret)); } + rt_expr.eval_vector_func_ = ObExprIsNot::calc_vector_is_not_false; } else if (ObDoubleType == param2->get_value().get_type()) { if (isnan(param2->get_value().get_double())) { rt_expr.eval_func_ = ObExprIsNot::calc_is_not_nan; @@ -283,6 +289,261 @@ int ObExprIs::calc_is_null(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_dat return ret; } +template +static int eval_vector_is_null(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + int ret = OB_SUCCESS; + ArgVec *arg_vec = static_cast(expr.args_[0]->get_vector(ctx)); + ResVec *res_vec = static_cast(expr.get_vector(ctx)); + ObBitVector &eval_flags = expr.get_evaluated_flags(ctx); + constexpr bool isFixedLenRes = std::is_same::value; + int64_t *data_ptr = isFixedLenRes ? + const_cast(reinterpret_cast(res_vec->get_payload(0))) : + nullptr; + if (isFixedLenRes && !arg_vec->has_null()) { + for (int64_t idx = bound.start(); idx < bound.end(); ++idx) { + data_ptr[idx] = static_cast(!ExprIs); + } + } else if (bound.get_all_rows_active()) { + for (int64_t idx = bound.start(); idx < bound.end(); ++idx) { + bool arg_null = arg_vec->is_null(idx); + arg_null = ExprIs ? arg_null : !arg_null; + if (isFixedLenRes) { + data_ptr[idx] = static_cast(arg_null); + } else { + res_vec->set_int(idx, static_cast(arg_null)); + } + } + eval_flags.set_all(bound.start(), bound.end()); + } else { + for (int64_t idx = bound.start(); idx < bound.end(); ++idx) { + if (skip.at(idx) || eval_flags.at(idx)) { + continue; + } + bool arg_null = arg_vec->is_null(idx); + arg_null = ExprIs ? arg_null : !arg_null; + if (isFixedLenRes) { + data_ptr[idx] = static_cast(arg_null); + } else { + res_vec->set_int(idx, static_cast(arg_null)); + } + eval_flags.set(idx); + } + } + return ret; +} + +template +static inline int def_calc_vector_is_null(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + int ret = OB_SUCCESS; + if (OB_FAIL(expr.args_[0]->eval_vector(ctx, skip, bound))) { + LOG_WARN("fail to eval is/is_not null param", K(ret)); + } else { + VectorFormat res_format = expr.get_format(ctx); + // The 'res_format' is expected to be Type 'IntegerFixedVec' under the regular circumstances. + // So a condition is added to optimize performance accordingly. + if (VEC_FIXED == res_format) { + VectorFormat arg_format = expr.args_[0]->get_format(ctx); + if (VEC_FIXED == arg_format || VEC_DISCRETE == arg_format || VEC_CONTINUOUS == arg_format) { + ret = eval_vector_is_null(expr, ctx, skip, bound); + } else if (VEC_UNIFORM == arg_format) { + ret = eval_vector_is_null(expr, ctx, skip, bound); + } else { + ret = eval_vector_is_null(expr, ctx, skip, bound); + } + } else { + ret = eval_vector_is_null(expr, ctx, skip, bound); + } + } + return ret; +} + +int ObExprIs::calc_vector_is_null(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + return def_calc_vector_is_null(expr, ctx, skip, bound); +} + +template +static int eval_vector_is_true(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound, + DataType (ArgVec::*get_data)(int64_t) const) +{ + int ret = OB_SUCCESS; + ArgVec *arg_vec = static_cast(expr.args_[0]->get_vector(ctx)); + ResVec *res_vec = static_cast(expr.get_vector(ctx)); + ObBitVector &eval_flags = expr.get_evaluated_flags(ctx); + constexpr bool isFixedLenRes = std::is_same::value; + int64_t *data_ptr = isFixedLenRes ? + const_cast(reinterpret_cast(res_vec->get_payload(0))) : + nullptr; + if (bound.get_all_rows_active()) { + for (int64_t idx = bound.start(); idx < bound.end(); ++idx) { + bool arg_is_true = false; + if (arg_vec->is_null(idx)) { + arg_is_true = !ExprIs; + } else { + arg_is_true = !ObExprIsBase::is_zero((arg_vec->*get_data)(idx), arg_vec->get_length(idx)); + arg_is_true = ExprIs ? arg_is_true : !arg_is_true; + arg_is_true = IsTrue ? arg_is_true : !arg_is_true; + } + if (isFixedLenRes) { + data_ptr[idx] = static_cast(arg_is_true); + } else { + res_vec->set_int(idx, static_cast(arg_is_true)); + } + } + eval_flags.set_all(bound.start(), bound.end()); + } else { + for (int64_t idx = bound.start(); idx < bound.end(); ++idx) { + if (skip.at(idx) || eval_flags.at(idx)) { + continue; + } + bool arg_is_true = false; + if (arg_vec->is_null(idx)) { + arg_is_true = !ExprIs; + } else { + arg_is_true = !ObExprIsBase::is_zero((arg_vec->*get_data)(idx), arg_vec->get_length(idx)); + arg_is_true = ExprIs ? arg_is_true : !arg_is_true; + arg_is_true = IsTrue ? arg_is_true : !arg_is_true; + } + if (isFixedLenRes) { + data_ptr[idx] = static_cast(arg_is_true); + } else { + res_vec->set_int(idx, static_cast(arg_is_true)); + } + eval_flags.set(idx); + } + } + return ret; +} + +template +static inline int def_eval_vector_is_true(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound, + DataType (ObVectorBase::*get_data)(int64_t) const) +{ + int ret = OB_SUCCESS; + VectorFormat res_format = expr.get_format(ctx); + // The 'res_format' is expected to be Type 'IntegerFixedVec' under the regular circumstances. + // So a condition is added to optimize performance accordingly. + if (VEC_FIXED == res_format) { + VectorFormat arg_format = expr.args_[0]->get_format(ctx); + if (VEC_FIXED == arg_format || VEC_DISCRETE == arg_format || VEC_CONTINUOUS == arg_format) { + ret = eval_vector_is_true + (expr, ctx, skip, bound, get_data); + } else if (VEC_UNIFORM == arg_format) { + ret = eval_vector_is_true + (expr, ctx, skip, bound, get_data); + } else { + ret = eval_vector_is_true + (expr, ctx, skip, bound, get_data); + } + } else { + ret = eval_vector_is_true + (expr, ctx, skip, bound, get_data); + } + return ret; +} + +template +static inline int def_calc_vector_is_true(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + int ret = OB_SUCCESS; + if (OB_FAIL(expr.args_[0]->eval_vector(ctx, skip, bound))) { + LOG_WARN("fail to eval is/isnot true/false param", K(ret)); + } else { + ObObjType data_type = expr.args_[0]->datum_meta_.type_; + VectorFormat arg_format = expr.args_[0]->get_format(ctx); + switch (data_type) { + case ObTinyIntType: + case ObSmallIntType: + case ObMediumIntType: + case ObInt32Type: + case ObIntType: + case ObUTinyIntType: + case ObUSmallIntType: + case ObUMediumIntType: + case ObUInt32Type: + case ObUInt64Type: + case ObBitType: { + ret = def_eval_vector_is_true + (expr, ctx, skip, bound, &ObVectorBase::get_int); + break; + } + case ObFloatType: + case ObUFloatType: { + ret = def_eval_vector_is_true + (expr, ctx, skip, bound, &ObVectorBase::get_float); + break; + } + case ObDoubleType: + case ObUDoubleType: { + ret = def_eval_vector_is_true + (expr, ctx, skip, bound, &ObVectorBase::get_double); + break; + } + case ObDecimalIntType: { + ret = def_eval_vector_is_true + (expr, ctx, skip, bound, &ObVectorBase::get_decimal_int); + break; + } + case ObJsonType: { + if (VEC_DISCRETE == arg_format) { + ret = def_eval_vector_is_true + (expr, ctx, skip, bound, &ObVectorBase::get_string); + } else { + ret = def_eval_vector_is_true + (expr, ctx, skip, bound, &ObVectorBase::get_string); + } + break; + } + default: + if (VEC_DISCRETE == arg_format) { + ret = def_eval_vector_is_true + (expr, ctx, skip, bound, &ObVectorBase::get_number); + } else { + ret = def_eval_vector_is_true + (expr, ctx, skip, bound, &ObVectorBase::get_number); + } + break; + } //switch + } + return ret; +} + +int ObExprIs::calc_vector_is_true(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + return def_calc_vector_is_true(expr, ctx, skip, bound); +} + +int ObExprIs::calc_vector_is_false(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + return def_calc_vector_is_true(expr, ctx, skip, bound); +} + int ObExprIs::calc_is_infinite(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_datum) { int ret = OB_SUCCESS; @@ -359,6 +620,30 @@ int ObExprIsNot::calc_batch_is_not_null(const ObExpr &expr, ObEvalCtx &ctx, return ret; } +int ObExprIsNot::calc_vector_is_not_null(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + return def_calc_vector_is_null(expr, ctx, skip, bound); +} + +int ObExprIsNot::calc_vector_is_not_true(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + return def_calc_vector_is_true(expr, ctx, skip, bound); +} + +int ObExprIsNot::calc_vector_is_not_false(const ObExpr &expr, + ObEvalCtx &ctx, + const ObBitVector &skip, + const EvalBound &bound) +{ + return def_calc_vector_is_true(expr, ctx, skip, bound); +} + int ObExprIsNot::calc_is_not_infinite(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &expr_datum) { int ret = OB_SUCCESS; diff --git a/src/sql/engine/expr/ob_expr_operator.cpp b/src/sql/engine/expr/ob_expr_operator.cpp index 8450abb4c..d06256313 100644 --- a/src/sql/engine/expr/ob_expr_operator.cpp +++ b/src/sql/engine/expr/ob_expr_operator.cpp @@ -23,12 +23,12 @@ #include "sql/engine/expr/ob_expr_null_safe_equal.h" #include "sql/engine/subquery/ob_subplan_filter_op.h" #include "sql/engine/subquery/ob_subplan_filter_op.h" +#include "sql/engine/vector/expr_cmp_func.h" #include "sql/engine/expr/ob_expr_func_round.h" #include "sql/session/ob_sql_session_info.h" #include "common/object/ob_object.h" #include "rpc/obmysql/ob_mysql_util.h" -#include "share/ob_lob_access_utils.h" #include "sql/engine/expr/ob_expr_multiset.h" namespace oceanbase @@ -4624,6 +4624,8 @@ int ObBitwiseExprOperator::cg_bitwise_expr(ObExprCGCtx &expr_cg_ctx, const ObRaw if (2 == rt_expr.arg_cnt_) { rt_expr.eval_func_ = ObBitwiseExprOperator::calc_result2_mysql; + // The vector path chooses integer extraction by runtime datum metadata. + rt_expr.eval_vector_func_ = calc_bitwise_result2_mysql_vector; } else { // must be set in its cg_expr method // bit_neg and bit_count have their own calculation functions @@ -4633,6 +4635,303 @@ int ObBitwiseExprOperator::cg_bitwise_expr(ObExprCGCtx &expr_cg_ctx, const ObRaw return ret; } +int ObBitwiseExprOperator::calc_bitwise_result2_mysql_vector(VECTOR_EVAL_FUNC_ARG_DECL) +{ + int ret = OB_SUCCESS; + const BitOperator op = static_cast(expr.extra_); + ObCastMode cast_mode = CM_NONE; + const ObSQLSessionInfo *session = ctx.exec_ctx_.get_my_session(); + ObSolidifiedVarsGetter helper(expr, ctx, session); + ObSQLMode sql_mode = 0; + + if (OB_UNLIKELY(op < 0 || op >= BIT_MAX)) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("invalid argument", K(ret), K(op)); + } else if (OB_ISNULL(session)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("session is null", K(ret)); + } else if (OB_FAIL(helper.get_sql_mode(sql_mode))) { + LOG_WARN("get sql mode failed", K(ret)); + } else { + ObSQLUtils::get_default_cast_mode(false, 0, session->get_stmt_type(), session->is_ignore_stmt(), + sql_mode, cast_mode); + ObBitVector &tmp_skip = expr.get_pvt_skip(ctx); + bool skip_flag = false; + if (OB_FAIL(expr.args_[0]->eval_vector(ctx, skip, bound))) { + LOG_WARN("failed to eval vector result", K(ret), K(0)); + } else { + tmp_skip.deep_copy(skip, bound.start(), bound.end()); + VectorFormat left_format = expr.args_[0]->get_format(ctx); + ObIVector *param_vec = expr.args_[0]->get_vector(ctx); + if (left_format == VEC_DISCRETE || left_format == VEC_CONTINUOUS + || left_format == VEC_FIXED) { + ObBitmapNullVectorBase &cur_vec = *static_cast(param_vec); + if (cur_vec.has_null()) { + tmp_skip.bit_or(*cur_vec.get_nulls(), bound); + skip_flag = true; + } + } else if (left_format == VEC_UNIFORM) { + ObUniformFormat &cur_vec = *static_cast *>(param_vec); + for (int i = bound.start(); i < bound.end(); i++) { + if (!tmp_skip.at(i) && cur_vec.is_null(i)) { + tmp_skip.set(i); + skip_flag = true; + } + } + } else if (left_format == VEC_UNIFORM_CONST) { + ObUniformFormat &cur_vec = *static_cast *>(param_vec); + for (int i = bound.start(); i < bound.end(); i++) { + if (!tmp_skip.at(i) && cur_vec.is_null(i)) { + tmp_skip.set(i); + skip_flag = true; + } + } + } else { + ret = OB_ERR_UNEXPECTED; + SQL_LOG(WARN, "invalid param format", K(ret), K(left_format)); + } + } + if (OB_SUCC(ret)) { + if (!skip_flag && OB_FAIL(expr.args_[1]->eval_vector(ctx, tmp_skip, bound))) { + LOG_WARN("failed to eval vector result", K(ret), K(1)); + } else if (skip_flag + && OB_FAIL(expr.args_[1]->eval_vector( + ctx, tmp_skip, + EvalBound(bound.batch_size(), bound.start(), bound.end(), false)))) { + LOG_WARN("failed to eval vector result", K(ret), K(1)); + } else if (OB_FAIL(dispatch_calc_vector(VECTOR_EVAL_FUNC_ARG_LIST, cast_mode))) { + LOG_WARN("failed to dispatch eval vector and", K(ret), K(expr), K(ctx), K(bound)); + } + } + } + return ret; +} + +using Discrete = ObDiscreteFormat; +using Uniform = ObUniformFormat; + +// Current VEC_MAX_FORMAT = 6, which can be welled handled by 4 bits where 2 ^ 4 = 16 +#define CALC_FORMAT(res, l, r) ((int32_t)l + (((int32_t)r) << 4) + (((int32_t)res) << 8)) + +#define BITWISE_FORMAT_DISPATCH_BRANCH(RES, LEFT, RIGH) \ + case CALC_FORMAT(RES::FORMAT, LEFT::FORMAT, RIGH::FORMAT): { \ + ret = inner_calc_vector(VECTOR_EVAL_FUNC_ARG_LIST, cast_mode); \ + break; \ + } + +#define INNER_FIXED_CALC(left_type, right_type) \ + ret = inner_calc_vector, ObFixedLengthFormat, \ + ObFixedLengthFormat>(VECTOR_EVAL_FUNC_ARG_LIST, cast_mode); + +#define RIGHT_FIXED_DISCRETE_CALC(left_type) \ + ret = \ + inner_calc_vector, Discrete, ObFixedLengthFormat>( \ + VECTOR_EVAL_FUNC_ARG_LIST, cast_mode); + +#define RIGHT_FIXED_UNIFORM_CALC(left_type) \ + ret = inner_calc_vector, Uniform, ObFixedLengthFormat>( \ + VECTOR_EVAL_FUNC_ARG_LIST, cast_mode); + +#define LEFT_FIXED_DISCRETE_CALC(left_type) \ + ret = \ + inner_calc_vector, ObFixedLengthFormat, Discrete>( \ + VECTOR_EVAL_FUNC_ARG_LIST, cast_mode); + +#define LEFT_FIXED_UNIFORM_CALC(left_type) \ + ret = inner_calc_vector, ObFixedLengthFormat, Uniform>( \ + VECTOR_EVAL_FUNC_ARG_LIST, cast_mode); + +void ObBitwiseExprOperator::convert_tc_size(VecValueTypeClass vec_tc, int &len) +{ + switch (vec_tc) { + case (VEC_TC_INTEGER): { + len = sizeof(int64_t); + break; + } + case (VEC_TC_DEC_INT32): { + len = sizeof(int32_t); + break; + } + case (VEC_TC_DEC_INT64): { + len = sizeof(int64_t); + break; + } + case (VEC_TC_DEC_INT128): { + len = sizeof(int128_t); + break; + } + case (VEC_TC_DEC_INT256): { + len = sizeof(int256_t); + break; + } + case (VEC_TC_DEC_INT512): { + len = sizeof(int512_t); + break; + } + default: { + break; + } + } +} + +int ObBitwiseExprOperator::dispatch_calc_vector(VECTOR_EVAL_FUNC_ARG_DECL, ObCastMode cast_mode) +{ + int ret = OB_SUCCESS; + VectorFormat res_format = expr.get_format(ctx); + VectorFormat left_format = expr.args_[0]->get_format(ctx); + VectorFormat right_format = expr.args_[1]->get_format(ctx); + + const int64_t cond = CALC_FORMAT(res_format, left_format, right_format); + + const ObDatumMeta &left_meta = expr.args_[0]->datum_meta_; + const ObDatumMeta &right_meta = expr.args_[1]->datum_meta_; + + VecValueTypeClass left_tc = + get_vec_value_tc(left_meta.type_, left_meta.scale_, left_meta.precision_); + VecValueTypeClass right_tc = + get_vec_value_tc(right_meta.type_, right_meta.scale_, right_meta.precision_); + + int l_len = 0; + int r_len = 0; + + convert_tc_size(left_tc, l_len); + convert_tc_size(right_tc, r_len); + + if (res_format != VEC_FIXED) { + ret = inner_calc_vector(VECTOR_EVAL_FUNC_ARG_LIST, + cast_mode); + } else if (left_format != VEC_FIXED && right_format != VEC_FIXED) { + switch (cond) { + BITWISE_FORMAT_DISPATCH_BRANCH(ObFixedLengthFormat, Discrete, Discrete); + BITWISE_FORMAT_DISPATCH_BRANCH(ObFixedLengthFormat, Discrete, Uniform); + + BITWISE_FORMAT_DISPATCH_BRANCH(ObFixedLengthFormat, Uniform, Discrete); + BITWISE_FORMAT_DISPATCH_BRANCH(ObFixedLengthFormat, Uniform, Uniform); + default: { + ret = inner_calc_vector(VECTOR_EVAL_FUNC_ARG_LIST, + cast_mode); + break; + } + } + } else { + if (left_format != VEC_FIXED) { + switch (left_format) { + case (VEC_DISCRETE): { + DISPATCH_WIDTH_TASK(r_len, RIGHT_FIXED_DISCRETE_CALC); + break; + } + case (VEC_UNIFORM): { + DISPATCH_WIDTH_TASK(r_len, RIGHT_FIXED_UNIFORM_CALC); + break; + } + default: { + ret = inner_calc_vector( + VECTOR_EVAL_FUNC_ARG_LIST, cast_mode); + break; + } + } + } else if (right_format != VEC_FIXED) { + switch (right_format) { + case (VEC_DISCRETE): { + DISPATCH_WIDTH_TASK(l_len, LEFT_FIXED_DISCRETE_CALC); + break; + } + case (VEC_UNIFORM): { + DISPATCH_WIDTH_TASK(l_len, LEFT_FIXED_UNIFORM_CALC); + break; + } + default: { + ret = inner_calc_vector( + VECTOR_EVAL_FUNC_ARG_LIST, cast_mode); + break; + } + } + } else { + DISPATCH_INOUT_WIDTH_TASK(l_len, r_len, INNER_FIXED_CALC); + } + } + return ret; +} + +template +int ObBitwiseExprOperator::inner_calc_vector(VECTOR_EVAL_FUNC_ARG_DECL, ObCastMode cast_mode) +{ + int ret = OB_SUCCESS; + + ObBitVector &eval_flags = expr.get_evaluated_flags(ctx); + + const ObDatumMeta &left_meta = expr.args_[0]->datum_meta_; + const ObDatumMeta &right_meta = expr.args_[1]->datum_meta_; + + void *get_int_func0 = NULL; + void *get_int_func1 = NULL; + + if (OB_FAIL(choose_get_int_func(left_meta, get_int_func0))) { + LOG_WARN("choose_get_int_func failed", K(ret), K(left_meta)); + } else if (OB_FAIL(choose_get_int_func(right_meta, get_int_func1))) { + LOG_WARN("choose_get_int_func failed", K(ret), K(right_meta)); + } else { + L_VEC *l_vec = static_cast(expr.args_[0]->get_vector(ctx)); + R_VEC *r_vec = static_cast(expr.args_[1]->get_vector(ctx)); + RES_VEC *res_vec = static_cast(expr.get_vector(ctx)); + + // The selected getter converts each supported input type to the integer + // representation used by bitwise calculation. + const ObBitwiseExprOperator::BitOperator op = + static_cast(expr.extra_); + for (int i = bound.start(); OB_SUCC(ret) && i < bound.end(); i += 1) { + if (skip.at(i) || eval_flags.at(i)) { + continue; + } + + if (l_vec->is_null(i) || r_vec->is_null(i)) { + res_vec->set_null(i); + eval_flags.set(i); + } else { + ObDatum left_datum = ObDatum(l_vec->get_payload(i), l_vec->get_length(i), false); + ObDatum right_datum = ObDatum(r_vec->get_payload(i), r_vec->get_length(i), false); + + const ObDatumMeta &left_meta = expr.args_[0]->datum_meta_; + const ObDatumMeta &right_meta = expr.args_[1]->datum_meta_; + + uint64_t left = 0; + uint64_t right = 0; + + if (OB_FAIL((reinterpret_cast(get_int_func0)( + left_meta, left_datum, true, left, cast_mode)))) { + LOG_WARN("get uint64 failed", K(ret), K(left_datum)); + } else if (OB_FAIL((reinterpret_cast(get_int_func1)( + right_meta, right_datum, true, right, cast_mode)))) { + LOG_WARN("get uint64 failed", K(ret), K(right_datum)); + } else { + // bit_neg and bit_count will be handled by theirs function + + uint64_t res = 0; + + switch (op) { + case ObBitwiseExprOperator::BIT_AND: res = left & right; break; + case ObBitwiseExprOperator::BIT_OR: res = left | right; break; + case ObBitwiseExprOperator::BIT_XOR: res = left ^ right; break; + case ObBitwiseExprOperator::BIT_LEFT_SHIFT: + res = right < sizeof(uint64_t) * 8 ? left << right : 0; + break; + case ObBitwiseExprOperator::BIT_RIGHT_SHIFT: + res = right < sizeof(uint64_t) * 8 ? left >> right : 0; + break; + default: break; + } + + res_vec->set_uint(i, res); + eval_flags.set(i); + } + } + } + + } + + return ret; +} + int ObBitwiseExprOperator::choose_get_int_func(const ObDatumMeta datum_meta, void *&out_func) { int ret = OB_SUCCESS; @@ -5909,9 +6208,12 @@ int ObRelationalExprOperator::cg_datum_cmp_expr(ObIAllocator &allocator, rt_expr.eval_batch_func_ = ObExprCmpFuncsHelper::get_eval_batch_expr_cmp_func( input_type1, input_type2, input_scale1, input_scale2, in_prec1, in_prec2, cmp_op, cs_type, has_lob_header); + rt_expr.eval_vector_func_ = VectorCmpExprFuncsHelper::get_eval_vector_expr_cmp_func( + rt_expr.args_[0]->datum_meta_, rt_expr.args_[1]->datum_meta_, cmp_op); } CK(NULL != rt_expr.eval_func_); CK(NULL != rt_expr.eval_batch_func_); + CK(NULL != rt_expr.eval_vector_func_); } return ret; diff --git a/src/sql/engine/expr/ob_expr_operator.h b/src/sql/engine/expr/ob_expr_operator.h index b3fe64d60..6da63c2a9 100644 --- a/src/sql/engine/expr/ob_expr_operator.h +++ b/src/sql/engine/expr/ob_expr_operator.h @@ -31,6 +31,10 @@ #include "share/datum/ob_datum_funcs.h" #include "common/expression/ob_expr_string_buf.h" #include "share/object/ob_obj_cast.h" +#include "sql/engine/vector/ob_uniform_vector.h" +#include "sql/engine/vector/ob_discrete_vector.h" +#include "sql/engine/vector/ob_fixed_length_vector.h" +#include "sql/engine/vector/ob_continuous_vector.h" #include "common/object/ob_obj_compare.h" #include "common/ob_accuracy.h" #include "common/mysqlclient/ob_mysql_global.h" @@ -1908,8 +1912,12 @@ class ObBitwiseExprOperator : public ObExprOperator static int calc_result2_mysql(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &res_datum); + static int calc_bitwise_result2_mysql_vector(VECTOR_EVAL_FUNC_ARG_DECL); DECLARE_SET_LOCAL_SESSION_VARS; +private: + static void convert_tc_size(VecValueTypeClass vec_tc, int &len); + protected: enum BitOperator { @@ -1923,6 +1931,9 @@ class ObBitwiseExprOperator : public ObExprOperator BIT_MAX, }; + static int dispatch_calc_vector(VECTOR_EVAL_FUNC_ARG_DECL, ObCastMode cast_mode); + template + static int inner_calc_vector(VECTOR_EVAL_FUNC_ARG_DECL, ObCastMode cast_mode); // Get int64/uint64 from datum, for number rounding/truncation operations are needed, for int tc will get directly // int value typedef int (*GetIntFunc)(const ObDatumMeta &, const common::ObDatum &, bool, int64_t &, diff --git a/src/sql/engine/expr/ob_expr_output_pack.cpp b/src/sql/engine/expr/ob_expr_output_pack.cpp index f705a4f8b..462f90b32 100644 --- a/src/sql/engine/expr/ob_expr_output_pack.cpp +++ b/src/sql/engine/expr/ob_expr_output_pack.cpp @@ -16,7 +16,6 @@ #define USING_LOG_PREFIX SQL_ENG #include "sql/engine/expr/ob_expr_output_pack.h" -#include "share/ob_lob_access_utils.h" #include "sql/engine/ob_exec_context.h" #include "sql/engine/expr/ob_expr_sql_udt_utils.h" namespace oceanbase{ diff --git a/src/sql/engine/expr/ob_expr_timestamp_add.cpp b/src/sql/engine/expr/ob_expr_timestamp_add.cpp index 1785b0146..b2a59361c 100644 --- a/src/sql/engine/expr/ob_expr_timestamp_add.cpp +++ b/src/sql/engine/expr/ob_expr_timestamp_add.cpp @@ -253,6 +253,11 @@ int ObExprTimeStampAdd::cg_expr(ObExprCGCtx &expr_cg_ctx, const ObRawExpr &raw_e UNUSED(expr_cg_ctx); UNUSED(raw_expr); rt_expr.eval_func_ = calc_timestampadd_expr; + // The vectorization of other types for the expression not completed yet. + if (ob_is_date_or_mysql_date(rt_expr.args_[2]->datum_meta_.type_) + || ob_is_datetime_or_mysql_datetime_tc(rt_expr.args_[2]->datum_meta_.type_)) { + rt_expr.eval_vector_func_ = calc_timestamp_add_vector; + } return ret; } @@ -265,5 +270,193 @@ DEF_SET_LOCAL_SESSION_VARS(ObExprTimeStampAdd, raw_expr) { } +template +int vector_timestamp_add( + const ObExpr &expr, ObEvalCtx &ctx, + const ObBitVector &skip, const EvalBound &bound, ObSQLMode sql_mode) +{ + int ret = OB_SUCCESS; + UnitVec *unit_type_vec = static_cast(expr.args_[0]->get_vector(ctx)); + IntervalVec *interval_vec = static_cast(expr.args_[1]->get_vector(ctx)); + ArgVec *arg_vec = static_cast(expr.args_[2]->get_vector(ctx)); + ResVec *res_vec = static_cast(expr.get_vector(ctx)); + ObBitVector &eval_flags = expr.get_evaluated_flags(ctx); + const ObObjType arg_type = expr.args_[2]->datum_meta_.type_; + ObObjTypeClass arg_tc = ob_obj_type_class(arg_type); + const ObSQLSessionInfo *session = ctx.exec_ctx_.get_my_session(); + const common::ObTimeZoneInfo *tz_info = NULL; + ObSolidifiedVarsGetter helper(expr, ctx, session); + int64_t tmp = 0; // unused + int64_t tz_offset = 0; + ObString nls_format; + if (eval_flags.accumulate_bit_cnt(bound) == bound.range_size()) { + } else if (OB_FAIL(helper.get_sql_mode(sql_mode))) { + LOG_WARN("get sql mode failed", K(ret)); + } else if (OB_FAIL(helper.get_time_zone_info(tz_info))) { + LOG_WARN("get tz info failed", K(ret)); + } else if (OB_FAIL(get_tz_offset(tz_info, tz_offset))) { + LOG_WARN("failed to get offset between utc and local", K(ret)); + } else { + ObTimeConvertCtx cvrt_ctx(tz_info, false); + tz_offset = (ObTimestampType == arg_type) ? tz_offset : 0; + DateType date = 0; + UsecType usec = 0; + ObScale in_scale = expr.args_[2]->datum_meta_.scale_; + ObCastMode cast_mode = CM_NONE; + ObSQLUtils::get_default_cast_mode( + session->get_stmt_type(), session->is_ignore_stmt(), sql_mode, cast_mode); + ObTime ot; + + for (int64_t idx = bound.start(); OB_SUCC(ret) && idx < bound.end(); ++idx) { + if (skip.at(idx) || eval_flags.at(idx)) { + continue; + } else if (arg_vec->is_null(idx) || unit_type_vec->is_null(idx) || interval_vec->is_null(idx)) { + res_vec->set_null(idx); + eval_flags.set(idx); + continue; + } + char *buf = NULL; + int64_t buf_len = OB_CAST_TO_VARCHAR_MAX_LENGTH; + int64_t out_len = 0; + int64_t ts = 0; + IN_TYPE in_val = *reinterpret_cast(arg_vec->get_payload(idx)); + ObDateSqlMode date_sql_mode; + if (std::is_same::value || std::is_same::value) { + if (OB_FAIL(ObTimeConverter::parse_ob_time(in_val, ot))) { + LOG_WARN("parse_ob_time fail", K(ret)); + } else { + ot.parts_[DT_DATE] = ObTimeConverter::ob_time_to_date(ot); + if (OB_FAIL(ObTimeConverter::ob_time_to_datetime(ot, cvrt_ctx, ts))) { + LOG_WARN("ob_time_to_datetime fail", K(ret)); + } + } + } else if (OB_FAIL(ObTimeConverter::parse_date_usec(in_val, tz_offset, false, date, usec))) { + LOG_WARN("get_date_usec_from_vec failed", K(ret), K(date), K(usec), K(tz_offset)); + } else if (OB_FAIL(ObTimeConverter::date_to_ob_time(date, ot))) { + LOG_WARN("failed to convert date part to obtime", K(ret), K(date)); + } else if (OB_FAIL(ObTimeConverter::time_to_ob_time(usec, ot))) { + LOG_WARN("failed to convert time part to obtime", K(ret), K(usec)); + } else if (OB_FAIL(ObTimeConverter::ob_time_to_datetime(ot, cvrt_ctx, ts))) { + LOG_WARN("ob time to datetime failed", K(ret)); + } + if (OB_SUCC(ret)) { + int64_t res = 0; + const ObTimeZoneInfo *null_tz_info = NULL; // refer to calc_timestampadd_expr() + if (OB_FAIL(ObExprTimeStampAdd::calc(unit_type_vec->get_int(idx), ot, ts, cvrt_ctx, + interval_vec->get_int(idx), res))) { + LOG_WARN("calculate ts after adding interval failed", K(ret), K(ts)); + } else if (OB_ISNULL(buf = expr.get_str_res_mem(ctx, buf_len, idx))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("allocate memory failed", K(ret), K(buf_len)); + } else if(OB_FAIL(ObTimeConverter::datetime_to_str(res, null_tz_info, nls_format, in_scale, + buf, buf_len, out_len))) { + LOG_WARN("failed to convert datetime to string", + K(ret), K(res), K(nls_format), K(in_scale), K(buf), K(out_len)); + } else { + res_vec->set_string(idx, ObString(out_len, buf)); + eval_flags.set(idx); + } + } + if (OB_FAIL(ret)) { + if(CM_IS_WARN_ON_FAIL(cast_mode)) { + ret = OB_SUCCESS; + } + res_vec->set_null(idx); + eval_flags.set(idx); + } + } + } + return ret; +} + +#define DEF_TIMESTAMP_ADD_VECTOR(arg_type, res_type, IN_TYPE)\ + if (VEC_FIXED == unit_format && VEC_FIXED == interval_format) {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } else if (VEC_FIXED == unit_format && VEC_UNIFORM == interval_format) {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } else if (VEC_FIXED == unit_format && VEC_UNIFORM_CONST == interval_format) {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } else if (VEC_UNIFORM == unit_format && VEC_UNIFORM == interval_format) {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } else if (VEC_UNIFORM == unit_format && VEC_UNIFORM_CONST == interval_format) {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } else if (VEC_UNIFORM == unit_format && VEC_FIXED == interval_format) {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } else if (VEC_UNIFORM_CONST == unit_format && VEC_UNIFORM_CONST == interval_format) {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } else if (VEC_UNIFORM_CONST == unit_format && VEC_UNIFORM == interval_format) {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } else if (VEC_UNIFORM_CONST == unit_format && VEC_FIXED == interval_format) {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } else {\ + ret = vector_timestamp_add\ + (expr, ctx, skip, bound, sql_mode);\ + } + +#define DISPATCH_TIMESTAMP_ADD_IN_TYPE(TYPE)\ + if (VEC_FIXED == arg_format && VEC_DISCRETE == res_format) {\ + DEF_TIMESTAMP_ADD_VECTOR(CONCAT(TYPE,FixedVec), StrDiscVec, CONCAT(TYPE,Type));\ + } else if (VEC_FIXED == arg_format && VEC_UNIFORM == res_format) {\ + DEF_TIMESTAMP_ADD_VECTOR(CONCAT(TYPE,FixedVec), StrUniVec, CONCAT(TYPE,Type));\ + } else if (VEC_FIXED == arg_format && VEC_CONTINUOUS == res_format) {\ + DEF_TIMESTAMP_ADD_VECTOR(CONCAT(TYPE,FixedVec), StrContVec, CONCAT(TYPE,Type));\ + } else if (VEC_UNIFORM == arg_format && VEC_DISCRETE == res_format) {\ + DEF_TIMESTAMP_ADD_VECTOR(CONCAT(TYPE,UniVec), StrDiscVec, CONCAT(TYPE,Type));\ + } else if (VEC_UNIFORM == arg_format && VEC_UNIFORM == res_format) {\ + DEF_TIMESTAMP_ADD_VECTOR(CONCAT(TYPE,UniVec), StrUniVec, CONCAT(TYPE,Type));\ + } else if (VEC_UNIFORM == arg_format && VEC_CONTINUOUS == res_format) {\ + DEF_TIMESTAMP_ADD_VECTOR(CONCAT(TYPE,UniVec), StrContVec, CONCAT(TYPE,Type));\ + } else {\ + ret = vector_timestamp_add(expr, ctx, skip, bound, sql_mode);\ + } + +int ObExprTimeStampAdd::calc_timestamp_add_vector(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) +{ + int ret = OB_SUCCESS; + ObSQLMode sql_mode = 0; + const ObSQLSessionInfo *session = ctx.exec_ctx_.get_my_session(); + if (OB_ISNULL(session)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("session is NULL", K(ret)); + } else if (OB_FAIL(expr.args_[0]->eval_vector(ctx, skip, bound)) + || OB_FAIL(expr.args_[1]->eval_vector(ctx, skip, bound)) + || OB_FAIL(expr.args_[2]->eval_vector(ctx, skip, bound))) { + LOG_WARN("eval arg failed", K(ret)); + } else { + VectorFormat unit_format = expr.args_[0]->get_format(ctx); + VectorFormat interval_format = expr.args_[1]->get_format(ctx); + VectorFormat arg_format = expr.args_[2]->get_format(ctx); + VectorFormat res_format = expr.get_format(ctx); + ObObjTypeClass arg_tc = ob_obj_type_class(expr.args_[2]->datum_meta_.type_); + + if (ObMySQLDateTC == arg_tc) { + DISPATCH_TIMESTAMP_ADD_IN_TYPE(MySQLDate); + } else if (ObMySQLDateTimeTC == arg_tc) { + DISPATCH_TIMESTAMP_ADD_IN_TYPE(MySQLDateTime); + } else if (ObDateTC == arg_tc) { + DISPATCH_TIMESTAMP_ADD_IN_TYPE(Date); + } else if (ObDateTimeTC == arg_tc) { + DISPATCH_TIMESTAMP_ADD_IN_TYPE(DateTime); + } + + if (OB_FAIL(ret)) { + LOG_WARN("expr calculation failed", K(ret)); + } + } + return ret; +} + +#undef DISPATCH_TIMESTAMP_ADD_IN_TYPE +#undef DEF_TIMESTAMP_ADD_VECTOR + } //namespace sql } //namespace oceanbase diff --git a/src/sql/engine/expr/vector_cast/cast_to_int.ipp b/src/sql/engine/expr/vector_cast/cast_to_int.ipp new file mode 100644 index 000000000..df20c438f --- /dev/null +++ b/src/sql/engine/expr/vector_cast/cast_to_int.ipp @@ -0,0 +1,812 @@ +/* + * Copyright (c) 2025 OceanBase. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "sql/engine/expr/vector_cast/vector_cast.h" +#include "sql/engine/expr/ob_datum_cast.h" +#include "share/object/ob_obj_cast_util.h" +#include "share/object/ob_obj_cast.h" + +namespace oceanbase +{ +using namespace common; +namespace sql +{ +template +struct ToIntegerCastImpl +{ + static int string_int(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class StringToIntFn : public CastFnBase { + public: + StringToIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec, + bool support_avx512) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec), + support_avx512_(support_avx512) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + int64_t out_val = 0; + const ObCastMode cast_mode = expr.extra_; + ObString in_str(arg_vec_->get_string(idx)); + ObLength str_length = in_str.length(); + bool can_fast_strtoll = false; + if (ObHexStringType != in_type_) { + if ((str_length < 5 || str_length > 16) && str_length <= 20) { + out_val = CastHelperImpl::fast_strtoll(in_str, CastHelperImpl::INT_TC_PRECISION, can_fast_strtoll); + } else { +#if OB_USE_MULTITARGET_CODE + if (support_avx512_) { + if (str_length >= 5 && str_length <= 16) { + can_fast_strtoll = specific::avx512::parse_16_chars(in_str.ptr(), in_str.length(), out_val); + } + } else { + // do nothing + } +#endif + } + } + if (!can_fast_strtoll) { // 退化回原路径 + ret = common_string_integer(cast_mode, in_type_, in_cs_type_, in_str, true, out_val); + } + if (CAST_FAIL(ret)) { + SQL_LOG(WARN, "string_int failed", K(ret), K(in_str)); + } else if (out_type_ < ObIntType && CAST_FAIL(int_range_check(out_type_, out_val, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret)); + } else { + SET_RES_INT(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + bool support_avx512_; + }; + + bool support_avx512 = common::is_arch_supported(ObTargetArch::AVX512); + StringToIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec, support_avx512); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } + + static int string_uint(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class StringToUIntFn : public CastFnBase { + public: + StringToUIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec, + bool support_avx512) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec), + support_avx512_(support_avx512) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + uint64_t out_val = 0; + const ObCastMode cast_mode = expr.extra_; + ObString in_str(arg_vec_->get_string(idx)); + ObLength str_length = in_str.length(); + bool can_fast_strtoull = false; + if (ObHexStringType != in_type_) { + if (str_length >= 5 && str_length <= 16) { +#if OB_USE_MULTITARGET_CODE + if (support_avx512_) { + int64_t int64 = 0; + can_fast_strtoull = specific::avx512::parse_16_chars(in_str.ptr(), in_str.length(), int64); + out_val = int64; // if can_fast_strtoull for length <= 16, will not out_of_range for both int64 & uint64 + } else { + // do nothing + } +#endif + } + } + if (!can_fast_strtoull) { // 退化回原路径 + ret = common_string_unsigned_integer(cast_mode, in_type_, in_cs_type_, in_str, true, out_val); + } + if (CAST_FAIL(ret)) { + SQL_LOG(WARN, "string_int failed", K(ret)); + } else if (out_type_ < ObUInt64Type && CM_NEED_RANGE_CHECK(expr.extra_) && + CAST_FAIL(uint_upper_check(out_type_, out_val))) { + SQL_LOG(WARN, "uint_upper_check failed", K(ret)); + } else { + SET_RES_UINT(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + bool support_avx512_; + }; + + bool support_avx512 = common::is_arch_supported(ObTargetArch::AVX512); + StringToUIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec, support_avx512); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } + template + static int float_int(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class FloatDoubleToIntFn : public CastFnBase { + public: + FloatDoubleToIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + IN_TYPE in_val = *reinterpret_cast(arg_vec_->get_payload(idx)); + int64_t out_val = 0; + const int64_t trunc_max_value = (std::is_same::value || CM_IS_COLUMN_CONVERT(expr.extra_)) + ? LLONG_MAX : LLONG_MIN; + if (CAST_FAIL(ObDataTypeCastUtil::common_double_int_wrap(in_val, out_val, LLONG_MIN, trunc_max_value))) { + SQL_LOG(WARN, "common_double_int_wrap failed", K(ret)); + } else if ((CM_NEED_RANGE_CHECK(expr.extra_) || std::is_same::value) + && CAST_FAIL(int_range_check(out_type_, out_val, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret), K(out_val)); + } else { + res_vec_->set_int(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + }; + + FloatDoubleToIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } + + template + static int float_uint(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class FloatDoubleToUIntFn : public CastFnBase { + public: + FloatDoubleToUIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + IN_TYPE in_val = *reinterpret_cast(arg_vec_->get_payload(idx)); + uint64_t out_val = 0; + ret = round_floating_to_uint64( + static_cast(in_val), + std::is_same::value, + CM_IS_COLUMN_CONVERT(expr.extra_), + out_val); + if (CAST_FAIL(ret)) { + SQL_LOG(WARN, "cast float to uint failed", K(ret), K(in_val), K(out_val)); + } else if (CAST_FAIL(uint_range_check(out_type_, out_val, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret)); + } else { + res_vec_->set_uint(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + }; + + FloatDoubleToUIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } + + static int int_int(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class IntToIntFn : public CastFnBase { + public: + IntToIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + int64_t in_val = *reinterpret_cast(arg_vec_->get_payload(idx)); + int64_t out_val = in_val; + if (in_type_ > out_type_ && CAST_FAIL(int_range_check(out_type_, in_val, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret), K(out_type_), K(out_val)); + } else { + res_vec_->set_int(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + }; + + IntToIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } + + static int int_uint(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class IntToUIntFn : public CastFnBase { + public: + IntToUIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + int64_t in_val = *reinterpret_cast(arg_vec_->get_payload(idx)); + uint64_t out_val = in_val; + if (CM_NEED_RANGE_CHECK(expr.extra_) && CAST_FAIL(uint_range_check(out_type_, in_val, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret), K(out_type_), K(out_val)); + } else { + res_vec_->set_uint(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + }; + + if (CM_SKIP_CAST_INT_UINT(expr.extra_)) { + SQL_LOG(DEBUG, "skip cast int uint", K(ret)); + } else { + IntToUIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + } + return ret; + } + + static int uint_int(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class UIntToIntFn : public CastFnBase { + public: + UIntToIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS, warning = OB_SUCCESS; + uint64_t in_val = *reinterpret_cast(arg_vec_->get_payload(idx)); + int64_t out_val = in_val; + if (CM_NEED_RANGE_CHECK(expr.extra_) && CAST_FAIL(int_upper_check(out_type_, in_val, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret), K(out_type_), K(out_val)); + } else { + res_vec_->set_int(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + }; + + UIntToIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } + + static int uint_uint(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class UIntToUIntFn : public CastFnBase { + public: + UIntToUIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS, warning = OB_SUCCESS; + uint64_t in_val = *reinterpret_cast(arg_vec_->get_payload(idx)); + uint64_t out_val = in_val; + if (in_type_ > out_type_ && CAST_FAIL(uint_upper_check(out_type_, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret), K(out_type_), K(out_val)); + } else { + res_vec_->set_uint(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + }; + + UIntToUIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } + + template + static int date_int(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class DateToIntUIntFn : public CastFnBase { + public: + DateToIntUIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec, + OUT_TYPE type_min_val, OUT_TYPE type_max_val) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec), + type_min_val_(type_min_val), type_max_val_(type_max_val) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + int64_t int_val = 0; + if (OB_FAIL(ObTimeConverter::date_to_int(arg_vec_->get_date(idx), int_val))) { + SQL_LOG(WARN, "convert date to int failed", K(ret)); + } else { + OUT_TYPE out_val = int_val; + bool need_range_check = std::is_same::value + ? out_type_ < ObInt32Type : out_type_ < ObUInt32Type; + if (need_range_check && CAST_FAIL(numeric_range_check(out_val, type_min_val_, + type_max_val_, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret)); + } else { + res_vec_->set_payload(idx, &out_val, sizeof(OUT_TYPE)); + } + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + OUT_TYPE type_min_val_; + OUT_TYPE type_max_val_; + }; + + bool is_signed = std::is_same::value; + const OUT_TYPE type_max_val = is_signed ? INT_MAX_VAL[out_type] : UINT_MAX_VAL[out_type]; + const OUT_TYPE type_min_val = is_signed ? INT_MIN_VAL[out_type] : static_cast(0); + DateToIntUIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec, type_min_val, type_max_val); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } + + template + static int datetime_int(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + int64_t tz_offset = 0; + ObBasicSessionInfo *session = ctx.exec_ctx_.get_my_session(); + const common::ObTimeZoneInfo *tz_info_local = NULL; + ObSolidifiedVarsGetter helper(expr, ctx, session); + if (OB_ISNULL(session)) { + ret = OB_ERR_UNEXPECTED; + SQL_LOG(WARN, "session is NULL", K(ret)); + } else if (OB_FAIL(helper.get_time_zone_info(tz_info_local))) { + SQL_LOG(WARN, "get time zone info failed", K(ret)); + } else { + class DatetimeToIntUIntFn : public CastFnBase { + public: + DatetimeToIntUIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec, + OUT_TYPE type_min_val, OUT_TYPE type_max_val, const ObTimeZoneInfo *tz_info) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec), + type_min_val_(type_min_val), type_max_val_(type_max_val), tz_info_(tz_info) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + int64_t int_val = 0; + if (OB_FAIL(ObTimeConverter::datetime_to_int(arg_vec_->get_datetime(idx), + tz_info_, int_val))) { + SQL_LOG(WARN, "datetime_to_int failed", K(ret), K(int_val)); + } else { + OUT_TYPE out_val = int_val; + bool need_range_check = std::is_same::value + ? out_type_ < ObIntType : out_type_ < ObUInt64Type; + if (need_range_check && CAST_FAIL(numeric_range_check(out_val, type_min_val_, + type_max_val_, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret)); + } else { + res_vec_->set_payload(idx, &out_val, sizeof(OUT_TYPE)); + } + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + OUT_TYPE type_min_val_; + OUT_TYPE type_max_val_; + const ObTimeZoneInfo *tz_info_; + }; + + const ObTimeZoneInfo *tz_info = (ObTimestampType == in_type) ? + tz_info_local : NULL; + bool is_signed = std::is_same::value; + const OUT_TYPE type_max_val = is_signed ? INT_MAX_VAL[out_type] : UINT_MAX_VAL[out_type]; + const OUT_TYPE type_min_val = is_signed ? INT_MIN_VAL[out_type] : static_cast(0); + DatetimeToIntUIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec, type_min_val, type_max_val, tz_info); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + } + return ret; + } + + // use divide cast decimalint to int, avoid cast to str. + template + static int decimalint_int(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class DecimalintToIntFn : public CastFnBase { + public: + DecimalintToIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec, IN_TYPE sf) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec), sf_(sf) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + IN_TYPE lhs = *reinterpret_cast(arg_vec_->get_payload(idx)); + int warning = OB_SUCCESS; + int err = 0; + int64_t out_val = CastHelperImpl::scale_to_integer(lhs, sf_, in_scale_, err); + if (OB_ERRNO_ERANGE == err && (INT64_MIN == out_val || INT64_MAX == out_val)) { + ret = OB_DATA_OUT_OF_RANGE; + } + if (CAST_FAIL(ret)) { + SQL_LOG(WARN, "decimalint int failed", K(ret)); + } else if (out_type_ < ObIntType && CAST_FAIL(int_range_check(out_type_, out_val, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret), K(expr.extra_)); + } else { + res_vec_->set_int(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + IN_TYPE sf_; + }; + + if (OB_UNLIKELY(in_scale < 0)) { + ret = OB_ERR_UNEXPECTED; + SQL_LOG(WARN, "invalid input scale", K(ret), K(in_scale)); + } else { + IN_TYPE sf = get_scale_factor(in_scale); + DecimalintToIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec, sf); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + } + return ret; + } + + template + static int decimalint_uint(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class DecimalintToUIntFn : public CastFnBase { + public: + DecimalintToUIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec, IN_TYPE sf) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec), sf_(sf) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + int err = 0; + IN_TYPE lhs = *reinterpret_cast(arg_vec_->get_payload(idx)); + uint64_t out_val = 0; + if (OB_UNLIKELY(lhs < 0)) { + out_val = 0; + ret = OB_DATA_OUT_OF_RANGE; + } else { + out_val = CastHelperImpl::scale_to_unsigned_integer(lhs, sf_, in_scale_, err); + } + if (OB_ERRNO_ERANGE == err && (0 == out_val || UINT64_MAX == out_val)) { + ret = OB_DATA_OUT_OF_RANGE; + } + if (CAST_FAIL(ret)) { + SQL_LOG(WARN, "decimalint uint failed", K(ret)); + } else if ((out_type_ < ObUInt64Type && CM_NEED_RANGE_CHECK(expr.extra_)) + && CAST_FAIL(uint_upper_check(out_type_, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret), K(expr.extra_)); + } else { + res_vec_->set_uint(idx, out_val); + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + IN_TYPE sf_; + }; + + if (OB_UNLIKELY(in_scale < 0)) { + ret = OB_ERR_UNEXPECTED; + SQL_LOG(WARN, "invalid input scale", K(ret), K(in_scale)); + } else { + IN_TYPE sf = get_scale_factor(in_scale); + DecimalintToUIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec, sf); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + } + return ret; + } + + static int number_int(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class NumberToIntFn : public CastFnBase { + public: + NumberToIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + const number::ObNumber nmb(arg_vec_->get_number(idx)); + const char *nmb_buf = nmb.format(); + if (OB_ISNULL(nmb_buf)) { + ret = OB_ERR_UNEXPECTED; + SQL_LOG(WARN, "nmb_buf is NULL", K(ret)); + } else { + int64_t out_val = 0; + ObString num_str(strlen(nmb_buf), nmb_buf); + ret = common_string_integer(expr.extra_, in_type_, in_cs_type_, + num_str, false, out_val); + if (CAST_FAIL(ret)) { + SQL_LOG(WARN, "string_int failed", K(ret), K(num_str)); + } else if (out_type_ < ObIntType && + CAST_FAIL(int_range_check(out_type_, out_val, out_val))) { + SQL_LOG(WARN, "int_range_check failed", K(ret)); + } else { + SET_RES_INT(idx, out_val); + } + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + }; + + NumberToIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } + + static int number_uint(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const EvalBound &bound) + { + EVAL_COMMON_ARG() + { + class NumberToUIntFn : public CastFnBase { + public: + NumberToUIntFn(CAST_ARG_LIST_DECL, ArgVec* arg_vec, ResVec* res_vec) + : CastFnBase(CAST_ARG_DECL), arg_vec_(arg_vec), res_vec_(res_vec) {} + + OB_INLINE int operator() (const ObExpr &expr, int idx) + { + int ret = OB_SUCCESS; + int warning = OB_SUCCESS; + const number::ObNumber nmb(arg_vec_->get_number(idx)); + const char *nmb_buf = nmb.format(); + if (OB_ISNULL(nmb_buf)) { + ret = OB_ERR_UNEXPECTED; + SQL_LOG(WARN, "nmb_buf is NULL", K(ret)); + } else { + uint64_t out_val = 0; + ObString num_str(strlen(nmb_buf), nmb_buf); + ret = common_string_unsigned_integer(expr.extra_, in_type_, in_cs_type_, + num_str, false, out_val); + if (CAST_FAIL(ret)) { + SQL_LOG(WARN, "string_int failed", K(ret)); + } else if (out_type_ < ObUInt64Type && CM_NEED_RANGE_CHECK(expr.extra_) && + CAST_FAIL(uint_upper_check(out_type_, out_val))) { + SQL_LOG(WARN, "uint_upper_check failed", K(ret)); + } else { + SET_RES_UINT(idx, out_val); + } + } + return ret; + } + private: + ArgVec *arg_vec_; + ResVec *res_vec_; + }; + + NumberToUIntFn cast_fn(CAST_ARG_DECL, arg_vec, res_vec); + if (OB_FAIL(CastHelperImpl::batch_cast(cast_fn, expr, arg_vec, res_vec, eval_flags, + skip, bound, is_diagnosis, diagnosis_manager))) { + SQL_LOG(WARN, "cast failed", K(ret), K(in_type), K(out_type)); + } + } + return ret; + } +}; + +// ================ +// define implicit cast functions +#define DEF_FLOAT_TO_INTEGER_IMPLICIT_CASTS(in_tc) \ + DEF_VECTOR_IMPLICIT_CAST_FUNC(in_tc, VEC_TC_INTEGER) \ + { \ + return ToIntegerCastImpl::template \ + float_int>(expr, ctx, skip, bound); \ + } \ + DEF_VECTOR_IMPLICIT_CAST_FUNC(in_tc, VEC_TC_UINTEGER) \ + { \ + return ToIntegerCastImpl::template \ + float_uint>(expr, ctx, skip, bound); \ + } + +LST_DO_CODE(DEF_FLOAT_TO_INTEGER_IMPLICIT_CASTS, + VEC_TC_FLOAT, + VEC_TC_DOUBLE + ); + +#define DEF_DECIMALINT_TO_INTEGER_IMPLICIT_CASTS(in_tc) \ + DEF_VECTOR_IMPLICIT_CAST_FUNC(in_tc, VEC_TC_INTEGER) \ + { \ + return ToIntegerCastImpl::template \ + decimalint_int>(expr, ctx, skip, bound); \ + } \ + DEF_VECTOR_IMPLICIT_CAST_FUNC(in_tc, VEC_TC_UINTEGER) \ + { \ + return ToIntegerCastImpl::template \ + decimalint_uint>(expr, ctx, skip, bound); \ + } + +LST_DO_CODE(DEF_DECIMALINT_TO_INTEGER_IMPLICIT_CASTS, + VEC_TC_DEC_INT32, + VEC_TC_DEC_INT64, + VEC_TC_DEC_INT128, + VEC_TC_DEC_INT256, + VEC_TC_DEC_INT512 + ); + +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_STRING, VEC_TC_INTEGER) +{ \ + return ToIntegerCastImpl:: \ + string_int(expr, ctx, skip, bound); \ +} +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_STRING, VEC_TC_UINTEGER) +{ \ + return ToIntegerCastImpl:: \ + string_uint(expr, ctx, skip, bound); \ +} +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_INTEGER, VEC_TC_INTEGER) +{ \ + return ToIntegerCastImpl:: \ + int_int(expr, ctx, skip, bound); \ +} +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_INTEGER, VEC_TC_UINTEGER) +{ \ + return ToIntegerCastImpl:: \ + int_uint(expr, ctx, skip, bound); \ +} +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_UINTEGER, VEC_TC_INTEGER) +{ \ + return ToIntegerCastImpl:: \ + uint_int(expr, ctx, skip, bound); \ +} +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_UINTEGER, VEC_TC_UINTEGER) +{ \ + return ToIntegerCastImpl:: \ + uint_uint(expr, ctx, skip, bound); \ +} + +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_DATE, VEC_TC_INTEGER) +{ \ + return ToIntegerCastImpl::template \ + date_int(expr, ctx, skip, bound); \ +} +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_DATE, VEC_TC_UINTEGER) +{ \ + return ToIntegerCastImpl::template \ + date_int(expr, ctx, skip, bound); \ +} + +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_DATETIME, VEC_TC_INTEGER) +{ \ + return ToIntegerCastImpl::template \ + datetime_int(expr, ctx, skip, bound); \ +} +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_DATETIME, VEC_TC_UINTEGER) +{ \ + return ToIntegerCastImpl::template \ + datetime_int(expr, ctx, skip, bound); \ +} + +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_NUMBER, VEC_TC_INTEGER) +{ \ + return ToIntegerCastImpl:: \ + number_int(expr, ctx, skip, bound); \ +} +DEF_VECTOR_IMPLICIT_CAST_FUNC(VEC_TC_NUMBER, VEC_TC_UINTEGER) +{ \ + return ToIntegerCastImpl:: \ + number_uint(expr, ctx, skip, bound); \ +} + + +} // end sql +} // namespace oceanbase diff --git a/src/sql/engine/ob_exec_context.cpp b/src/sql/engine/ob_exec_context.cpp index b5bbfb000..fcf1810ca 100644 --- a/src/sql/engine/ob_exec_context.cpp +++ b/src/sql/engine/ob_exec_context.cpp @@ -814,6 +814,7 @@ int ObExecContext::init_physical_plan_ctx(const ObPhysicalPlan &plan) } phy_plan_ctx_->set_consistency_level(consistency); phy_plan_ctx_->set_timeout_timestamp(start_time + plan_timeout); + phy_plan_ctx_->set_rich_format(my_session_->use_rich_format()); reference_my_plan(&plan); phy_plan_ctx_->set_ignore_stmt(plan.is_ignore()); phy_plan_ctx_->set_foreign_key_checks(0 != foreign_key_checks); diff --git a/src/sql/engine/ob_operator.cpp b/src/sql/engine/ob_operator.cpp index 45c101d31..9c530b428 100644 --- a/src/sql/engine/ob_operator.cpp +++ b/src/sql/engine/ob_operator.cpp @@ -19,6 +19,7 @@ #include "ob_operator.h" #include "ob_operator_factory.h" #include "observer/ob_server.h" +#include "sql/engine/expr/ob_array_expr_utils.h" namespace oceanbase { @@ -44,6 +45,72 @@ int ObDynamicParamSetter::set_dynamic_param(ObEvalCtx &eval_ctx) const return ret; } +int ObDynamicParamSetter::set_dynamic_param_vec2(ObEvalCtx &eval_ctx, const sql::ObBitVector &skip_bit) const +{ + int ret = OB_SUCCESS; + ObIVector *src_vec = nullptr; + const int64_t batch_idx = eval_ctx.get_batch_idx(); + EvalBound eval_bound(eval_ctx.get_batch_size(), batch_idx, batch_idx + 1, false); + ObPhysicalPlanCtx *phy_ctx = eval_ctx.exec_ctx_.get_physical_plan_ctx(); + //dst_->batch_result_ = true; + if (OB_ISNULL(src_) || OB_ISNULL(dst_) || OB_ISNULL(phy_ctx)) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("expr not init", K(ret), KP(src_), K(dst_), K(phy_ctx)); + } else if (OB_FAIL(src_->eval_vector(eval_ctx, skip_bit, eval_bound))) { + LOG_WARN("fail to calc rescan params", K(ret), K(*this)); + } else if (OB_ISNULL(src_vec = src_->get_vector(eval_ctx))) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to get source vector", K(ret), K(src_vec)); + } else { + const char *payload = NULL; + ObLength len = 0; + src_vec->get_payload(batch_idx, payload, len); + ObDatum res; + if (src_vec->is_null(batch_idx)) { + res.set_null(); + } else if (src_->is_nested_expr() && !ObCollectionExprUtil::is_compact_fmt_cell(payload)) { + // vector_fmt not supported yet + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected data format", K(ret)); + } else { + res.ptr_ = payload; + res.len_ = len; + res.null_ = 0; + } + ParamStore ¶m_store = phy_ctx->get_param_store_for_update(); + if (OB_FAIL(ret)) { + } else if (OB_UNLIKELY(param_idx_ < 0 || param_idx_ >= param_store.count())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("invalid index", K(ret), K(param_idx_), K(param_store.count())); + } else if (OB_FAIL(res.to_obj(param_store.at(param_idx_), + dst_->obj_meta_, + dst_->obj_datum_map_))) { + LOG_WARN("convert datum to obj failed", K(ret), "datum", + DATUM2STR(*dst_, res)); + } else { + param_store.at(param_idx_).set_param_meta(); + } + + if (OB_SUCC(ret)) { + ObDatum ¶m_datum = dst_->locate_expr_datum(eval_ctx); + OZ(dst_->init_vector(eval_ctx, VEC_UNIFORM_CONST, 1)); + clear_parent_evaluated_flag(eval_ctx, *dst_); + dst_->get_eval_info(eval_ctx).evaluated_ = true; + if (0 == dst_->res_buf_off_) { + // Fixed-width datums do not reserve an external result buffer. + param_datum.set_datum(res); + } else { + if (OB_FAIL(dst_->deep_copy_datum(eval_ctx, res))) { + LOG_WARN("fail to deep copy datum", K(ret), K(eval_ctx), K(*dst_)); + } + } + } + } + return ret; +} + + + int ObDynamicParamSetter::set_dynamic_param(ObEvalCtx &eval_ctx, ObObjParam *¶m) const { int ret = OB_SUCCESS; @@ -133,6 +200,7 @@ ObOpSpec::ObOpSpec(ObIAllocator &alloc, const ObPhyOperatorType type) plan_depth_(0), max_batch_size_(0), need_check_output_datum_(false), + use_rich_format_(false), compress_type_(NONE_COMPRESSOR) { } @@ -154,6 +222,7 @@ OB_SERIALIZE_MEMBER(ObOpSpec, plan_depth_, max_batch_size_, need_check_output_datum_, + use_rich_format_, compress_type_); DEF_TO_STRING(ObOpSpec) @@ -170,6 +239,7 @@ DEF_TO_STRING(ObOpSpec) K_(rows), K_(max_batch_size), K_(filters), + K_(use_rich_format), K_(compress_type)); J_OBJ_END(); return pos; @@ -365,6 +435,7 @@ int ObOpSpec::create_operator_recursive(ObExecContext &exec_ctx, ObOperator *&op op->get_monitor_info().set_plan_depth(plan_depth_); op->get_monitor_info().open_time_ = oceanbase::common::ObClockGenerator::getClock(); + op->get_monitor_info().set_rich_format(use_rich_format_); op->get_monitor_info().set_plan_hash_value(plan_->get_plan_hash_value()); if (OB_FAIL(op->get_monitor_info().set_sql_id(plan_->get_sql_id_string()))) { LOG_WARN("Fail to set sql_id", K(ret)); @@ -742,6 +813,17 @@ int ObOperator::open() return ret; } +void ObOperator::reset_output_format() +{ + if (spec_.plan_->get_use_rich_format() && !spec_.use_rich_format_) { + FOREACH_CNT(e, spec_.output_) { + if (!is_uniform_format((*e)->get_format(eval_ctx_))) { + (*e)->get_vector_header(eval_ctx_).format_ = VEC_INVALID; + } + } + } +} + int ObOperator::init_evaluated_flags() { int ret = OB_SUCCESS; @@ -823,6 +905,11 @@ int ObOperator::inner_rescan() batch_reach_end_ = false; row_reach_end_ = false; clear_batch_end_flag(); + // For the vectorization 2.0, when rescan, upper operator may have changed expr format, + // but it has not been changed back, and the old operator will not initialize the format. + // When calling cast to uniform again, The current format may unexpected, and caused cast error; + // so when rescan, for operator which not support rich format, we reset the output format + reset_output_format(); op_monitor_info_.rescan_times_++; output_batches_b4_rescan_ = op_monitor_info_.output_batches_; if (spec_.need_check_output_datum_ && brs_checker_) { @@ -1049,8 +1136,7 @@ int ObOperator::get_next_row() if (OB_ITER_END == ret) { row_reach_end_ = true; } else if (OB_SUCC(ret)) { - if (spec_.get_phy_plan()->is_vectorized() - || spec_.get_phy_plan()->is_contains_assignment()) { + if (spec_.get_phy_plan()->is_vectorized()) { ObDatum *res = NULL; FOREACH_CNT_X(e, spec_.output_, OB_SUCC(ret)) { if (OB_FAIL((*e)->eval(eval_ctx_, res))) { @@ -1124,7 +1210,8 @@ int ObOperator::get_next_batch(const int64_t max_row_cnt, const ObBatchRows *&ba if (OB_FAIL(check_stack_once())) { LOG_WARN("too deep recursive", K(ret)); } else { - if (OB_UNLIKELY(spec_.need_check_output_datum_ + if (OB_UNLIKELY(!spec_.plan_->get_use_rich_format() + && spec_.need_check_output_datum_ && brs_checker_)) { if (OB_FAIL(brs_checker_->check_datum_modified())) { LOG_WARN("check output datum failed", K(ret), "id", spec_.get_id(), "op_name", op_name()); @@ -1210,7 +1297,8 @@ int ObOperator::get_next_batch(const int64_t max_row_cnt, const ObBatchRows *&ba // do project if (OB_SUCC(ret) && brs_.size_ > 0) { FOREACH_CNT_X(e, spec_.output_, OB_SUCC(ret)) { - ret = (*e)->eval_batch(eval_ctx_, *brs_.skip_, brs_.size_); + ret = spec_.use_rich_format_ ? (*e)->eval_vector(eval_ctx_, brs_) + : (*e)->eval_batch(eval_ctx_, *brs_.skip_, brs_.size_); (*e)->get_eval_info(eval_ctx_).projected_ = true; } } @@ -1225,6 +1313,25 @@ int ObOperator::get_next_batch(const int64_t max_row_cnt, const ObBatchRows *&ba LOG_WARN("try push stash rows failed", K(ret)); } + if (brs_.end_ && 0 == brs_.size_) { + FOREACH_CNT_X(e, spec_.output_, OB_SUCC(ret)) { + if (UINT32_MAX != (*e)->vector_header_off_) { + // op's parent may not support vectoriation format, we need reset vector to VEC_UNIFORM/VEC_UNIFORM_CONST + // for op's parent to read data correctly. + + // for static const expr (not question mark or calculable expr), its vector header will always be VEC_UNIFORM_CONST + // and not changed since plan generation. + // for other exprs, if its vec format is already VEC_UNIFROM/VEC_UNIFORM_CONST, nothing should be done. + VectorFormat expr_fmt = (*e)->get_format(eval_ctx_); + if (expr_fmt == VEC_UNIFORM || expr_fmt == VEC_UNIFORM_CONST) { continue; } + if (OB_FAIL((*e)->init_vector(eval_ctx_, (*e)->is_batch_result() + ? VEC_UNIFORM : VEC_UNIFORM_CONST, brs_.size_))) { + LOG_WARN("failed to init vector", K(ret)); + } + } + } + } + if (OB_SUCC(ret)) { if (brs_.end_ && brs_.size_ >= 0) { batch_reach_end_ = true; // prepare to be end @@ -1262,7 +1369,9 @@ int ObOperator::get_next_batch(const int64_t max_row_cnt, const ObBatchRows *&ba } } - if (PHY_TABLE_SCAN != spec_.type_) { + // for operator which not use_rich_format, not maintain all_rows_active flag; + OZ (convert_vector_format()); + if (!spec_.use_rich_format_ && PHY_TABLE_SCAN != spec_.type_) { brs_.set_all_rows_active(false); } @@ -1270,6 +1379,40 @@ int ObOperator::get_next_batch(const int64_t max_row_cnt, const ObBatchRows *&ba return ret; } +// for old -> new(parent) operator, need init_vector for output exprs +// for new -> old(parent) operator, need cast format of output exprs to uniform +int ObOperator::convert_vector_format() +{ + int ret = OB_SUCCESS; + if (NULL != spec_.get_parent() && + spec_.get_parent()->use_rich_format_ && !spec_.use_rich_format_) { + // old operator -> new operator + FOREACH_CNT_X(e, spec_.output_, OB_SUCC(ret)) { + VectorFormat format = (*e)->is_batch_result() ? VEC_UNIFORM : VEC_UNIFORM_CONST; + LOG_TRACE("init vector", K(format), K(*e)); + VectorFormat expr_fmt = (*e)->get_format(eval_ctx_); + if (expr_fmt == VEC_UNIFORM || expr_fmt == VEC_UNIFORM_CONST) { + continue; + } + if (OB_FAIL((*e)->init_vector(eval_ctx_, format, brs_.size_))) { + LOG_WARN("expr evaluate failed", K(ret), KPC(*e), K_(eval_ctx)); + } + } + } else if ((spec_.use_rich_format_ && (&spec_ == spec_.plan_->get_root_op_spec() + && !IS_TRANSMIT(spec_.type_))) + || (spec_.use_rich_format_ && + NULL != spec_.get_parent() && !spec_.get_parent()->use_rich_format_)) { + // new operator -> old operator + FOREACH_CNT_X(e, spec_.output_, OB_SUCC(ret)) { + LOG_TRACE("cast to uniform", K(*e)); + if (OB_FAIL((*e)->cast_to_uniform(brs_.size_, eval_ctx_, brs_.skip_))) { + LOG_WARN("expr evaluate failed", K(ret), KPC(*e), K_(eval_ctx)); + } + } + } + return ret; +} + int ObOperator::filter_row(ObEvalCtx &eval_ctx, const ObIArray &exprs, bool &filtered) { ObDatum *datum = NULL; @@ -1291,6 +1434,26 @@ int ObOperator::filter_row(ObEvalCtx &eval_ctx, const ObIArray &exprs, return ret; } +int ObOperator::filter_row_vector(ObEvalCtx &eval_ctx, + const common::ObIArray &exprs, + const sql::ObBitVector &skip_bit, + bool &filtered) +{ + int ret = OB_SUCCESS; + filtered = false; + const int64_t batch_idx = eval_ctx.get_batch_idx(); + EvalBound eval_bound(eval_ctx.get_batch_size(), batch_idx, batch_idx + 1, false); + FOREACH_CNT_X(e, exprs, OB_SUCC(ret) && !filtered) { + if (OB_FAIL((*e)->eval_vector(eval_ctx, skip_bit, eval_bound))) { + LOG_WARN("Failed to evaluate vector", K(ret)); + } else { + ObIVector *res = (*e)->get_vector(eval_ctx); + filtered = !res->is_true(batch_idx); + } + } + return ret; +} + int ObOperator::filter(const common::ObIArray &exprs, bool &filtered) { return filter_row(eval_ctx_, exprs, filtered); @@ -1302,7 +1465,76 @@ int ObOperator::filter_rows(const ObExprPtrIArray &exprs, bool &all_filtered, bool &all_active) { - return filter_batch_rows(exprs, skip, bsize, all_filtered, all_active); + return spec_.use_rich_format_ + ? filter_vector_rows(exprs, skip, bsize, all_filtered, all_active) + : filter_batch_rows(exprs, skip, bsize, all_filtered, all_active); + +} + +int ObOperator::filter_vector_rows(const ObExprPtrIArray &exprs, + ObBitVector &skip, + const int64_t bsize, + bool &all_filtered, + bool &all_active) +{ + int ret = OB_SUCCESS; + all_filtered = false; + bool tmp_all_active = true; + FOREACH_CNT_X(e, exprs, OB_SUCC(ret) && !all_filtered) { + int64_t output_rows = 0; + OB_ASSERT(ob_is_int_tc((*e)->datum_meta_.type_)); + ObIVector *vec = NULL; + if (OB_FAIL((*e)->eval_vector(eval_ctx_, skip, bsize, all_active))) { + LOG_WARN("evaluate batch failed", K(ret), K_(eval_ctx)); + } else if (FALSE_IT(vec = (*e)->get_vector(eval_ctx_))) { + // do nothing + } else if (!(*e)->is_batch_result()) { + ObUniformBase *const_vec = static_cast(vec); + ObDatum &d = const_vec->get_datums()[0]; + if (d.null_ || 0 == *d.int_) { + skip.set_all(bsize); + tmp_all_active = false; + } else { + output_rows++; + } + LOG_DEBUG("const vector filter", K(bsize)); + } else if (OB_LIKELY(VEC_FIXED == vec->get_format())) { + ObFixedLengthBase *fixed_vec = static_cast(vec); + ObBitVector *nulls = fixed_vec->get_nulls(); + int64_t *int_arr = reinterpret_cast(fixed_vec->get_data()); + ObBitVector::flip_foreach(skip, bsize, + [&](int64_t idx) __attribute__((always_inline)) { + if (0 == int_arr[idx] || nulls->at(idx)) { + skip.set(idx); + tmp_all_active = false; + } else { + output_rows++; + } + return OB_SUCCESS; + } + ); + LOG_DEBUG("fixed vector filter", K(bsize)); + } else if (VEC_UNIFORM == vec->get_format()) { + ObUniformBase *uniform_vec = static_cast(vec); + const ObDatum *datums = uniform_vec->get_datums(); + for (int64_t i = 0; i < bsize; i++) { + if (!skip.at(i)) { + if (datums[i].null_ || 0 == *datums[i].int_) { + skip.set(i); + tmp_all_active = false; + } else { + output_rows++; + } + } + } + // FIXME bin.lb: add output_rows to ObBatchRows? + LOG_DEBUG("uniform vector filter", K(bsize)); + } + all_filtered = (0 == output_rows); + all_active &= tmp_all_active; + } + + return ret; } int ObOperator::filter_batch_rows(const ObExprPtrIArray &exprs, diff --git a/src/sql/engine/ob_operator.h b/src/sql/engine/ob_operator.h index 3c22b5b6a..4ce136082 100644 --- a/src/sql/engine/ob_operator.h +++ b/src/sql/engine/ob_operator.h @@ -210,6 +210,7 @@ struct ObDynamicParamSetter virtual ~ObDynamicParamSetter() {} int set_dynamic_param(ObEvalCtx &eval_ctx) const; + int set_dynamic_param_vec2(ObEvalCtx &eval_ctx, const sql::ObBitVector &skip_bit) const; int set_dynamic_param(ObEvalCtx &eval_ctx, common::ObObjParam *¶m) const; int update_dynamic_param(ObEvalCtx &eval_ctx, common::ObDatum &datum) const; @@ -234,7 +235,7 @@ class ObOpSpec virtual ~ObOpSpec(); DECLARE_VIRTUAL_TO_STRING; - const char *op_name() const { return ob_phy_operator_type_str(type_); } + const char *op_name() const { return ob_phy_operator_type_str(type_, use_rich_format_); } // Pre-order recursive create execution components (ObOperator and ObOperatorInput) // for current DFO. @@ -277,7 +278,7 @@ class ObOpSpec int32_t get_child_num() const { return get_child_cnt(); } ObPhyOperatorType get_type() const { return type_; } uint64_t get_id() const { return id_; } - const char *get_name() const { return get_phy_op_name(type_); } + const char *get_name() const { return get_phy_op_name(type_, use_rich_format_); } int accept(ObOpSpecVisitor &visitor) const; int64_t get_rows() const { return rows_; } @@ -346,6 +347,7 @@ class ObOpSpec int64_t plan_depth_; int64_t max_batch_size_; bool need_check_output_datum_; + bool use_rich_format_; ObCompressorType compress_type_; private: @@ -452,6 +454,8 @@ class ObOperator // clear evaluated flag of current datum (ObEvalCtx::batch_idx_) of batch. inline void clear_datum_eval_flag(); + void reset_output_format(); + // check execution status: timeout, session kill, interrupted .. int check_status(); // check execution status every CHECK_STATUS_TRY_TIMES tries. @@ -475,6 +479,10 @@ class ObOperator static int filter_row(ObEvalCtx &eval_ctx, const common::ObIArray &exprs, bool &filtered); + static int filter_row_vector(ObEvalCtx &eval_ctx, + const common::ObIArray &exprs, + const sql::ObBitVector &skip_bit, + bool &filtered); ObBatchRows &get_brs() { return brs_; } // Drain exchange in data for PX, or producer DFO will be blocked. int drain_exch(); @@ -534,6 +542,25 @@ class ObOperator } else { SQL_ENG_LOG(WARN, "Failed to get_next_row", K(ret)); } + /* + SORT (output: cast_expr, order_by: cast_expr) + TSC (output: cast_expr, filter: like(cast_expr, pattern_expr), access virtual table) + */ + // output expr may have non-uniform format, and is shared and outputed in parent operator + // if parent is a vectorized operator which doesn't enable rich format + // cast_to_uniform is called when parent projecting expr and corresponding `datum.ptr_` becomes dangling pointer + // thus here we reset format to VEC_INVALID + if (OB_SUCC(ret)) { + FOREACH_CNT_X(e, spec_.output_, OB_SUCC(ret)) { + ObExpr *expr = *e; + // only non-uniform format need to set to vec_invalid + // if expr is a literal const expr, we can't set format_ to vec_invalid + // otherwise another thread using the same plan may read unexpected format + if (expr->enable_rich_format() && !is_uniform_format(expr->get_format(eval_ctx_))) { + expr->get_vector_header(eval_ctx_).format_ = VEC_INVALID; + } + } + } } else { brs_.size_ = 1; brs_.end_ = false; @@ -555,6 +582,12 @@ class ObOperator const int64_t bsize, bool &all_filtered, bool &all_active); + int filter_vector_rows(const ObExprPtrIArray &exprs, + ObBitVector &skip, + const int64_t bsize, + bool &all_filtered, + bool &all_active); + int convert_vector_format(); int check_stack_once(); int output_expr_decint_datum_len_check(); int output_expr_decint_datum_len_check_batch(); diff --git a/src/sql/engine/ob_phy_operator_type.h b/src/sql/engine/ob_phy_operator_type.h index de1b482c6..ae79a555e 100644 --- a/src/sql/engine/ob_phy_operator_type.h +++ b/src/sql/engine/ob_phy_operator_type.h @@ -116,9 +116,35 @@ PHY_OP_DEF(PHY_VALUES_TABLE_ACCESS) /* end of phy operator type */ PHY_OP_DEF(PHY_NEW_OP_ADAPTER) PHY_OP_DEF(PHY_FAKE_TABLE) /* for testing only*/ +//TODO shengle improve operator name +PHY_OP_DEF(PHY_VEC_MATERIAL) +PHY_OP_DEF(PHY_VEC_HASH_GROUP_BY) +PHY_OP_DEF(PHY_VEC_HASH_DISTINCT) +PHY_OP_DEF(PHY_VEC_LIMIT) +PHY_OP_DEF(PHY_VEC_SCALAR_AGGREGATE) +PHY_OP_DEF(PHY_VEC_HASH_JOIN) +PHY_OP_DEF(PHY_VEC_PX_MERGE_SORT_RECEIVE) +PHY_OP_DEF(PHY_VEC_PX_MERGE_SORT_COORD) +PHY_OP_DEF(PHY_VEC_TEMP_TABLE_INSERT) +PHY_OP_DEF(PHY_VEC_TEMP_TABLE_ACCESS) +PHY_OP_DEF(PHY_VEC_TEMP_TABLE_TRANSFORMATION) +PHY_OP_DEF(PHY_VEC_SORT) +PHY_OP_DEF(PHY_VEC_MERGE_DISTINCT) +PHY_OP_DEF(PHY_VEC_HASH_UNION) +PHY_OP_DEF(PHY_VEC_HASH_INTERSECT) +PHY_OP_DEF(PHY_VEC_HASH_EXCEPT) +PHY_OP_DEF(PHY_VEC_WINDOW_FUNCTION) +PHY_OP_DEF(PHY_VEC_MERGE_GROUP_BY) +PHY_OP_DEF(PHY_VEC_MERGE_JOIN) +PHY_OP_DEF(PHY_VEC_MERGE_UNION) +PHY_OP_DEF(PHY_VEC_MERGE_INTERSECT) +PHY_OP_DEF(PHY_VEC_MERGE_EXCEPT) PHY_OP_DEF(PHY_EXPAND) +PHY_OP_DEF(PHY_VEC_NESTED_LOOP_JOIN) +PHY_OP_DEF(PHY_VEC_SUBPLAN_FILTER) PHY_OP_DEF(PHY_UNPIVOT_V2) PHY_OP_DEF(PHY_DDL_BLOCK_SAMPLE_SCAN) +PHY_OP_DEF(PHY_VEC_PX_MULTI_PART_SSTABLE_INSERT) PHY_OP_DEF(PHY_END) #endif /*PHY_OP_DEF*/ @@ -139,17 +165,18 @@ namespace sql #include "sql/engine/ob_phy_operator_type.h" #undef PHY_OP_DEF }; - const char *get_phy_op_name(ObPhyOperatorType type); + const char *get_phy_op_name(ObPhyOperatorType type, bool enable_rich_format = false); struct ObPhyOperatorTypeDescSet { struct ObPhyOperatorTypeDesc { const char *name_; - ObPhyOperatorTypeDesc() : name_(NULL) {} + const char *vec_name_; + ObPhyOperatorTypeDesc() : name_(NULL), vec_name_(NULL) {} }; ObPhyOperatorTypeDescSet(); - void set_type_str(ObPhyOperatorType type, const char *type_str); - const char *get_type_str(ObPhyOperatorType type) const; + void set_type_str(ObPhyOperatorType type, const char *type_str, const char *vec_name); + const char *get_type_str(ObPhyOperatorType type, bool enable_rich_format = false) const; private: ObPhyOperatorTypeDesc set_[PHY_END]; }; @@ -159,7 +186,7 @@ OB_INLINE bool is_phy_op_type_valid(ObPhyOperatorType type) return PHY_INVALID < type && type < PHY_END; } -const char *ob_phy_operator_type_str(ObPhyOperatorType type); +const char *ob_phy_operator_type_str(ObPhyOperatorType type, bool enable_rich_format = false); } } diff --git a/src/sql/engine/ob_physical_plan.cpp b/src/sql/engine/ob_physical_plan.cpp index 43a6b6c45..7ab0b59d4 100644 --- a/src/sql/engine/ob_physical_plan.cpp +++ b/src/sql/engine/ob_physical_plan.cpp @@ -113,7 +113,6 @@ ObPhysicalPlan::ObPhysicalPlan(MemoryContext &mem_context /* = CURRENT_CONTEXT * can_set_feedback_info_(true), need_switch_to_table_lock_worker_(false), data_complement_gen_doc_id_(false), - direct_load_need_sort_(false), insertup_can_do_gts_opt_(false), px_worker_share_plan_enabled_(false) { @@ -199,7 +198,6 @@ void ObPhysicalPlan::reset() can_set_feedback_info_.store(true); need_switch_to_table_lock_worker_ = false; data_complement_gen_doc_id_ = false; - direct_load_need_sort_ = false; insertup_can_do_gts_opt_ = false; px_worker_share_plan_enabled_ = false; } @@ -673,7 +671,6 @@ OB_SERIALIZE_MEMBER(ObPhysicalPlan, vars_, px_dop_, has_nested_sql_, - stat_.enable_early_lock_release_, use_pdml_, is_new_engine_, use_temp_table_, diff --git a/src/sql/engine/ob_physical_plan.h b/src/sql/engine/ob_physical_plan.h index 72bb61787..96332b91b 100644 --- a/src/sql/engine/ob_physical_plan.h +++ b/src/sql/engine/ob_physical_plan.h @@ -176,7 +176,6 @@ class ObPhysicalPlan : public ObPlanCacheObject uint64_t get_signature() const { return signature_; } void set_plan_hash_value(uint64_t v) { stat_.plan_hash_value_ = v; } int32_t *alloc_projector(int64_t projector_size); - int add_table_location(const ObPhyTableLocation &table_location); ObExprOperatorFactory &get_expr_op_factory() { return expr_op_factory_; } const ObExprOperatorFactory &get_expr_op_factory() const { return expr_op_factory_; } @@ -381,11 +380,6 @@ class ObPhysicalPlan : public ObPlanCacheObject const ObSubSchemaCtx &get_subschema_ctx() const { return subschema_ctx_; } int set_all_local_session_vars(ObIArray *all_local_session_vars); ObIArray & get_all_local_session_vars() { return all_local_session_vars_; } - void set_direct_load_need_sort(const bool direct_load_need_sort) - { - direct_load_need_sort_ = direct_load_need_sort; - } - bool get_direct_load_need_sort() const { return direct_load_need_sort_; } inline bool get_insertup_can_do_gts_opt() const {return insertup_can_do_gts_opt_; } inline void set_insertup_can_do_gts_opt(bool v) { insertup_can_do_gts_opt_ = v; } void set_is_use_auto_dop(bool use_auto_dop) { stat_.is_use_auto_dop_ = use_auto_dop; } @@ -552,7 +546,6 @@ class ObPhysicalPlan : public ObPlanCacheObject bool need_switch_to_table_lock_worker_; // for table lock switch worker thread bool data_complement_gen_doc_id_; private: - bool direct_load_need_sort_; bool insertup_can_do_gts_opt_; int64_t px_worker_share_plan_enabled_; }; diff --git a/src/sql/engine/ob_physical_plan_ctx.h b/src/sql/engine/ob_physical_plan_ctx.h index 3c3269df2..6bed31bc2 100644 --- a/src/sql/engine/ob_physical_plan_ctx.h +++ b/src/sql/engine/ob_physical_plan_ctx.h @@ -463,6 +463,9 @@ class ObPhysicalPlanCtx } const common::ObCurTraceId::TraceId &get_last_trace_id() const { return last_trace_id_; } common::ObCurTraceId::TraceId &get_last_trace_id() { return last_trace_id_; } + void set_rich_format(bool v) { enable_rich_format_ = v; } + bool is_rich_format() const { return enable_rich_format_; } + int get_sqludt_meta_by_subschema_id(uint16_t subschema_id, ObSqlUDTMeta &udt_meta) const; int get_sqludt_meta_by_subschema_id(uint16_t subschema_id, ObSubSchemaValue &sub_meta) const; bool is_subschema_ctx_inited(); @@ -498,7 +501,8 @@ class ObPhysicalPlanCtx int reserve_param_frame(const int64_t capacity); void get_param_frame_info(int64_t param_idx, ObDatum *&datum, - ObEvalInfo *&eval_info); + ObEvalInfo *&eval_info, + VectorHeader *&vec_header); int inner_get_subschema_id_by_type_info(const ObObjMeta &obj_meta, const ObIArray &type_info, uint16_t &subschema_id) const; @@ -621,6 +625,7 @@ class ObPhysicalPlanCtx int64_t plan_start_time_; const common::ObIArray *ps_fixed_array_index_; ObSubSchemaCtx subschema_ctx_; + bool enable_rich_format_; // for dependant exprs of generated columns common::ObFixedArray all_local_session_vars_; int64_t total_memstore_read_row_count_; diff --git a/src/sql/engine/px/exchange/ob_px_dist_transmit_op.cpp b/src/sql/engine/px/exchange/ob_px_dist_transmit_op.cpp index 5f0551342..907e62fd6 100644 --- a/src/sql/engine/px/exchange/ob_px_dist_transmit_op.cpp +++ b/src/sql/engine/px/exchange/ob_px_dist_transmit_op.cpp @@ -38,7 +38,11 @@ int ObPxDistTransmitOp::inner_open() LOG_WARN("PX transmit open failed", K(ret)); } else if (!MY_SPEC.sampling_saving_row_.empty()) { if (MY_SPEC.is_vectorized()) { - OZ(brs_holder_.init(MY_SPEC.sampling_saving_row_, eval_ctx_)); + if (!get_spec().use_rich_format_) { + OZ(brs_holder_.init(MY_SPEC.sampling_saving_row_, eval_ctx_)); + } else { + OZ(vec_holder_.init(MY_SPEC.sampling_saving_row_, eval_ctx_)); + } } else { OZ(last_row_.init(ctx_.get_allocator(), MY_SPEC.sampling_saving_row_.count())); } @@ -77,7 +81,7 @@ int ObPxDistTransmitOp::inner_get_next_row() int ObPxDistTransmitOp::inner_get_next_batch(const int64_t max_row_cnt) { - return next_batch(max_row_cnt); + return get_spec().use_rich_format_ ? next_vector(max_row_cnt) : next_batch(max_row_cnt); } int ObPxDistTransmitOp::next_batch(const int64_t max_row_cnt) @@ -131,6 +135,60 @@ int ObPxDistTransmitOp::next_batch(const int64_t max_row_cnt) return ret; } +int ObPxDistTransmitOp::next_vector(const int64_t max_row_cnt) +{ + int ret = OB_SUCCESS; + if (sample_done_ && NULL != cur_transmit_sampled_rows_) { + clear_evaluated_flag(); + int64_t size = std::min(std::min(max_row_cnt, MY_SPEC.max_batch_size_), + cur_transmit_sampled_rows_->second - cur_transmit_sampled_rows_->first); + for (int64_t i = 0; + i < MY_SPEC.sampling_saving_row_.count() && OB_SUCC(ret); i++) { + if (OB_FAIL(MY_SPEC.sampling_saving_row_.at(i)->init_vector( + eval_ctx_, + MY_SPEC.sampling_saving_row_.at(i)->is_batch_result() + ? VEC_UNIFORM + : VEC_UNIFORM_CONST, + size))) { + LOG_WARN("init vector failed", K(ret)); + } + } + if (OB_SUCC(ret)) { + brs_.size_ = size; + brs_.end_ = false; + brs_.skip_->reset(brs_.size_); + ObEvalCtx::BatchInfoScopeGuard g(eval_ctx_); + g.set_batch_size(brs_.size_); + sampled_input_rows_it_age_.inc(); + for (int64_t i = 0; OB_SUCC(ret) && i < brs_.size_; i++) { + g.set_batch_idx(i); + const ObRADatumStore::StoredRow *sr = NULL; + OZ(sampled_input_rows_.get_row(cur_transmit_sampled_rows_->first + i, sr)); + OZ(sr->to_expr(MY_SPEC.sampling_saving_row_, eval_ctx_)); + if (OB_SUCC(ret)) { + LOG_DEBUG("fetch row for transmit", "row", ROWEXPR2STR(eval_ctx_, MY_SPEC.sampling_saving_row_)); + } + } + } + if (OB_SUCC(ret)) { + cur_transmit_sampled_rows_->first += brs_.size_; + if (cur_transmit_sampled_rows_->first >= cur_transmit_sampled_rows_->second) { + if (cur_transmit_sampled_rows_ + == &sampled_rows2transmit_.at(sampled_rows2transmit_.count() - 1)) { + cur_transmit_sampled_rows_ = NULL; + } else { + cur_transmit_sampled_rows_ += 1; + } + } + } + } else { + OZ(vec_holder_.restore()); + vec_holder_.reset(); + OZ(ObPxTransmitOp::inner_get_next_batch(max_row_cnt)); + } + return ret; +} + int ObPxDistTransmitOp::do_transmit() { int ret = OB_SUCCESS; @@ -306,8 +364,14 @@ int ObPxDistTransmitOp::do_broadcast_dist() ObBroadcastSliceIdCalc slice_id_calc(ctx_.get_allocator(), task_channels_.count(), MY_SPEC.null_row_dist_method_); - if (OB_FAIL(broadcast_rows(slice_id_calc))) { - LOG_WARN("row distribution failed", K(ret)); + if (get_spec().use_rich_format_) { + if (OB_FAIL(broadcast_rows(slice_id_calc))) { + LOG_WARN("row distribution failed", K(ret)); + } + } else { + if (OB_FAIL(broadcast_rows(slice_id_calc))) { + LOG_WARN("row distribution failed", K(ret)); + } } return ret; } @@ -548,7 +612,11 @@ int ObPxDistTransmitOp::build_row_sample_piece_msg(int64_t expected_range_count, ObCtxIds::WORK_AREA, "PxSampleRow")); sampled_input_rows_.set_io_observer(&io_event_observer_); if (is_vectorized()) { - OZ(add_batch_row_for_piece_msg(*sample_store)); + if (get_spec().use_rich_format_) { + OZ(add_batch_row_for_piece_msg_vec(*sample_store)); + } else { + OZ(add_batch_row_for_piece_msg(*sample_store)); + } } else { OZ(add_row_for_piece_msg(*sample_store)); } @@ -774,6 +842,108 @@ int ObPxDistTransmitOp::add_batch_row_for_piece_msg(ObChunkDatumStore &sample_st return ret; } +int ObPxDistTransmitOp::add_batch_row_for_piece_msg_vec(ObChunkDatumStore &sample_store) +{ + int ret = OB_SUCCESS; + if (iter_end_) { + // do nothing + } else { + int64_t max_input_rows = HEADER_INPUT_SAMPLE == MY_SPEC.sample_type_ + ? DYNAMIC_SAMPLE_ROW_COUNT + : INT64_MAX; + int64_t mem_hold = 0; + do { + // For auto memory manage, ObRADatumStore can not shrink memory used right now, + // no need to update memory statistics after dumped + if (!sampled_input_rows_.is_file_open()) { + bool updated = false; + OZ(sql_mem_processor_.update_max_available_mem_size_periodically( + &mem_context_->get_malloc_allocator(), + [&](int64_t loop_cnt) { return sampled_input_rows_.get_row_cnt() > loop_cnt; }, + updated)); + if (OB_SUCC(ret) && updated) { + sampled_input_rows_.set_mem_limit(sql_mem_processor_.get_mem_bound()); + } + if (sampled_input_rows_.get_mem_hold() != mem_hold) { + mem_hold = sampled_input_rows_.get_mem_hold(); + // try extend memory bound when used memory close to memory bound. + if (GCONF.is_sql_operator_dump_enabled() + && mem_hold >= sql_mem_processor_.get_mem_bound() - ObRADatumStore::BIG_BLOCK_SIZE) { + bool dumped = false; + OZ(sql_mem_processor_.extend_max_memory_size( + &mem_context_->get_malloc_allocator(), + [&](int64_t mem_bould) { return mem_hold > mem_bould; }, + dumped, mem_hold)); + if (OB_SUCC(ret)) { + sampled_input_rows_.set_mem_limit(sql_mem_processor_.get_mem_bound()); + } + } + } + } else { + if (profile_.get_number_pass() == 0) { + profile_.set_number_pass(1); + } + } + + // add batch rows to sampled input row store. + { + ObEvalCtx::BatchInfoScopeGuard g(eval_ctx_); + g.set_batch_size(brs_.size_); + for (int64_t i = 0; OB_SUCC(ret) && i < brs_.size_; i++) { + if (brs_.skip_->at(i)) { + continue; + } + g.set_batch_idx(i); + OZ(sampled_input_rows_.add_row(MY_SPEC.sampling_saving_row_, &eval_ctx_)); + } + } + if (OB_SUCC(ret)) { + int64_t cnt = std::min(max_input_rows - sampled_input_rows_.get_row_cnt(), + MY_SPEC.max_batch_size_); + if (cnt > 0) { + ret = inner_get_next_batch(cnt); + FOREACH_CNT_X(e, MY_SPEC.sampling_saving_row_, OB_SUCC(ret)) { + if (OB_FAIL((*e)->cast_to_uniform(brs_.size_, eval_ctx_, brs_.skip_))) { + LOG_WARN("cast expr to uniform failed", K(ret), KPC(*e), K_(eval_ctx)); + } + } + } + } + } while (OB_SUCC(ret) + && sampled_input_rows_.get_row_cnt() < max_input_rows + && !(brs_.end_ && brs_.size_ == 0)); + + if (OB_FAIL(ret)) { + } else if (!brs_.end_) { + OZ(vec_holder_.save(std::min((int64_t)DYNAMIC_SAMPLE_ROW_COUNT, MY_SPEC.max_batch_size_))); + } else { + brs_.end_ = false; + } + OZ(setup_sampled_rows_output()); + + if (OB_SUCC(ret)) { + const int64_t input_rows = sampled_input_rows_.get_row_cnt(); + int64_t sample_rows = input_rows / DYNAMIC_SAMPLE_INTERVAL; + sample_rows = std::max(sample_rows, std::min(input_rows, (int64_t)DYNAMIC_SAMPLE_ROW_COUNT)); + sample_rows = std::min(sample_rows, (int64_t)MAX_DYNAMIC_SAMPLE_ROW_COUNT); + const int64_t step = input_rows / sample_rows; + + ObEvalCtx::BatchInfoScopeGuard g(eval_ctx_); + g.set_batch_size(1); + g.set_batch_idx(0); + for (int64_t i = 0; OB_SUCC(ret) && i < input_rows; i += step) { + clear_evaluated_flag(); + const ObRADatumStore::StoredRow *sr = NULL; + OZ(sampled_input_rows_.get_row(i, sr)); + OZ(sr->to_expr(MY_SPEC.sampling_saving_row_, eval_ctx_)); + OZ(sample_store.add_row(MY_SPEC.dist_exprs_, &eval_ctx_)); + } + clear_evaluated_flag(); + } + } + return ret; +} + int ObPxDistTransmitOp::setup_sampled_rows_output() { int ret = OB_SUCCESS; diff --git a/src/sql/engine/px/exchange/ob_px_ms_coord_vec_op.cpp b/src/sql/engine/px/exchange/ob_px_ms_coord_vec_op.cpp new file mode 100644 index 000000000..14ace535e --- /dev/null +++ b/src/sql/engine/px/exchange/ob_px_ms_coord_vec_op.cpp @@ -0,0 +1,613 @@ +/* + * Copyright (c) 2025 OceanBase. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define USING_LOG_PREFIX SQL_ENG + +#include "ob_px_ms_coord_vec_op.h" + +namespace oceanbase +{ +using namespace common; +using namespace sql; +using namespace sql::dtl; +namespace sql +{ + +OB_SERIALIZE_MEMBER((ObPxMSCoordVecOpInput, ObPxReceiveOpInput)); + +OB_SERIALIZE_MEMBER((ObPxMSCoordVecSpec, ObPxCoordSpec), + all_exprs_, + sort_collations_, + sort_cmp_funs_); + +int ObPxMSCoordVecOp::ObPxMSCoordVecOpEventListener::on_root_data_channel_setup() +{ + int ret = OB_SUCCESS; + // root dfo's receive channel sets are used locally, no need to send through DTL + // Directly register to msg_loop to receive datais sufficient + int64_t cnt = px_coord_op_.task_ch_set_.count(); + // FIXME: msg_loop_ do not unregister_channel, avoid this ...start_ index change ? + // dtl data channel register when create channel, so msg_loop_ contains data channels + px_coord_op_.receive_order_.set_data_channel_idx_range( + px_coord_op_.msg_loop_.get_channel_count() - cnt, + px_coord_op_.msg_loop_.get_channel_count()); + // Here you must initialize row heap here, because row heap can only be established after obtaining the data channel, + // But px coord inner_get_next_row logic must start to run, i.e., must receive control msg etc., + // So data channel is lagged a bit + if (OB_FAIL(px_coord_op_.init_row_heap(cnt))) { + LOG_WARN("failed to init row heap", K(ret), K(cnt)); + } else { + LOG_TRACE("px coord setup", K(cnt), K(px_coord_op_.msg_loop_.get_channel_count())); + } + return ret; +} + +int ObPxMSCoordVecOp::receive_channel_root_dfo(ObExecContext &ctx, + ObDfo &parent, + ObPxTaskChSets &parent_ch_sets) +{ + int ret = OB_SUCCESS; + OZ(ObPxCoordOp::receive_channel_root_dfo(ctx, parent, parent_ch_sets)); + OZ(setup_readers()); + return ret; +} + +int ObPxMSCoordVecOp::receive_channel_root_dfo(ObExecContext &ctx, + ObDfo &parent, + dtl::ObDtlChTotalInfo &ch_info) +{ + int ret = OB_SUCCESS; + OZ(ObPxCoordOp::receive_channel_root_dfo(ctx, parent, ch_info)); + OZ(setup_readers()); + return ret; +} + +ObPxMSCoordVecOp::ObPxMSCoordVecOp(ObExecContext &exec_ctx, const ObOpSpec &spec, ObOpInput *input) +: ObPxCoordOp(exec_ctx, spec, input), + listener_(*this), + serial_scheduler_(coord_info_, *this, listener_), + parallel_scheduler_(coord_info_, *this, listener_, msg_proc_), + msg_proc_(coord_info_, listener_, *this), + sqc_finish_msg_proc_(exec_ctx, msg_proc_), + sqc_init_msg_proc_(exec_ctx, msg_proc_), + barrier_piece_msg_proc_(exec_ctx, msg_proc_), + winbuf_piece_msg_proc_(exec_ctx, msg_proc_), + interrupt_proc_(exec_ctx, msg_proc_), + sample_piece_msg_proc_(exec_ctx, msg_proc_), + rd_wf_piece_msg_proc_(exec_ctx, msg_proc_), + init_channel_piece_msg_proc_(exec_ctx, msg_proc_), + reporting_wf_piece_msg_proc_(exec_ctx, msg_proc_), + opt_stats_gather_piece_msg_proc_(exec_ctx, msg_proc_), + rd_winfunc_px_piece_msg_proc_(exec_ctx, msg_proc_), + sp_winfunc_px_piece_msg_proc_(exec_ctx, msg_proc_), + join_filter_count_row_piece_msg_proc_(exec_ctx, msg_proc_), + store_rows_(), + last_pop_row_(nullptr), + row_heap_(), + receive_order_(row_heap_), + finish_ch_cnt_(0), + all_rows_finish_(false), + readers_(NULL), + reader_cnt_(0), + alloc_(), + single_row_brs_(), + output_store_() +{ +} + +void ObPxMSCoordVecOp::destroy() +{ + last_pop_row_ = nullptr; + row_heap_.reset(); + store_rows_.reset(); + destroy_readers(); + alloc_.reset(); + output_store_.~ObTempRowStore(); + // no need to reset receive_order_ + // no need to reset interrupt_proc_ + // no need to reset sqc_init_msg_proc_ + // no need to reset sqc_finish_msg_proc_ + // no need to reset msg_proc_ + // no need to reset listener_ + ObPxCoordOp::destroy(); +} + +int ObPxMSCoordVecOp::inner_open() +{ + int ret = OB_SUCCESS; + if (OB_FAIL(ObPxCoordOp::inner_open())) { + LOG_WARN("fail close op", K(MY_SPEC.id_), K(ret)); + } else if (OB_FAIL(setup_loop_proc())) { + LOG_WARN("fail setup loop proc", K(ret)); + } else if (!MY_SPEC.use_rich_format_) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("get invalid state", K(ret)); + } else { + if (use_serial_scheduler_) { + msg_proc_.set_scheduler(&serial_scheduler_); + } else { + msg_proc_.set_scheduler(¶llel_scheduler_); + } + alloc_.set_label(common::ObModIds::OB_SQL_PX); + + metric_.set_id(MY_SPEC.id_); + void *mem = NULL; + ObMemAttr attr("PxMsOutputStore", ObCtxIds::EXECUTE_CTX_ID); + if (OB_FAIL(output_store_.init(MY_SPEC.all_exprs_, get_spec().max_batch_size_, + attr, 0 /*mem_limit*/, false/*enable_dump*/, + 0 /*row_extra_size*/, NONE_COMPRESSOR))) { + LOG_WARN("init output store failed", K(ret)); + } else if (OB_ISNULL(mem = ctx_.get_allocator().alloc( + ObBitVector::memory_size(1)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc memory for skip", K(ret)); + } else { + single_row_brs_.skip_ = to_bit_vector(mem); + single_row_brs_.skip_->reset(1); + single_row_brs_.size_ = 1; + single_row_brs_.all_rows_active_ = true; + } + } + return ret; +} + +int ObPxMSCoordVecOp::inner_rescan() +{ + px_row_msg_proc_.set_reader(NULL); + output_iter_.reset(); + output_store_.reset(); + finish_ch_cnt_ = 0; + all_rows_finish_ = false; + destroy_readers(); + row_heap_.reset_heap(); + int ret = ObPxCoordOp::inner_rescan(); + return ret; +} + +int ObPxMSCoordVecOp::setup_loop_proc() +{ + int ret = OB_SUCCESS; + // disable data read before readers setup. + px_row_msg_proc_.set_reader(NULL); + + msg_loop_.clear_all_proc(); + (void)msg_loop_ + .register_processor(px_row_msg_proc_) + .register_processor(sqc_init_msg_proc_) + .register_processor(sqc_finish_msg_proc_) + .register_processor(barrier_piece_msg_proc_) + .register_processor(winbuf_piece_msg_proc_) + .register_processor(sample_piece_msg_proc_) + .register_processor(rd_wf_piece_msg_proc_) + .register_processor(init_channel_piece_msg_proc_) + .register_processor(reporting_wf_piece_msg_proc_) + .register_processor(opt_stats_gather_piece_msg_proc_) + .register_processor(rd_winfunc_px_piece_msg_proc_) + .register_processor(sp_winfunc_px_piece_msg_proc_) + .register_processor(join_filter_count_row_piece_msg_proc_) + .register_interrupt_processor(interrupt_proc_); + + return ret; +} + +int ObPxMSCoordVecOp::init_store_rows(int64_t n_ways) +{ + int ret = OB_SUCCESS; + if (0 < store_rows_.count() || 0 == n_ways) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected status: store rows is not empty", K(ret), K(n_ways)); + } + for (int64_t i = 0; i < n_ways && OB_SUCC(ret); ++i) { + void *buf = alloc_.alloc(sizeof(LastCompactRow)); + if (OB_ISNULL(buf)) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloca memory", K(ret)); + } else { + LastCompactRow *store_row = new(buf)LastCompactRow(alloc_); + store_row->reuse_ = true; + if (OB_FAIL(store_rows_.push_back(store_row))) { + LOG_WARN("failed to push back", K(ret)); + } + } + } + return ret; +} + +int ObPxMSCoordVecOp::init_row_heap(int64_t n_ways) +{ + int ret = OB_SUCCESS; + if (OB_FAIL(init_store_rows(n_ways))) { + LOG_WARN("failed to init store rows", K(ret)); + } else if (OB_FAIL(row_heap_.init(n_ways, + &MY_SPEC.sort_collations_, + &MY_SPEC.sort_cmp_funs_))) { + LOG_WARN("fail init row heap for root dfo", "heap", row_heap_, K(ret)); + } + return ret; +} + +int ObPxMSCoordVecOp::setup_readers() +{ + int ret = OB_SUCCESS; + CK(task_channels_.count() > 0); + CK(NULL == readers_); + if (OB_SUCC(ret)) { + readers_ = static_cast(alloc_.alloc( + sizeof(*readers_) * task_channels_.count())); + if (NULL == readers_) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("allocate memory failed", K(ret)); + } else { + reader_cnt_ = task_channels_.count(); + bool reorder_fixed_expr = true; + common::ObIAllocator *allocator = &ctx_.get_allocator(); + for (int64_t i = 0; i < reader_cnt_; i++) { + new (&readers_[i]) ObReceiveRowReader(get_spec().id_, + &(static_cast(spec_).child_exprs_), + reorder_fixed_expr, + allocator); + } + } + } + if (OB_SUCC(ret)) { + int64_t idx = row_heap_.writable_channel_idx(); + if (idx < 0 || idx >= reader_cnt_) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("invalid heap writeable channel idx", K(ret)); + } else { + px_row_msg_proc_.set_reader(readers_ + idx); + } + } + return ret; +} + +void ObPxMSCoordVecOp::destroy_readers() +{ + if (NULL != readers_) { + for (int64_t i = 0; i < reader_cnt_; i++) { + readers_[i].~ObReceiveRowReader(); + } + alloc_.free(readers_); + readers_ = NULL; + reader_cnt_ = 0; + } + px_row_msg_proc_.set_reader(NULL); +} + +void ObPxMSCoordVecOp::reset_readers() +{ + if (NULL != readers_) { + int64_t idx = row_heap_.writable_channel_idx(); + for (int64_t i = 0; i < reader_cnt_; i++) { + readers_[i].reset(); + } + px_row_msg_proc_.set_reader(readers_ + idx); + } +} + +int ObPxMSCoordVecOp::free_allocator() +{ + int ret = OB_SUCCESS; + last_pop_row_ = nullptr; + // + //the heap shoud be empty before store_rows_.reset(); + while(OB_SUCC(ret) && row_heap_.count() > 0) { + const LastCompactRow *pop_row = nullptr; + if (OB_SUCC(row_heap_.raw_pop(pop_row))) { + row_heap_.shrink(); + } else { + LOG_WARN("pop data fail", K(row_heap_), K(ret)); + } + } + store_rows_.reset(); + alloc_.reset(); + return ret; +} + +int ObPxMSCoordVecOp::inner_close() +{ + int ret = OB_SUCCESS; + finish_ch_cnt_ = 0; + all_rows_finish_ = false; + output_iter_.reset(); + output_store_.reset(); + if (OB_FAIL(ObPxCoordOp::inner_close())) { + LOG_WARN("fail close op", K(MY_SPEC.id_), K(ret)); + } + destroy_readers(); + int tmp_ret = OB_SUCCESS; + if (OB_SUCCESS != (tmp_ret = free_allocator())) { + LOG_WARN("failed to free allcator", K(ret), K(tmp_ret), K(ret)); + ret = tmp_ret; + } + LOG_TRACE("byebye. exit MergeSort QC Coord"); + return ret; +} + +int ObPxMSCoordVecOp::inner_get_next_batch(const int64_t max_row_cnt) +{ + int ret = OB_SUCCESS; + if (output_iter_.is_valid() && output_iter_.has_next()) { + // do nothing. + } else { + output_iter_.reset(); + output_store_.reset(); + for (int64_t i = 0; i < max_row_cnt && OB_SUCC(ret); i++) { + if (OB_FAIL(next_row(true))) { + if (OB_ITER_END != ret) { + LOG_WARN("next row failed", K(ret)); + } + } + } + if (OB_ITER_END == ret) { + ret = OB_SUCCESS; + } + if (OB_SUCC(ret) && OB_FAIL(output_store_.begin(output_iter_))) { + LOG_WARN("init temp row store iterator failed", K(ret)); + } + } + if (OB_SUCC(ret)) { + const ObIArray &all_exprs = MY_SPEC.all_exprs_; + brs_.all_rows_active_ = true; + brs_.reset_skip(brs_.size_); + if (OB_SUCC(ret)) { + int64_t read_rows = 0; + if (OB_FAIL(output_iter_.get_next_batch(MY_SPEC.all_exprs_, eval_ctx_, max_row_cnt, read_rows))) { + if (OB_ITER_END != ret) { + LOG_WARN("get next batch failed", K(ret)); + } else { + ret = OB_SUCCESS; + if (iter_end_) { + brs_.end_ = true; + } + } + } + brs_.size_ = read_rows; + } + } + return ret; +} + +int ObPxMSCoordVecOp::next_row(const bool need_store_output) +{ + int ret = OB_SUCCESS; + ObPhysicalPlanCtx *phy_plan_ctx = GET_PHY_PLAN_CTX(ctx_); + if (iter_end_) { + ret = OB_ITER_END; + } else if (OB_UNLIKELY(!first_row_fetched_)) { + // Drive initial DFO distribution + if (OB_FAIL(msg_proc_.startup_msg_loop(ctx_))) { + LOG_WARN("initial dfos NOT dispatched successfully", K(ret)); + } + first_row_fetched_ = true; // control no longer actively calling startup_msg_loop, subsequent loops are message triggered + } + bool wait_next_msg = true; // Control whether to exit the while loop, return row to the upper operator + while (OB_SUCC(ret) && wait_next_msg) { + // loop registered the SQC-QC control channel, as well as TASKs-QC data channel + // To achieve orderly receive, TASKs-QC channel needs to be added one by one to the loop + int64_t timeout_us = 0; + int64_t nth_channel = OB_INVALID_INDEX_INT64; + clear_evaluated_flag(); + clear_dynamic_const_parent_flag(); + if (row_heap_.capacity() > 0) { + int64_t idx = row_heap_.writable_channel_idx(); + ObReceiveRowReader *reader = (NULL != readers_ && idx < reader_cnt_) ? &readers_[idx] : NULL; + ObDtlChannel *ch = msg_loop_.get_channel(idx + receive_order_.get_data_channel_start_idx()); + if (NULL == ch || NULL == reader) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("reader or channel is NULL"); + } else if (OB_FAIL(ctx_.fast_check_status())) { + LOG_WARN("failed to check status", K(ret)); + } else { + if (reader->has_more() || ch->is_eof()) { + ret = next_row_from_heap(*reader, wait_next_msg, need_store_output); + if (!first_row_sent_) { + first_row_sent_ = true; + LOG_TRACE("TIMERECORD ", + "reserve:=1 name:=RQC dfoid:=-1 sqcid:=-1 taskid:=-1 start:", + ObTimeUtility::current_time()); + } + continue; + } else { + // fetch row for writable index reader + px_row_msg_proc_.set_reader(reader); + } + } + } + + // process end condition: + // 1. all rows returned + // 2. all SQC report worker execution finish + if (OB_SUCCESS == ret) { + if (all_rows_finish_ && coord_info_.all_threads_finish_) { + (void) msg_proc_.on_process_end(ctx_); + ret = OB_ITER_END; + LOG_TRACE("all rows received, all sqcs reported, qc says: byebye!", K(ret)); + LOG_TRACE("TIMERECORD ", + "reserve:=1 name:=RQC dfoid:=-1 sqcid:=-1 taskid:=-1 end:", + ObTimeUtility::current_time()); + } + } + + if (OB_FAIL(ret)) { + } else if (OB_FAIL(ctx_.fast_check_status())) { + LOG_WARN("fail check status, maybe px query timeout", K(ret)); + } else if (OB_FAIL(msg_loop_.process_one_if(&receive_order_, nth_channel))) { + if (OB_DTL_WAIT_EAGAIN == ret) { + LOG_TRACE("no message, try again", K(ret)); + ret = OB_SUCCESS; + // if no data, then unblock blocked data channel, if not, dtl maybe hang + // bug#28253162 + if (0 < row_heap_.capacity() && first_row_sent_) { + if (OB_FAIL(msg_loop_.unblock_channel(receive_order_.get_data_channel_start_idx(), + row_heap_.writable_channel_idx()))) { + LOG_WARN("failed to unblock channels", K(ret)); + } else { + LOG_DEBUG("unblocked data channel", K(ret)); + } + } + } else if (OB_ITER_END != ret) { + LOG_WARN("fail process message", K(ret)); + } + } else { + ObDtlMsgType msg_type = msg_loop_.get_last_msg_type(); + switch (msg_type) { + case ObDtlMsgType::PX_NEW_ROW: + // got rows + break; + case ObDtlMsgType::INIT_SQC_RESULT: + case ObDtlMsgType::FINISH_SQC_RESULT: + case ObDtlMsgType::DH_BARRIER_PIECE_MSG: + case ObDtlMsgType::DH_WINBUF_PIECE_MSG: + case ObDtlMsgType::DH_DYNAMIC_SAMPLE_PIECE_MSG: + case ObDtlMsgType::DH_RANGE_DIST_WF_PIECE_MSG: + case ObDtlMsgType::DH_INIT_CHANNEL_PIECE_MSG: + case ObDtlMsgType::DH_SECOND_STAGE_REPORTING_WF_PIECE_MSG: + case ObDtlMsgType::DH_OPT_STATS_GATHER_PIECE_MSG: + case ObDtlMsgType::DH_RD_WINFUNC_PX_PIECE_MSG: + case ObDtlMsgType::DH_SP_WINFUNC_PX_PIECE_MSG: + case ObDtlMsgType::DH_JOIN_FILTER_COUNT_ROW_PIECE_MSG: + // These messages are all handled in the process callback function + break; + default: + ret = OB_ERR_UNEXPECTED; + LOG_WARN("Unexpected msg type", K(msg_type)); + break; + } + } + } + if (ret == OB_ITER_END) { + if (!iter_end_ && all_rows_finish_) { + iter_end_ = true; + LOG_TRACE("RECORDTIME", K(time_recorder_)); + } + } else if (OB_UNLIKELY(OB_SUCCESS != ret)) { + int ret_terminate = terminate_running_dfos(coord_info_.dfo_mgr_); + LOG_WARN("QC get error code", K(ret), K(ret_terminate)); + if ((OB_ERR_SIGNALED_IN_PARALLEL_QUERY_SERVER == ret + || OB_GOT_SIGNAL_ABORTING == ret) + && OB_SUCCESS != ret_terminate) { + ret = ret_terminate; + } + } + return ret; +} + +int ObPxMSCoordVecOp::next_row_from_heap(ObReceiveRowReader &reader, bool &wait_next_msg, + const bool need_store_output) +{ + int ret = OB_SUCCESS; + wait_next_msg = true; + LOG_TRACE("Begin next_row_from_heap"); + metric_.mark_interval_start(); + const int64_t max_rows = 1; + int64_t read_rows = 0; + ret = reader.get_next_batch_vec(MY_SPEC.child_exprs_, MY_SPEC.dynamic_const_exprs_, eval_ctx_, + max_rows, read_rows, vector_rows_); + metric_.mark_interval_end(&time_recorder_); + if (OB_ITER_END == ret) { + finish_ch_cnt_++; + row_heap_.shrink(); + // Received an EOF line, handle in two cases: + // - Not the last EOF, then discard and return SUCCESS, enter the message loop to receive the next message + // - last EOF, then discard and return ITER_END, by PX clean up execution environment and return ITER_END to upper operator + + if (OB_LIKELY(finish_ch_cnt_ < task_channels_.count())) { + ret = OB_SUCCESS; + } else if (get_batch_id() + 1 < get_rescan_param_count()) { + // This iterate_end needs to be passed to the upper layer + row_heap_.reuse_heap(task_channels_.count(), alloc_); + last_pop_row_ = NULL; + } else if (OB_UNLIKELY(finish_ch_cnt_ > task_channels_.count())) { + // This branch is a defensive branch + // All data on all channels has been successfully received + ret = OB_ERR_UNEXPECTED; + LOG_WARN("All data received. SHOULD NOT see more rows comming", + "finish_task_cnt", finish_ch_cnt_, + "total_task_chan_cnt", task_channels_.count(), + K(ret)); + } else { + LOG_TRACE("All channel finish", "finish_ch_cnt", finish_ch_cnt_, K(ret)); + all_rows_finish_ = true; + ret = OB_SUCCESS; + // Here ret = OB_ITER_END, represents all channels have received, but do not exit the msg_loop loop yet + // Next, we need to wait for SQC to report the execution status of each task, notify each SQC + // Release resources, then return ITER_END to the upper-level operator + } + } else if (OB_SUCCESS == ret) { + if (nullptr != last_pop_row_) { + if (OB_FAIL(last_pop_row_->save_store_row(MY_SPEC.all_exprs_, single_row_brs_, eval_ctx_))) { + LOG_WARN("failed to save store row", K(ret)); + } else if (OB_FAIL(row_heap_.push(last_pop_row_))) { + LOG_WARN("fail push row to heap", K(ret)); + } + } else { + LastCompactRow *cur_row = nullptr; + if (OB_FAIL(store_rows_.at(row_heap_.writable_channel_idx(), cur_row))) { + LOG_WARN("failed to get store row", K(ret), K(row_heap_.writable_channel_idx())); + } else if (OB_FAIL(cur_row->save_store_row(MY_SPEC.all_exprs_, single_row_brs_, eval_ctx_))) { + LOG_WARN("failed to save store row", K(ret)); + } else if (OB_FAIL(row_heap_.push(cur_row))) { + LOG_WARN("fail push row to heap", K(ret)); + } + } + } else { + LOG_WARN("fail get row from row store", K(ret)); + } + // (2) Pop the maximum value from the heap + if (OB_SUCC(ret)) { + if (0 == row_heap_.capacity()) { + { + op_monitor_info_.otherstat_2_id_ = ObSqlMonitorStatIds::EXCHANGE_EOF_TIMESTAMP; + op_monitor_info_.otherstat_2_value_ = oceanbase::common::ObClockGenerator::getClock(); + } + all_rows_finish_ = true; + metric_.mark_eof(); + } else if (row_heap_.capacity() == row_heap_.count()) { + const LastCompactRow *pop_row = nullptr; + ObCompactRow *out_row = NULL; + if (OB_FAIL(row_heap_.pop(pop_row))) { + LOG_WARN("failed to pop row", K(ret)); + // TODO: shanting2.0 opt. Is there optimization space for this pure single-line approach? + } else if (need_store_output && OB_FAIL(output_store_.add_row(pop_row->compact_row_, out_row))) { + LOG_WARN("add row failed", K(ret)); + } else if (!need_store_output && OB_FAIL(pop_row->to_expr(MY_SPEC.all_exprs_, eval_ctx_))) { + LOG_WARN("failed to to exprs", K(ret)); + } else { + wait_next_msg = false; + last_pop_row_ = const_cast(pop_row); + } + metric_.count(); + metric_.mark_first_out(); + metric_.set_last_out_ts(::oceanbase::common::ObTimeUtility::current_time()); + } else if (row_heap_.capacity() > row_heap_.count()) { + } else { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("invalid row heap state", K(row_heap_), K(ret)); + } + } + + LOG_DEBUG("Inner_get_next_row px merge sort coord receive done", + K(ret), + "finish_task_cnt", finish_ch_cnt_, + "total_task_ch_cnt", task_channels_.count(), + K(wait_next_msg)); + return ret; +} + + +} // end namespace sql +} // end namespace oceanbase diff --git a/src/sql/engine/px/exchange/ob_px_receive_op.cpp b/src/sql/engine/px/exchange/ob_px_receive_op.cpp index d46cb4471..d4b800ff7 100644 --- a/src/sql/engine/px/exchange/ob_px_receive_op.cpp +++ b/src/sql/engine/px/exchange/ob_px_receive_op.cpp @@ -100,13 +100,16 @@ ObPxReceiveOp::ObPxReceiveOp(ObExecContext &exec_ctx, const ObOpSpec &spec, ObOp iter_end_(false), channel_linked_(false), task_channels_(), - row_reader_(), + row_reader_(get_spec().id_, &(static_cast(spec_).child_exprs_), + true, + &ctx_.get_allocator()), px_row_msg_proc_(&row_reader_), msg_loop_(op_monitor_info_), ts_cnt_(0), ts_(0), ch_info_(), - stored_rows_(NULL) + stored_rows_(NULL), + vector_rows_(nullptr) {} int ObPxReceiveOp::inner_open() @@ -122,6 +125,14 @@ int ObPxReceiveOp::inner_open() ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("alloc stored rows pointer failed", K(ret)); } + if (OB_SUCC(ret) && get_spec().use_rich_format_) { + vector_rows_ = static_cast( + ctx_.get_allocator().alloc(spec_.max_batch_size_ * sizeof(*vector_rows_))); + if (NULL == vector_rows_) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("alloc vector rows pointer failed", K(ret)); + } + } } } return ret; @@ -666,7 +677,9 @@ int ObPxFifoReceiveOp::fetch_rows(const int64_t row_cnt) int64_t timeout_ts = phy_plan_ctx->get_timeout_timestamp(); int64_t retry_cnt = 0; do { - ret = get_rows_from_channels(row_cnt, timeout_ts - get_timestamp()); + ret = get_spec().use_rich_format_ + ? get_rows_from_channels_vec(row_cnt, timeout_ts - get_timestamp()) + : get_rows_from_channels(row_cnt, timeout_ts - get_timestamp()); if (OB_SUCCESS == ret) { metric_.mark_first_out(); metric_.set_last_out_ts(::oceanbase::common::ObTimeUtility::current_time()); @@ -785,5 +798,50 @@ int ObPxFifoReceiveOp::get_rows_from_channels(const int64_t row_cnt, int64_t tim return ret; } +int ObPxFifoReceiveOp::get_rows_from_channels_vec(const int64_t row_cnt, int64_t timeout_us) +{ + int ret = OB_SUCCESS; + bool got_row = false; + UNUSED(timeout_us); + while (!got_row && OB_SUCC(ret)) { + // Check uniterated rows first, then check all channels are EOF. + // Because channel may mark to EOF after transfer buffer to reader, rows still in reader. + int64_t left = row_reader_.left_rows(); + if (left >= row_cnt || (left > 0 && msg_loop_.all_eof(task_channels_.count()))) { + clear_evaluated_flag(); + clear_dynamic_const_parent_flag(); + int64_t read_rows = 0; + if (OB_FAIL(row_reader_.get_next_batch_vec(MY_SPEC.child_exprs_, + MY_SPEC.dynamic_const_exprs_, + eval_ctx_, + row_cnt, + read_rows, + vector_rows_))) { + LOG_WARN("get next batch failed", K(ret)); + } else { + got_row = true; + brs_.size_ = read_rows; + brs_.all_rows_active_ = true; + } + break; + } + if (msg_loop_.all_eof(task_channels_.count())) { + ret = OB_ITER_END; + LOG_TRACE("no more date in all channels", K(ret)); + break; + } + if (OB_FAIL(msg_loop_.process_any())) { + if (OB_DTL_WAIT_EAGAIN != ret) { + LOG_WARN("fail pop sqc execution result from channel", K(ret)); + } else { + ret = OB_DTL_WAIT_EAGAIN; + } + } + } + if (OB_SUCC(ret) && !got_row) { + ret = OB_DTL_WAIT_EAGAIN; + } + return ret; +} } // end namespace sql } // end namespace oceanbase diff --git a/src/sql/engine/px/exchange/ob_px_transmit_op.cpp b/src/sql/engine/px/exchange/ob_px_transmit_op.cpp index 3dd92b9c2..149f785b0 100644 --- a/src/sql/engine/px/exchange/ob_px_transmit_op.cpp +++ b/src/sql/engine/px/exchange/ob_px_transmit_op.cpp @@ -21,6 +21,8 @@ #include "sql/dtl/ob_dtl_utils.h" #include "sql/engine/px/ob_px_sqc_handler.h" #include "sql/engine/aggregate/ob_merge_groupby_op.h" +#include "sql/engine/aggregate/ob_merge_groupby_vec_op.h" +#include "share/config/ob_server_config.h" namespace oceanbase { @@ -136,7 +138,8 @@ ObPxTransmitOp::ObPxTransmitOp(ObExecContext &exec_ctx, const ObOpSpec &spec, Ob cur_transmit_sampled_rows_(NULL), batch_param_remain_(false), receive_channel_ready_(false), - data_msg_type_(dtl::ObDtlMsgType::PX_DATUM_ROW) + data_msg_type_(dtl::ObDtlMsgType::PX_DATUM_ROW), + params_(px_row_allocator_) { MEMSET(rand48_buf_, 0, sizeof(rand48_buf_)); } @@ -162,6 +165,7 @@ void ObPxTransmitOp::destroy() cur_transmit_sampled_rows_ = NULL; sampled_rows2transmit_.reset(); sampled_input_rows_.~ObRADatumStore(); + params_.meta_.reset(); ObTransmitOp::destroy(); } @@ -185,9 +189,22 @@ int ObPxTransmitOp::inner_open() } else if (OB_FAIL(ObTransmitOp::inner_open())) { LOG_WARN("initialize operator context failed", K(ret)); } else { + if (get_spec().use_rich_format_) { + if (OB_FAIL(init_data_msg_type(get_spec().output_))) { + LOG_WARN("init data_msg_type failed", K(ret)); + } else if (OB_FAIL(params_.init_basic_params(get_spec().max_batch_size_, + task_channels_.count(), + get_spec().output_.count(), + px_row_allocator_, + ctx_))) { + LOG_WARN("failed to init basic params", K(ret)); + } + } rand48_buf_[0] = 0x330E; // 0x330E is the arbitrary value of srand48 rand48_buf_[1] = trans_input->get_sqc_id(); rand48_buf_[2] = trans_input->get_task_id(); + OZ(params_.meta_.init(get_spec().output_, 0, params_.reorder_fixed_expr_, &px_row_allocator_)); + if (is_object_sample()) { OZ(init_channel(*trans_input)); OZ(set_expect_range_count()); @@ -196,6 +213,22 @@ int ObPxTransmitOp::inner_open() OZ(fetch_first_row()); OZ(init_channel(*trans_input)); } + chs_agent_.set_row_meta(params_.meta_); + if (OB_SUCC(ret) && get_spec().use_rich_format_) { + if (dtl::ObDtlMsgType::PX_VECTOR_FIXED == data_msg_type_) { + int64_t size_per_buffer = GCONF.dtl_buffer_size; + chs_agent_.set_size_per_buffer(size_per_buffer); + for (int64_t i = 0; i < task_channels_.count(); ++i) { + task_channels_.at(i)->set_send_buffer_size(size_per_buffer); + } + } + if (OB_FAIL(params_.init_keep_order_params(get_spec().max_batch_size_, + task_channels_.count(), + get_spec().output_.count(), + px_row_allocator_))) { + LOG_WARN("failed to init keep order params", K(ret)); + } + } } return ret; } @@ -357,6 +390,7 @@ int ObPxTransmitOp::init_channel(ObPxTransmitOpInput &trans_input) ch->set_batch_id(px_batch_id); ch->set_operator_owner(); ch->set_thread_id(thread_id); + ch->set_row_meta(params_.meta_); } LOG_TRACE("transmit channel", K(ch), KP(ch->get_id())); } @@ -410,7 +444,7 @@ int ObPxTransmitOp::inner_get_next_row() int ObPxTransmitOp::inner_get_next_batch(const int64_t max_row_cnt) { - return next_batch(max_row_cnt); + return get_spec().use_rich_format_ ? next_vector(max_row_cnt) : next_batch(max_row_cnt); } int ObPxTransmitOp::next_batch(const int64_t max_row_cnt) @@ -431,6 +465,29 @@ int ObPxTransmitOp::next_batch(const int64_t max_row_cnt) return ret; } +int ObPxTransmitOp::next_vector(const int64_t max_row_cnt) +{ + int ret = OB_SUCCESS; + clear_evaluated_flag(); + const ObBatchRows *brs = NULL; + if (OB_FAIL(child_->get_next_batch(max_row_cnt, brs))) { + LOG_WARN("get next batch row failed", K(ret)); + } else if (OB_FAIL(brs_.copy(brs))) { + LOG_WARN("copy batch result failed", K(ret)); + } else if (NULL != MY_SPEC.random_expr_ && brs->size_ > 0) { + //ObDatum *datums = MY_SPEC.random_expr_->locate_datums_for_update(eval_ctx_, brs->size_); + if (OB_FAIL(MY_SPEC.random_expr_->init_vector(eval_ctx_, VEC_FIXED, brs->size_))) { + LOG_WARN("init vector failed", K(ret)); + } else { + int64_t *value = MY_SPEC.random_expr_->get_fixed_vector_data(eval_ctx_); + for (int64_t i = 0; i < brs->size_; i++) { + value[i] = get_random_seq(); + } + } + } + return ret; +} + int ObPxTransmitOp::inner_close() { int ret = OB_SUCCESS; @@ -475,13 +532,31 @@ int ObPxTransmitOp::set_wf_hybrid_slice_id_calc_type(ObSliceIdxCalc &slice_calc) const ObPxTransmitSpec &spec = static_cast(get_spec()); if (spec.is_wf_hybrid_) { int64_t aggr_status = INT64_MIN; - ObDatum &wf_hybrid_aggr_status = - MY_SPEC.wf_hybrid_aggr_status_expr_->locate_expr_datum(eval_ctx_); - if (OB_ISNULL(wf_hybrid_aggr_status.ptr().int_)) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("wf_hybrid_aggr_status_expr_expr_ is null ptr", K(ret)); + if (spec.use_rich_format_) { + VectorFormat fmt = MY_SPEC.wf_hybrid_aggr_status_expr_->get_format(eval_ctx_); + if (OB_UNLIKELY(VEC_FIXED != fmt && fmt != VEC_UNIFORM)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected format", K(ret), K(fmt)); + } else if (OB_LIKELY(fmt == VEC_FIXED)) { + ObIVector *data = MY_SPEC.wf_hybrid_aggr_status_expr_->get_vector(eval_ctx_); + int64_t batch_idx = eval_ctx_.get_batch_idx(); + aggr_status = *reinterpret_cast( + static_cast *>(data)->get_payload(batch_idx)); + } else { + ObIVector *data = MY_SPEC.wf_hybrid_aggr_status_expr_->get_vector(eval_ctx_); + int64_t batch_idx = eval_ctx_.get_batch_idx(); + aggr_status = *reinterpret_cast( + static_cast *>(data)->get_payload(batch_idx)); + } } else { - aggr_status = wf_hybrid_aggr_status.get_int(); + ObDatum &wf_hybrid_aggr_status = + MY_SPEC.wf_hybrid_aggr_status_expr_->locate_expr_datum(eval_ctx_); + if (OB_ISNULL(wf_hybrid_aggr_status.ptr().int_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("wf_hybrid_aggr_status_expr_expr_ is null ptr", K(ret)); + } else { + aggr_status = wf_hybrid_aggr_status.get_int(); + } } if (OB_SUCC(ret)) { ObWfHybridDistSliceIdCalc &wf_hybrid_slice_calc = @@ -509,6 +584,557 @@ int ObPxTransmitOp::set_wf_hybrid_slice_id_calc_type(ObSliceIdxCalc &slice_calc) return ret; } +void ObPxTransmitOp::set_wf_hybrid_exprs(ObSliceIdxCalc &slice_calc) +{ + const ObPxTransmitSpec &spec = static_cast(get_spec()); + if (spec.is_wf_hybrid_) { + ObWfHybridDistSliceIdCalc &wf_hybrid_slice_calc = + static_cast< ObWfHybridDistSliceIdCalc &>(slice_calc); + wf_hybrid_slice_calc.set_wf_hybrid_aggr_status_expr(spec.wf_hybrid_aggr_status_expr_); + wf_hybrid_slice_calc.set_wf_hybrid_pby_exprs_cnt_array(&spec.wf_hybrid_pby_exprs_cnt_array_); + } +} + +void ObPxTransmitOp::fill_batch_ptrs_fixed(ObSliceIdxCalc::SliceIdxFlattenArray &slice_idx_flatten_array, + ObSliceIdxCalc::EndIdxArray &end_idx_array) +{ + int64_t start_idx = 0; + int64_t end_idx; + for (int64_t i = 0; i < brs_.size_; ++i) { + end_idx = end_idx_array.at(i); + if (!brs_.skip_->at(i)) { + for (int64_t j = start_idx; j < end_idx; ++j) { + int64_t slice_idx = slice_idx_flatten_array.at(j); + if (ObSliceIdxCalc::DEFAULT_CHANNEL_IDX_TO_DROP_ROW == slice_idx) { + op_monitor_info_.otherstat_1_value_++; + op_monitor_info_.otherstat_1_id_ = ObSqlMonitorStatIds::EXCHANGE_DROP_ROW_COUNT; + } else { + char *header = params_.fixed_payload_headers_[slice_idx]; + if (nullptr == header + || params_.row_cnts_[slice_idx] >= params_.row_limit_) { + // Use slice_idx_flatten_array itself for coverage; afterwards, this value indicates the slice_idx of the rows that require fallback + slice_idx_flatten_array[params_.fallback_cnt_++] = slice_idx; + } else { + params_.fixed_rows_[params_.selector_cnt_] = header; + params_.row_idx_[params_.selector_cnt_] = params_.row_cnts_[slice_idx]; + params_.row_cnts_[slice_idx] += 1; + params_.selector_slice_idx_array_[params_.selector_cnt_] = slice_idx; + params_.selector_array_[params_.selector_cnt_++] = i; + } + } + } + } + start_idx = end_idx; + // Use fallback_array_ as the ending index array for fallback operations on each subsequent line, and perform fallback operations together with slice_idx_flatten_array + params_.fallback_array_[i] = params_.fallback_cnt_; + } + for (int64_t col_idx = 0; col_idx < get_spec().output_.count(); ++col_idx) { + int64_t fixed_len = params_.column_lens_[col_idx]; + switch (params_.vectors_.at(col_idx)->get_format()) { + case VEC_FIXED : { + const char *payload = (static_cast (params_.vectors_.at(col_idx)))->get_data(); + ObBitVector *nulls = (static_cast (params_.vectors_.at(col_idx)))->get_nulls(); + if (!params_.vectors_.at(col_idx)->has_null()) { + if (8 == fixed_len) { + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * 8, + payload + fixed_len * params_.selector_array_[i], 8); + } + } else { + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * fixed_len, + payload + fixed_len * params_.selector_array_[i], fixed_len); + } + } + } else { + ObBitVector *nulls = (static_cast (params_.vectors_.at(col_idx)))->get_nulls(); + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + if (nulls->at(params_.selector_array_[i])) { + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(params_.selector_slice_idx_array_[i])); + ObDtlVectorFixedMsgWriter &row_writer = channel->get_vector_fixed_msg_writer(); + row_writer.set_null(col_idx, params_.row_idx_[i]); + } else { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * fixed_len, + payload + fixed_len * params_.selector_array_[i], fixed_len); + } + } + } + break; + } + case VEC_UNIFORM : { + ObDatum *datums = (static_cast (params_.vectors_.at(col_idx)))->get_datums(); + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + if (datums[params_.selector_array_[i]].is_null()) { + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(params_.selector_slice_idx_array_[i])); + ObDtlVectorFixedMsgWriter &row_writer = channel->get_vector_fixed_msg_writer(); + row_writer.set_null(col_idx, params_.row_idx_[i]); + } else { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * fixed_len, + datums[params_.selector_array_[i]].ptr_, fixed_len); + } + } + break; + } + default : { + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + if (params_.vectors_.at(col_idx)->is_null(params_.selector_array_[i])) { + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(params_.selector_slice_idx_array_[i])); + ObDtlVectorFixedMsgWriter &row_writer = channel->get_vector_fixed_msg_writer(); + row_writer.set_null(col_idx, params_.row_idx_[i]); + } else { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * params_.column_lens_[col_idx], + params_.vectors_.at(col_idx)->get_payload(params_.selector_array_[i]), params_.column_lens_[col_idx]); + } + } + } + } + } +} + +void ObPxTransmitOp::fill_broad_cast_ptrs_fixed(int64_t slice_idx) +{ + for (int64_t i = 0; i < brs_.size_; ++i) { + if (brs_.skip_->at(i)) { + continue; + } + char *header = params_.fixed_payload_headers_[slice_idx]; + if (nullptr == header + || params_.row_cnts_[slice_idx] >= params_.row_limit_) { + params_.fallback_array_[params_.fallback_cnt_++] = i; + } else { + params_.fixed_rows_[params_.selector_cnt_] = header; + params_.row_idx_[params_.selector_cnt_] = params_.row_cnts_[slice_idx]; + params_.row_cnts_[slice_idx] += 1; + params_.selector_array_[params_.selector_cnt_++] = i; + } + } + for (int64_t col_idx = 0; col_idx < get_spec().output_.count(); ++col_idx) { + int64_t fixed_len = params_.column_lens_[col_idx]; + switch (params_.vectors_.at(col_idx)->get_format()) { + case VEC_FIXED : { + const char *payload = (static_cast (params_.vectors_.at(col_idx)))->get_data(); + ObBitVector *nulls = (static_cast (params_.vectors_.at(col_idx)))->get_nulls(); + if (!params_.vectors_.at(col_idx)->has_null()) { + if (8 == fixed_len) { + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * 8, + payload + fixed_len * params_.selector_array_[i], 8); + } + } else { + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * fixed_len, + payload + fixed_len * params_.selector_array_[i], fixed_len); + } + } + } else { + ObBitVector *nulls = (static_cast (params_.vectors_.at(col_idx)))->get_nulls(); + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + if (nulls->at(params_.selector_array_[i])) { + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(slice_idx)); + ObDtlVectorFixedMsgWriter &row_writer = channel->get_vector_fixed_msg_writer(); + row_writer.set_null(col_idx, params_.row_idx_[i]); + } else { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * fixed_len, + payload + fixed_len * params_.selector_array_[i], fixed_len); + } + } + } + break; + } + case VEC_UNIFORM : { + ObDatum *datums = (static_cast (params_.vectors_.at(col_idx)))->get_datums(); + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + if (datums[params_.selector_array_[i]].is_null()) { + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(slice_idx)); + ObDtlVectorFixedMsgWriter &row_writer = channel->get_vector_fixed_msg_writer(); + row_writer.set_null(col_idx, params_.row_idx_[i]); + } else { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * fixed_len, + datums[params_.selector_array_[i]].ptr_, fixed_len); + } + } + break; + } + default : { + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + if (params_.vectors_.at(col_idx)->is_null(params_.selector_array_[i])) { + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(slice_idx)); + ObDtlVectorFixedMsgWriter &row_writer = channel->get_vector_fixed_msg_writer(); + row_writer.set_null(col_idx, params_.row_idx_[i]); + } else { + memcpy(params_.fixed_rows_[i] + params_.column_offsets_[col_idx] + params_.row_idx_[i] * params_.column_lens_[col_idx], + params_.vectors_.at(col_idx)->get_payload(params_.selector_array_[i]), params_.column_lens_[col_idx]); + } + } + } + } + } +} + +void ObPxTransmitOp::fill_batch_ptrs(ObSliceIdxCalc::SliceIdxFlattenArray &slice_idx_flatten_array, + ObSliceIdxCalc::EndIdxArray &end_idx_array) +{ + for (int64_t i = 0; i < brs_.size_; ++i) { + if (!brs_.skip_->at(i)) { + int64_t start_idx = i == 0 ? 0 : end_idx_array.at(i-1); + int64_t end_idx = end_idx_array.at(i); + const int64_t row_size = params_.row_size_array_[i]; + for (int64_t j = start_idx; j < end_idx; ++j) { + int64_t slice_idx = slice_idx_flatten_array.at(j); + if (ObSliceIdxCalc::DEFAULT_CHANNEL_IDX_TO_DROP_ROW == slice_idx) { + op_monitor_info_.otherstat_1_value_++; + op_monitor_info_.otherstat_1_id_ = ObSqlMonitorStatIds::EXCHANGE_DROP_ROW_COUNT; + } else { + const int64_t head_pos = params_.heads_[slice_idx]; + ObTempRowStore::DtlRowBlock *block = params_.blocks_[slice_idx]; + if (nullptr == block + || !params_.channel_unobstructeds_[slice_idx] + || row_size > params_.tails_[slice_idx] - head_pos) { + // Use slice_idx_flatten_array itself for coverage + slice_idx_flatten_array[params_.fallback_cnt_++] = slice_idx; + params_.channel_unobstructeds_[slice_idx] = false; + } else { + ObCompactRow *ptr = reinterpret_cast (reinterpret_cast (block) + head_pos); + params_.return_rows_[params_.selector_cnt_] = ptr; + params_.heads_[slice_idx] += row_size; + const static int64_t MEMSET_SIZE = 128; + while (params_.heads_[slice_idx] > params_.init_pos_[slice_idx]) { + if (params_.init_pos_[slice_idx] + MEMSET_SIZE < params_.tails_[slice_idx]) { + memset(reinterpret_cast (block) + params_.init_pos_[slice_idx], 0, MEMSET_SIZE); + params_.init_pos_[slice_idx] += MEMSET_SIZE; + } else { + memset(ptr, 0, row_size); + params_.init_pos_[slice_idx] = params_.heads_[slice_idx]; + } + } + block->cnt_ += 1; + params_.selector_array_[params_.selector_cnt_++] = i; + } + } + } + } + // Use fallback_array_ as the ending index array for fallback operations on each subsequent line, and perform fallback operations together with slice_idx_flatten_array + params_.fallback_array_[i] = params_.fallback_cnt_; + } +} + +void ObPxTransmitOp::fill_broad_cast_ptrs(int64_t slice_idx) +{ + // Fix slice_idx, add all rows to it + int64_t &head_pos = params_.heads_[slice_idx]; + ObTempRowStore::DtlRowBlock *block = params_.blocks_[slice_idx]; + for (int64_t i = 0; i < brs_.size_; ++i) { + if (brs_.skip_->at(i)) { + continue; + } + const int64_t row_size = params_.row_size_array_[i]; + if (nullptr == block + || !params_.channel_unobstructeds_[slice_idx] + || row_size > params_.tails_[slice_idx] - head_pos) { + params_.fallback_array_[params_.fallback_cnt_++] = i; + params_.channel_unobstructeds_[slice_idx] = false; + } else { + ObCompactRow *ptr = reinterpret_cast (reinterpret_cast (block) + head_pos); + params_.return_rows_[params_.selector_cnt_] = ptr; + head_pos += row_size; + const static int64_t MEMSET_SIZE = 128; + while (head_pos > params_.init_pos_[slice_idx]) { + if (params_.init_pos_[slice_idx] + MEMSET_SIZE < params_.tails_[slice_idx]) { + memset(reinterpret_cast (block) + params_.init_pos_[slice_idx], 0, MEMSET_SIZE); + params_.init_pos_[slice_idx] += MEMSET_SIZE; + } else { + memset(ptr, 0, row_size); + params_.init_pos_[slice_idx] = head_pos; + } + } + block->cnt_ += 1; + params_.selector_array_[params_.selector_cnt_++] = i; + } + } +} + +int ObPxTransmitOp::try_extend_selector_array(int64_t target_count, bool is_fixed) +{ + int ret = OB_SUCCESS; + if (params_.selector_array_max_size_ < target_count) { + // calc size + while(params_.selector_array_max_size_ < target_count) { + params_.selector_array_max_size_ *= 2; + } + if (is_fixed) { + // extend selector_array, fixed_rows_, row_idx_, selector_slice_idx_array_ + params_.selector_array_ = NULL; + params_.fixed_rows_ = NULL; + params_.row_idx_ = NULL; + params_.selector_slice_idx_array_ = NULL; + if (OB_ISNULL(params_.selector_array_ = (uint16_t *) + ctx_.get_allocator().alloc(sizeof(uint16_t) * params_.selector_array_max_size_))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc params_.selector_array_", K(ret), K(params_.selector_array_max_size_)); + } else if (OB_ISNULL(params_.fixed_rows_ = static_cast + (ctx_.get_allocator().alloc(params_.selector_array_max_size_ * sizeof(char *))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc params_.fixed_rows_", K(ret), K(params_.selector_array_max_size_)); + } else if (OB_ISNULL(params_.row_idx_ = static_cast + (ctx_.get_allocator().alloc(params_.selector_array_max_size_ * sizeof(int64_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc params_.row_idx_", K(ret), K(params_.selector_array_max_size_)); + } else if (OB_ISNULL(params_.selector_slice_idx_array_ = (uint16_t *) + ctx_.get_allocator().alloc(sizeof(uint16_t) * params_.selector_array_max_size_))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc params_.selector_slice_idx_array_", K(ret), K(params_.selector_array_max_size_)); + } + } else { + // extend selector_array, return_rows_ + params_.selector_array_ = NULL; + params_.return_rows_ = NULL; + if (OB_ISNULL(params_.selector_array_ = (uint16_t *) + ctx_.get_allocator().alloc(sizeof(uint16_t) * params_.selector_array_max_size_))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc params_.selector_array_", K(ret), K(params_.selector_array_max_size_)); + } else if (OB_ISNULL(params_.return_rows_ = (ObCompactRow **) + ctx_.get_allocator().alloc(sizeof(ObCompactRow *) * params_.selector_array_max_size_))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc params_.return_rows_", K(ret), K(params_.selector_array_max_size_)); + } + } + } + return ret; +} + +int ObPxTransmitOp::keep_order_send_batch(ObEvalCtx::BatchInfoScopeGuard &batch_info_guard, + ObSliceIdxCalc::SliceIdxFlattenArray &slice_idx_flatten_array, + ObSliceIdxCalc::EndIdxArray &end_idx_array, + bool is_broad_cast_calc_type) +{ + int ret = OB_SUCCESS; + int64_t send_row_time_recorder = 0; + ObObj tablet_id; //not used + params_.fallback_cnt_ = 0; + params_.selector_cnt_ = 0; + if (params_.vectors_.empty()) { + for (int64_t i = 0; OB_SUCC(ret) && i < get_spec().output_.count(); ++i) { + OZ (params_.vectors_.push_back(get_spec().output_.at(i)->get_vector(eval_ctx_))); + } + } + if (OB_FAIL(ret)) { + } else if (OB_FAIL(ObTempRowStore::DtlRowBlock::calc_rows_size(params_.vectors_, params_.meta_, + brs_, params_.row_size_array_))) { + LOG_WARN("failed to calc size", K(ret)); + } else { + if (is_broad_cast_calc_type) { + // For broad_cast calculate once for each channel, fill all the rows into that channel, can directly reuse selector_array_ + for(int j = 0; OB_SUCC(ret) && j < slice_idx_flatten_array.count(); j++) { + int64_t slice_idx = slice_idx_flatten_array[j]; + params_.selector_cnt_ = 0; + params_.fallback_cnt_ = 0; + fill_broad_cast_ptrs(slice_idx); + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + params_.return_rows_[i]->set_row_size(params_.row_size_array_[params_.selector_array_[i]]); + } + for (int64_t idx = 0; OB_SUCC(ret) && idx < get_spec().output_.count(); ++idx) { + ret = params_.vectors_.at(idx)->to_rows(params_.meta_, params_.return_rows_, + params_.selector_array_, params_.selector_cnt_, idx); + } + if (OB_SUCC(ret)) { + for (int64_t idx = 0; idx < task_channels_.count(); ++idx) { + if (nullptr != params_.blocks_[idx]) { + params_.blocks_[idx]->get_buffer()->fast_update_head(params_.heads_[idx]); + } + } + } + for (int64_t i = 0; OB_SUCC(ret) && i < params_.fallback_cnt_; i++) { + batch_info_guard.set_batch_idx(params_.fallback_array_[i]); + metric_.count(); + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(slice_idx)); + ObDtlVectorRowMsgWriter &row_writer = channel->get_vector_row_writer(); + if (nullptr != row_writer.get_write_buffer()) { + row_writer.get_write_buffer()->pos() = row_writer.used(); + } + if (OB_FAIL(send_row(slice_idx, send_row_time_recorder, tablet_id.get_int(), + params_.fallback_array_[i]))) { + LOG_WARN("fail emit row to interm result", K(ret), K(slice_idx)); + } else { + params_.blocks_[slice_idx] = static_cast + (task_channels_.at(slice_idx))->get_vector_row_writer().get_block(); + if (nullptr != params_.blocks_[slice_idx]) { + params_.heads_[slice_idx] = params_.blocks_[slice_idx]->get_buffer()->head_pos(); + params_.tails_[slice_idx] = params_.blocks_[slice_idx]->get_buffer()->tail_pos(); + params_.init_pos_[slice_idx] = params_.heads_[slice_idx]; + params_.channel_unobstructeds_[slice_idx] = true; + } + } + } + } + } else { + if (OB_FAIL(try_extend_selector_array(slice_idx_flatten_array.count(), false))) { + LOG_WARN("failed to try_extend_selector_array", K(ret)); + } else { + fill_batch_ptrs(slice_idx_flatten_array, end_idx_array); + for (int64_t i = 0; i < params_.selector_cnt_; ++i) { + params_.return_rows_[i]->set_row_size(params_.row_size_array_[params_.selector_array_[i]]); + } + for (int64_t idx = 0; OB_SUCC(ret) && idx < get_spec().output_.count(); ++idx) { + ret = params_.vectors_.at(idx)->to_rows(params_.meta_, params_.return_rows_, + params_.selector_array_, params_.selector_cnt_, idx); + } + if (OB_SUCC(ret)) { + for (int64_t idx = 0; idx < task_channels_.count(); ++idx) { + if (nullptr != params_.blocks_[idx]) { + params_.blocks_[idx]->get_buffer()->fast_update_head(params_.heads_[idx]); + } + } + } + for (int64_t i = 0; OB_SUCC(ret) && i < brs_.size_ && params_.fallback_cnt_ > 0; i++) { + batch_info_guard.set_batch_idx(i); + metric_.count(); + int64_t start_idx = i == 0 ? 0 : params_.fallback_array_[i-1]; + int64_t end_idx = params_.fallback_array_[i]; + for (int64_t j = start_idx; OB_SUCC(ret) && j < end_idx && params_.fallback_cnt_ > 0; + j++, params_.fallback_cnt_--) { + int64_t slice_idx = slice_idx_flatten_array[j]; + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(slice_idx)); + ObDtlVectorRowMsgWriter &row_writer = channel->get_vector_row_writer(); + if (nullptr != row_writer.get_write_buffer()) { + row_writer.get_write_buffer()->pos() = row_writer.used(); + } + if (OB_FAIL(send_row(slice_idx, send_row_time_recorder, tablet_id.get_int(), i))) { + LOG_WARN("fail emit row to interm result", K(ret), K(slice_idx)); + } else { + params_.blocks_[slice_idx] = static_cast + (task_channels_.at(slice_idx))->get_vector_row_writer().get_block(); + if (nullptr != params_.blocks_[slice_idx]) { + params_.heads_[slice_idx] = params_.blocks_[slice_idx]->get_buffer()->head_pos(); + params_.tails_[slice_idx] = params_.blocks_[slice_idx]->get_buffer()->tail_pos(); + params_.init_pos_[slice_idx] = params_.heads_[slice_idx]; + params_.channel_unobstructeds_[slice_idx] = true; + } + } + } + } + } + } + } + return ret; +} + +int ObPxTransmitOp::keep_order_send_batch_fixed(ObEvalCtx::BatchInfoScopeGuard &batch_info_guard, + ObSliceIdxCalc::SliceIdxFlattenArray &slice_idx_flatten_array, + ObSliceIdxCalc::EndIdxArray &end_idx_array, + bool is_broad_cast_calc_type) +{ + int ret = OB_SUCCESS; + int64_t send_row_time_recorder = 0; + ObObj tablet_id; //not used + params_.fallback_cnt_ = 0; + params_.selector_cnt_ = 0; + if (params_.vectors_.empty()) { + for (int64_t i = 0; OB_SUCC(ret) && i < get_spec().output_.count(); ++i) { + OZ (params_.vectors_.push_back(get_spec().output_.at(i)->get_vector(eval_ctx_))); + } + } + if (OB_FAIL(ret)) { + } else { + if (is_broad_cast_calc_type) { + // For broad_cast calculate once for each channel, fill all the rows into that channel, can directly reuse selector_array_ + for(int j = 0; OB_SUCC(ret) && j < slice_idx_flatten_array.count(); j++) { + int64_t slice_idx = slice_idx_flatten_array[j]; + params_.selector_cnt_ = 0; + params_.fallback_cnt_ = 0; + fill_broad_cast_ptrs_fixed(slice_idx); + for (int64_t i = 0; OB_SUCC(ret) && i < params_.fallback_cnt_; i++) { + batch_info_guard.set_batch_idx(params_.fallback_array_[i]); + metric_.count(); + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(slice_idx)); + ObDtlVectorFixedMsgWriter &row_writer = channel->get_vector_fixed_msg_writer(); + if (row_writer.is_inited()) { + row_writer.update_row_cnt(params_.row_cnts_[slice_idx]); + row_writer.update_buffer_used(); + } + if (OB_FAIL(send_row(slice_idx, send_row_time_recorder, tablet_id.get_int(), + params_.fallback_array_[i]))) { + LOG_WARN("fail emit row to interm result", K(ret), K(slice_idx)); + } else if (static_cast + (task_channels_.at(slice_idx))->get_vector_fixed_msg_writer().is_inited()) { + params_.fixed_payload_headers_[slice_idx] = static_cast + (task_channels_.at(slice_idx))->get_vector_fixed_msg_writer().get_header(0); + if (nullptr != params_.fixed_payload_headers_[slice_idx]) { + if (!params_.offset_inited_) { + for (int64_t i = 1; i < get_spec().output_.count(); ++i) { + params_.column_offsets_[i] = row_writer.get_header(i) - row_writer.get_header(0); + } + for (int64_t i = 0; i < get_spec().output_.count(); ++i) { + params_.column_lens_[i] = row_writer.get_fixed_len(i); + } + params_.offset_inited_ = true; + } + if (params_.row_limit_ < 0) { + params_.row_limit_ = row_writer.get_row_limit(); + } + params_.row_cnts_[slice_idx] = row_writer.get_row_cnt(); + } + } + } + } + } else { + if (OB_FAIL(try_extend_selector_array(slice_idx_flatten_array.count(), true))) { + LOG_WARN("failed to try_extend_selector_array", K(ret)); + } else { + fill_batch_ptrs_fixed(slice_idx_flatten_array, end_idx_array); + for (int64_t i = 0; OB_SUCC(ret) && i < brs_.size_ && params_.fallback_cnt_ > 0; i++) { + batch_info_guard.set_batch_idx(i); + metric_.count(); + int64_t start_idx = i == 0 ? 0 : params_.fallback_array_[i-1]; + int64_t end_idx = params_.fallback_array_[i]; + for (int64_t j = start_idx; OB_SUCC(ret) && j < end_idx && params_.fallback_cnt_ > 0; + j++, params_.fallback_cnt_--) { + int64_t slice_idx = slice_idx_flatten_array[j]; + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(slice_idx)); + ObDtlVectorFixedMsgWriter &row_writer = channel->get_vector_fixed_msg_writer(); + if (row_writer.is_inited()) { + row_writer.update_row_cnt(params_.row_cnts_[slice_idx]); + row_writer.update_buffer_used(); + } + if (OB_FAIL(send_row(slice_idx, send_row_time_recorder, tablet_id.get_int(), i))) { + LOG_WARN("fail emit row to interm result", K(ret), K(slice_idx)); + } else if (static_cast + (task_channels_.at(slice_idx))->get_vector_fixed_msg_writer().is_inited()) { + params_.fixed_payload_headers_[slice_idx] = static_cast + (task_channels_.at(slice_idx))->get_vector_fixed_msg_writer().get_header(0); + if (nullptr != params_.fixed_payload_headers_[slice_idx]) { + if (!params_.offset_inited_) { + for (int64_t k = 1; k < get_spec().output_.count(); ++k) { + params_.column_offsets_[k] = row_writer.get_header(k) - row_writer.get_header(0); + } + for (int64_t k = 0; k < get_spec().output_.count(); ++k) { + params_.column_lens_[k] = row_writer.get_fixed_len(k); + } + params_.offset_inited_ = true; + } + if (params_.row_limit_ < 0) { + params_.row_limit_ = row_writer.get_row_limit(); + } + params_.row_cnts_[slice_idx] = row_writer.get_row_cnt(); + } + } + } + } + } + } + } + return ret; +} + int ObPxTransmitOp::send_eof_row() { int ret = OB_SUCCESS; @@ -540,7 +1166,8 @@ int ObPxTransmitOp::send_eof_row() int ObPxTransmitOp::send_row(int64_t slice_idx, int64_t &time_recorder, - int64_t tablet_id) + int64_t tablet_id, + int64_t vector_row_idx) { UNUSED(time_recorder); int ret = OB_SUCCESS; @@ -548,37 +1175,88 @@ int ObPxTransmitOp::send_row(int64_t slice_idx, bool is_send_row_normal = false; if (OB_FAIL(try_wait_channel())) { LOG_WARN("failed to wait channel init", K(ret)); - } else if (ObSliceIdxCalc::DEFAULT_CHANNEL_IDX_TO_DROP_ROW == slice_idx) { - op_monitor_info_.otherstat_1_value_++; - op_monitor_info_.otherstat_1_id_ = ObSqlMonitorStatIds::EXCHANGE_DROP_ROW_COUNT; - } else if (!is_vectorized()) { - is_send_row_normal = true; } else { - OB_ASSERT(slice_idx >= 0 && slice_idx < ch_blocks_.count()); - ObChunkDatumStore::BlockBufferWrap &blk_buf = blk_bufs_.at(slice_idx); - if (!blk_buf.is_inited()) { + if (ObSliceIdxCalc::DEFAULT_CHANNEL_IDX_TO_DROP_ROW == slice_idx) { + op_monitor_info_.otherstat_1_value_++; + op_monitor_info_.otherstat_1_id_ = ObSqlMonitorStatIds::EXCHANGE_DROP_ROW_COUNT; + // TODO: shanting2.0. use opt when DTL 2.0 implemented. + } else if (!is_vectorized()) { is_send_row_normal = true; - } else { - if (NULL != spec.tablet_id_expr_) { + } else if (get_spec().use_rich_format_) { + if (NULL != spec.tablet_id_expr_ && !has_set_tablet_id_vector_) { update_row(spec.tablet_id_expr_, tablet_id); } - if (OB_FAIL(blk_buf.append_row(spec.output_, &eval_ctx_, 0))) { - if (OB_BUF_NOT_ENOUGH != ret) { - SQL_DTL_LOG(WARN, "failed to add row", K(ret)); - } else { - ch_blocks_.at(slice_idx)->rows_ += blk_buf.rows_; - *(ch_blocks_.at(slice_idx)->get_buffer()) = - static_cast(blk_buf); - blk_buf.reset(); + ObDtlBasicChannel *channel = static_cast (task_channels_.at(slice_idx)); + switch (data_msg_type_) { + case dtl::ObDtlMsgType::PX_VECTOR_FIXED: { + ObDtlVectorFixedMsgWriter &fixed_writer = channel->get_vector_fixed_msg_writer(); + if (!fixed_writer.is_inited()) { + is_send_row_normal = true; + } else if (OB_FAIL(fixed_writer.append_row(spec.output_, vector_row_idx, eval_ctx_))) { + if (OB_BUF_NOT_ENOUGH != ret) { + LOG_WARN("failed to append row", K(ret)); + } else { + is_send_row_normal = true; + fixed_writer.update_write_ret(); + ret = OB_SUCCESS; + } + } else { + fixed_writer.update_buffer_used(); + } + break; + } + case dtl::ObDtlMsgType::PX_VECTOR_ROW: { is_send_row_normal = true; - ret = OB_SUCCESS; + break; + } + case dtl::ObDtlMsgType::PX_VECTOR: { + ObDtlVectorRowMsgWriter &row_writer = channel->get_vector_row_writer(); + if (!row_writer.is_inited()) { + is_send_row_normal = true; + } else if (OB_FAIL(row_writer.try_append_row(spec.output_, eval_ctx_))) { + if (OB_BUF_NOT_ENOUGH != ret) { + LOG_WARN("failed to append row", K(ret)); + } else { + is_send_row_normal = true; + ret = OB_SUCCESS; + } + } + break; + } + default: + ret = OB_ERR_UNEXPECTED; + LOG_WARN("get invalid msg type", K(ret), K(data_msg_type_)); + } + } else { + OB_ASSERT(slice_idx >= 0 && slice_idx < ch_blocks_.count()); + ObChunkDatumStore::BlockBufferWrap &blk_buf = blk_bufs_.at(slice_idx); + if (!blk_buf.is_inited()) { + is_send_row_normal = true; + } else { + if (NULL != spec.tablet_id_expr_) { + update_row(spec.tablet_id_expr_, tablet_id); + } + if (OB_FAIL(blk_buf.append_row(spec.output_, &eval_ctx_, 0, vector_row_idx))) { + if (OB_BUF_NOT_ENOUGH != ret) { + SQL_DTL_LOG(WARN, "failed to add row", K(ret)); + } else { + ch_blocks_.at(slice_idx)->rows_ += blk_buf.rows_; + *(ch_blocks_.at(slice_idx)->get_buffer()) = + static_cast(blk_buf); + blk_buf.reset(); + is_send_row_normal = true; + ret = OB_SUCCESS; + } } } } } - if (OB_SUCC(ret) && is_send_row_normal - && OB_FAIL(send_row_normal(slice_idx, time_recorder, tablet_id))) { - LOG_WARN("fail to send row normal", K(ret)); + LOG_DEBUG("[VEC2.0 PX] px transmit send row", K(get_spec().get_id()), K(get_spec().use_rich_format_), + K(slice_idx), K(tablet_id), K(vector_row_idx), K(is_send_row_normal)); + if (OB_SUCC(ret) && is_send_row_normal) { + if (OB_FAIL(send_row_normal(slice_idx, time_recorder, tablet_id, vector_row_idx))) { + LOG_WARN("fail to send row normal", K(ret)); + } } LOG_DEBUG("Send row", K(slice_idx), K(ret), K(is_vectorized())); return ret; @@ -586,7 +1264,8 @@ int ObPxTransmitOp::send_row(int64_t slice_idx, int ObPxTransmitOp::send_row_normal(int64_t slice_idx, int64_t &time_recorder, - int64_t tablet_id) + int64_t tablet_id, + int64_t vector_row_idx) { UNUSED(time_recorder); int ret = OB_SUCCESS; @@ -602,10 +1281,10 @@ int ObPxTransmitOp::send_row_normal(int64_t slice_idx, // if drain, don't send again LOG_TRACE("drain channel", KP(ch->get_id())); } else { - if (NULL != spec.tablet_id_expr_) { + if (NULL != spec.tablet_id_expr_ && !has_set_tablet_id_vector_) { update_row(spec.tablet_id_expr_, tablet_id); } - ObPxNewRow px_row(get_spec().output_, data_msg_type_); + ObPxNewRow px_row(get_spec().output_, vector_row_idx, data_msg_type_); if (OB_FAIL(ch->send(px_row, phy_plan_ctx->get_timeout_timestamp(), &eval_ctx_))) { if (OB_ITER_END != ret) { LOG_WARN("fail send row to slice channel", K(px_row), K(slice_idx), K(ret)); @@ -879,5 +1558,176 @@ int ObPxTransmitOp::try_wait_channel() return ret; } +int ObPxTransmitOp::init_data_msg_type(const common::ObIArray &output) +{ + int ret = OB_SUCCESS; + bool all_fixed = true; + int64_t col_cnt = output.count(); + for (int64_t i = 0; all_fixed && i < col_cnt; ++i) { + if (!output.at(i)->is_fixed_length_data_) { + all_fixed = false; + } + } + if (MY_SPEC.get_px_dop() == 1 || col_cnt > ObDtlVectorsBuffer::MAX_COL_CNT) { + data_msg_type_ = dtl::ObDtlMsgType::PX_VECTOR_ROW; + } else if (all_fixed) { + data_msg_type_ = dtl::ObDtlMsgType::PX_VECTOR_FIXED; + } else { + data_msg_type_ = dtl::ObDtlMsgType::PX_VECTOR_ROW; + } + int err_sim = OB_E(EventTable::EN_DTL_OPTION) 0; + if (0 != err_sim) { + if (1 == std::abs(err_sim)) { + data_msg_type_ = dtl::ObDtlMsgType::PX_VECTOR_ROW; + } else if (2 == std::abs(err_sim)) { + data_msg_type_ = dtl::ObDtlMsgType::PX_VECTOR_FIXED; + if (MY_SPEC.get_px_dop() == 1) { + ret = OB_NOT_SUPPORTED; + LOG_WARN("Trasmit op does not support PX_VECTOR_FIXED.", K(ret)); + } + } else if (3 == std::abs(err_sim)) { + data_msg_type_ = dtl::ObDtlMsgType::PX_VECTOR; + if (MY_SPEC.get_px_dop() == 1) { + ret = OB_NOT_SUPPORTED; + LOG_WARN("Trasmit op does not support PX_VECTOR.", K(ret)); + } + } + } + return ret; +} + +int ObPxTransmitOp::VectorSendParams::init_basic_params(const int64_t max_batch_size, + const int64_t channel_cnt, + const int64_t output_cnt, + ObIAllocator &alloc, + ObExecContext &ctx) +{ + int ret = OB_SUCCESS; + if (OB_ISNULL(row_size_array_ + = static_cast + (alloc.alloc(max_batch_size * sizeof(uint32_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc row size array", K(ret), K(max_batch_size)); + } else if (OB_ISNULL(return_rows_ + = static_cast + (alloc.alloc(max_batch_size * sizeof(ObCompactRow *))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc return rows", K(ret), K(max_batch_size)); + } else if (OB_FAIL(vectors_.init(output_cnt))) { + LOG_WARN("failed to init vector array", K(ret)); + } else if (OB_ISNULL(fallback_array_ = static_cast + (alloc.alloc(max_batch_size * sizeof(uint16_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc row size array", K(ret), K(max_batch_size)); + } else if (OB_ISNULL(selector_array_ = static_cast + (alloc.alloc(max_batch_size * sizeof(uint16_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc row size array", K(ret), K(max_batch_size)); + } else if (OB_ISNULL(selector_slice_idx_array_ = static_cast + (alloc.alloc(max_batch_size * sizeof(uint16_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc selector_slice_idx_array_", K(ret), K(max_batch_size)); + } else if (OB_ISNULL(ctx.get_physical_plan_ctx()) || OB_ISNULL(ctx.get_physical_plan_ctx()->get_phy_plan())) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to get phy plan", K(ret)); + } else { + selector_array_max_size_ = max_batch_size; + reorder_fixed_expr_ = true; + } + return ret; +} + +int ObPxTransmitOp::VectorSendParams::init_keep_order_params(const int64_t max_batch_size, + const int64_t channel_cnt, + const int64_t output_cnt, + ObIAllocator &alloc) +{ + int ret = OB_SUCCESS; + if (OB_ISNULL(blocks_ = + static_cast (alloc.alloc(channel_cnt + * sizeof(ObTempRowStore::DtlRowBlock *))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc buffers", K(ret), K(channel_cnt)); + } else if (OB_ISNULL(heads_ = static_cast (alloc.alloc(channel_cnt + * sizeof(int64_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc heads", K(ret), K(channel_cnt)); + } else if (OB_ISNULL(tails_ = static_cast (alloc.alloc(channel_cnt + * sizeof(int64_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc tails", K(ret), K(channel_cnt)); + } else if (OB_ISNULL(init_pos_ = static_cast (alloc.alloc(channel_cnt + * sizeof(int64_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc init sizes", K(ret), K(channel_cnt)); + } else if (OB_ISNULL(channel_unobstructeds_ = static_cast (alloc.alloc(channel_cnt + * sizeof(bool))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc can adds", K(ret), K(channel_cnt)); + } else if (OB_ISNULL(fixed_payload_headers_ = static_cast (alloc.alloc(channel_cnt + * sizeof(char *))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc headers", K(ret), K(channel_cnt)); + } else if (OB_ISNULL(row_cnts_ = static_cast (alloc.alloc(channel_cnt + * sizeof(int64_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc row cnts", K(ret), K(channel_cnt)); + } else if (output_cnt > 0 + && OB_ISNULL(column_offsets_ = static_cast (alloc.alloc(output_cnt + * sizeof(int64_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc offsets", K(ret), K(output_cnt)); + } else if (output_cnt > 0 + && OB_ISNULL(column_lens_ = static_cast (alloc.alloc(output_cnt + * sizeof(int64_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc lens", K(ret), K(output_cnt)); + } else if (OB_ISNULL(row_idx_ = static_cast (alloc.alloc(max_batch_size * sizeof(int64_t))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc row idx", K(ret), K(max_batch_size)); + } else if (OB_ISNULL(fixed_rows_ = static_cast + (alloc.alloc(max_batch_size + * sizeof(char *))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("failed to alloc fixed rows", K(ret), K(max_batch_size)); + } else { + memset(blocks_, 0, channel_cnt * sizeof(ObTempRowStore::DtlRowBlock *)); + memset(heads_, 0, channel_cnt * sizeof(int64_t)); + memset(tails_, 0, channel_cnt * sizeof(int64_t)); + memset(init_pos_, 0, channel_cnt * sizeof(int64_t)); + memset(channel_unobstructeds_, 0, channel_cnt * sizeof(bool)); + memset(fixed_payload_headers_, 0, channel_cnt * sizeof(char *)); + memset(row_cnts_, 0, channel_cnt * sizeof(int64_t)); + if (output_cnt > 0) { + memset(column_offsets_, 0, output_cnt * sizeof(int64_t)); + memset(column_lens_, 0, output_cnt * sizeof(int64_t)); + } + memset(row_idx_, 0, max_batch_size * sizeof(int64_t)); + memset(fixed_rows_, 0, max_batch_size * sizeof(char *)); + } + return ret; +} + +int ObPxTransmitOp::update_tabletid_batch(const ObExpr *expr,ObRepartSliceIdxCalc& slice_calc) +{ + int ret = OB_SUCCESS; + int64_t *tablet_ids = slice_calc.get_tablet_ids_ptr(); + if (OB_FAIL(slice_calc.get_tablet_ids(eval_ctx_, *brs_.skip_, + brs_.size_, tablet_ids))) { + LOG_WARN("get tablet ids failed", K(ret)); + } else if (OB_FAIL(expr->init_vector_for_write(eval_ctx_, VectorFormat::VEC_FIXED, brs_.size_))) { + LOG_WARN("init_vector failed", K(ret)); + } else { + ObIVector *dst_vec = expr->get_vector(eval_ctx_); + for (int i = 0; i < brs_.size_; i++) { + if (brs_.skip_->at(i)) { + continue; + } + dst_vec->set_int(i, tablet_ids[i]); + } + } + return ret; +} + } // end namespace sql } // end namespace oceanbase diff --git a/src/sql/engine/px/exchange/ob_px_transmit_op.h b/src/sql/engine/px/exchange/ob_px_transmit_op.h index 3a3f8c2c1..5c5977f64 100644 --- a/src/sql/engine/px/exchange/ob_px_transmit_op.h +++ b/src/sql/engine/px/exchange/ob_px_transmit_op.h @@ -34,12 +34,16 @@ #include "sql/engine/px/ob_px_basic_info.h" #include "sql/engine/basic/ob_ra_datum_store.h" #include "sql/engine/px/datahub/components/ob_dh_init_channel.h" +#include "sql/engine/basic/ob_compact_row.h" namespace oceanbase { namespace sql { using namespace dtl; +#define DO_TRANSMIT_FUNC(func) \ + if (OB_FAIL(MY_SPEC.use_rich_format_ ? func() : func())) + class ObPxTransmitOpInput : public ObPxExchangeOpInput { OB_UNIS_VERSION_V(1); @@ -133,13 +137,245 @@ class ObPxTransmitOp : public ObTransmitOp int send_rows(ObSliceIdxCalc &sc) { return is_vectorized() - ? send_rows_in_batch(sc) + ? (get_spec().use_rich_format_ + ? send_rows_in_vector(sc) + : send_rows_in_batch(sc)) : send_rows_one_by_one(sc); } template int send_rows_one_by_one(ObSliceIdxCalc &sc); template int send_rows_in_batch(ObSliceIdxCalc &sc); + template + int send_rows_in_vector(ObSliceIdxCalc &slice_calc) { + int ret = OB_SUCCESS; + int64_t send_row_time_recorder = 0; + ObObj tablet_id; + ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx_); + ObSliceIdxCalc::SliceIdxArray slice_idx_array; + ObSliceIdxCalc::SliceIdxFlattenArray slice_idx_flatten_array; + ObSliceIdxCalc::EndIdxArray end_idx_array; + while (OB_SUCC(ret)) { + if (OB_FAIL(next_row())) { + LOG_WARN("fetch next rows failed", K(ret)); + break; + } + if (dfc_.all_ch_drained()) { + int tmp_ret = child_->drain_exch(); + if (OB_SUCCESS != tmp_ret) { + LOG_WARN("drain exchange data failed", K(tmp_ret)); + } + LOG_TRACE("all channel has been drained"); + break; + } + const ObPxTransmitSpec &spec = static_cast(get_spec()); + has_set_tablet_id_vector_ = false; + batch_info_guard.set_batch_size(brs_.size_); + if (OB_FAIL(ret) || brs_.size_ == 0) { + } else if (!slice_calc.support_vectorized_calc() && !slice_calc.is_multi_slice_calc_type()) { + for (int64_t i = 0; i < spec_.output_.count() && OB_SUCC(ret); i++) { + ObExpr *expr = spec_.output_.at(i); + if (T_TABLET_AUTOINC_NEXTVAL == expr->type_) { + ObIVector *vec = expr->get_vector(eval_ctx_); + const char *payload = vec->get_payload(0); + if (NULL != payload) { + } else if (OB_FAIL(expr->init_vector(eval_ctx_, VEC_UNIFORM_CONST, 1 /*size*/))) { + LOG_WARN("init vector failed", K(ret)); + } else { + vec->set_null(0); + } + } else if (OB_FAIL(expr->eval_vector(eval_ctx_, brs_))) { + LOG_WARN("eval expr failed", K(ret)); + } + } + for (int64_t i = 0; OB_SUCC(ret) && i < brs_.size_; i++) { + if (brs_.skip_->at(i)) { + continue; + } + batch_info_guard.set_batch_idx(i); + metric_.count(); + //TODO: shanting2.0 support wf2.0 when doing simple adaptation + if (OB_FAIL(set_wf_hybrid_slice_id_calc_type(slice_calc))) { + LOG_WARN("failed to set wf hybrid keys", K(ret)); + } else if (OB_FAIL((slice_calc.get_slice_indexes(get_spec().output_, + eval_ctx_, slice_idx_array, brs_.skip_)))) { + LOG_WARN("fail get slice idx", K(ret)); + } else if (NULL != spec.tablet_id_expr_ + // Why do we need to get the last tablet_id + && OB_FAIL(slice_calc.get_previous_row_tablet_id(tablet_id))) { + LOG_WARN("failed to get previous row tablet_id", K(ret)); + } + LOG_DEBUG("[VEC2.0 PX] send rows vec without prefetch", K(i), K(slice_idx_array), K(tablet_id.get_int())); + FOREACH_CNT_X(slice_idx, slice_idx_array, OB_SUCC(ret)) { + if (OB_FAIL(send_row(*slice_idx, send_row_time_recorder, tablet_id.get_int(), i))) { + LOG_WARN("fail emit row to interm result", K(ret), K(slice_idx_array)); + } + } + } + } else if (slice_calc.is_multi_slice_calc_type()) { + if (NULL != spec.tablet_id_expr_) { + ObRepartSliceIdxCalc &repart_slice_calc = + static_cast(slice_calc); + if (OB_FAIL(update_tabletid_batch(spec.tablet_id_expr_, repart_slice_calc))) { + LOG_WARN("failed to update_tabletid_batch", K(ret)); + } else { + has_set_tablet_id_vector_ = true; + } + } + set_wf_hybrid_exprs(slice_calc); + if (OB_FAIL(ret)) { + } else if (OB_FAIL((slice_calc.get_multi_slice_idx_vector(spec_.output_, eval_ctx_, + *brs_.skip_, brs_.size_, + slice_idx_flatten_array, end_idx_array)))) { + LOG_WARN("calc slice indexes failed", K(ret)); + } else { + bool is_broad_cast_calc_type = + CALC_TYPE == ObSliceIdxCalc::SliceCalcType::BROADCAST || + CALC_TYPE == ObSliceIdxCalc::SliceCalcType::BC2HOST; + for (int64_t i = 0; i < spec_.output_.count() && OB_SUCC(ret); i++) { + ObExpr *expr = spec_.output_.at(i); + if (T_TABLET_AUTOINC_NEXTVAL == expr->type_) { + ObIVector *vec = expr->get_vector(eval_ctx_); + const char *payload = vec->get_payload(0); + if (NULL != payload) { + } else if (OB_FAIL(expr->init_vector(eval_ctx_, VEC_UNIFORM_CONST, 1 /*size*/))) { + LOG_WARN("init vector failed", K(ret)); + } else { + vec->set_null(0); + } + } else if (OB_FAIL(spec_.output_.at(i)->eval_vector(eval_ctx_, brs_))) { + LOG_WARN("eval expr failed", K(ret)); + } + } + if (OB_FAIL(ret)) { + } else { + if (PX_VECTOR_FIXED == data_msg_type_) { + if (OB_FAIL(keep_order_send_batch_fixed(batch_info_guard, slice_idx_flatten_array, + end_idx_array, is_broad_cast_calc_type))) { + LOG_WARN("failed to send batch", K(ret)); + } + } else { + if (OB_FAIL(keep_order_send_batch(batch_info_guard, slice_idx_flatten_array, + end_idx_array, is_broad_cast_calc_type))) { + LOG_WARN("failed to send batch", K(ret)); + } + } + } + } + } else { + int64_t *indexes = NULL; + if (NULL != spec.tablet_id_expr_) { + ObRepartSliceIdxCalc &repart_slice_calc = + static_cast(slice_calc); + if (OB_FAIL(update_tabletid_batch(spec.tablet_id_expr_, repart_slice_calc))) { + LOG_WARN("failed to update_tabletid_batch", K(ret)); + } else { + has_set_tablet_id_vector_ = true; + } + } + if (OB_FAIL(ret)) { + } else if (OB_FAIL((slice_calc.get_slice_idx_batch(spec_.output_, eval_ctx_, + *brs_.skip_, brs_.size_, + indexes)))) { + LOG_WARN("calc slice indexes failed", K(ret)); + } else { + for (int64_t i = 0; i < spec_.output_.count() && OB_SUCC(ret); i++) { + ObExpr *expr = spec_.output_.at(i); + if (T_TABLET_AUTOINC_NEXTVAL == expr->type_) { + ObIVector *vec = expr->get_vector(eval_ctx_); + const char *payload = vec->get_payload(0); + if (NULL != payload) { + } else if (OB_FAIL(expr->init_vector(eval_ctx_, VEC_UNIFORM_CONST, 1 /*size*/))) { + LOG_WARN("init vector failed", K(ret)); + } else { + vec->set_null(0); + } + } else if (OB_FAIL(spec_.output_.at(i)->eval_vector(eval_ctx_, brs_))) { + LOG_WARN("eval expr failed", K(ret)); + } + } + LOG_DEBUG("[VEC2.0 PX] send rows vec with prefetch", K(CALC_TYPE), + K(ObArrayWrap(indexes, brs_.size_))); + if (dtl::ObDtlMsgType::PX_VECTOR_ROW == data_msg_type_) { + for (int64_t i = 0; OB_SUCC(ret) && i < brs_.size_; i++) { + if (brs_.skip_->at(i) || indexes[i] < 0) { continue; } + ObDtlBasicChannel *channel = static_cast (task_channels_.at(indexes[i])); + channel->get_vector_row_writer().prefetch(); + } + } + if (OB_FAIL(ret)) { + } else { + slice_idx_flatten_array.reuse(); + end_idx_array.reuse(); + for (int i = 0; i < brs_.size_ && OB_SUCC(ret); i++) { + if (!brs_.skip_->at(i) && indexes[i] >= 0) { + if (OB_FAIL(slice_idx_flatten_array.push_back(indexes[i]))) { + LOG_WARN("pushback slice_idx_flatten_array failed", K(i), K(ret)); + } + } + if (OB_SUCC(ret)) { + if (OB_FAIL(end_idx_array.push_back(slice_idx_flatten_array.count()))) { + LOG_WARN("pushback end_idx_array failed", K(i), K(ret)); + } + } + } + + if (OB_FAIL(ret)) { + } else if (PX_VECTOR_FIXED == data_msg_type_) { + if (OB_FAIL(keep_order_send_batch_fixed(batch_info_guard, slice_idx_flatten_array, + end_idx_array, false))) { + LOG_WARN("failed to send batch", K(ret)); + } + } else if (OB_FAIL(keep_order_send_batch(batch_info_guard, slice_idx_flatten_array, + end_idx_array, false))) { + LOG_WARN("failed to send batch", K(ret)); + } + } + } + } + if (OB_SUCC(ret) && brs_.end_) { + if (get_spec().use_rich_format_ && PX_VECTOR_FIXED == data_msg_type_) { + for (int64_t idx = 0; idx < task_channels_.count(); ++idx) { + ObDtlBasicChannel *channel = + static_cast (task_channels_.at(idx)); + ObDtlVectorFixedMsgWriter &row_writer = channel->get_vector_fixed_msg_writer(); + if (row_writer.is_inited() && params_.row_cnts_[idx] > 0) { + row_writer.update_row_cnt(params_.row_cnts_[idx]); + row_writer.update_buffer_used(); + params_.row_cnts_[idx] = 0; + } + } + } + if (OB_FAIL(try_wait_channel())) { + LOG_WARN("failed to wait channel init", K(ret)); + } else if (batch_param_remain_) { + ObPxNewRow px_eof_row; + px_eof_row.set_eof_row(); + px_eof_row.set_data_type(data_msg_type_); + ObPhysicalPlanCtx *phy_plan_ctx = GET_PHY_PLAN_CTX(ctx_); + if (OB_ISNULL(phy_plan_ctx)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("phy plan ctx is null", K(ret)); + } + for (int i = 0; i < task_channels_.count() && OB_SUCC(ret); i++) { + dtl::ObDtlChannel *ch = task_channels_.at(i); + if (OB_FAIL(ch->send(px_eof_row, phy_plan_ctx->get_timeout_timestamp(), &eval_ctx_, false))) { + LOG_WARN("fail send eof row to slice channel", K(px_eof_row), K(ret)); + } else if (OB_FAIL(ch->push_buffer_batch_info())) { + LOG_WARN("channel push back batch failed", K(ret)); + } + } + } else if (OB_FAIL(send_eof_row())) { + LOG_WARN("fail send eof rows to channels", K(ret)); + } + break; + } + // for those break out ops + } + LOG_TRACE("Transmit time record, send rows in vector", K(ret)); + return ret; + } + template int broadcast_rows(ObSliceIdxCalc &slice_calc); // for dynamic sample @@ -152,21 +388,35 @@ class ObPxTransmitOp : public ObTransmitOp bool is_object_sample(); bool is_row_sample(); private: + int next_vector(const int64_t max_row_cnt); int next_batch(const int64_t max_row_cnt); inline void update_row(const ObExpr *expr, int64_t tablet_id); + int update_tabletid_batch(const ObExpr *expr, ObRepartSliceIdxCalc& slice_calc); int send_row_normal(int64_t slice_idx, int64_t &time_recorder, - int64_t tablet_id); + int64_t tablet_id, + int64_t vector_row_idx); int send_row(int64_t slice_idx, int64_t &time_recorder, - int64_t tablet_id); + int64_t tablet_id, + int64_t vecotor_row_idx = OB_INVALID_ID); int send_eof_row(); int broadcast_eof_row(); int next_row(); + //template int set_wf_hybrid_slice_id_calc_type(ObSliceIdxCalc &slice_calc); int fetch_first_row(); int set_expect_range_count(); int wait_channel_ready_msg(); + int try_extend_selector_array(int64_t target_count, bool is_fixed); + int keep_order_send_batch(ObEvalCtx::BatchInfoScopeGuard &batch_info_guard, + ObSliceIdxCalc::SliceIdxFlattenArray &slice_idx_flatten_array, + ObSliceIdxCalc::EndIdxArray &end_idx_array, + bool is_broad_cast_calc_type); + int keep_order_send_batch_fixed(ObEvalCtx::BatchInfoScopeGuard &batch_info_guard, + ObSliceIdxCalc::SliceIdxFlattenArray &slice_idx_flatten_array, + ObSliceIdxCalc::EndIdxArray &end_idx_array, + bool is_broad_cast_calc_type); int64_t get_random_seq() { #ifdef _WIN32 @@ -183,7 +433,15 @@ class ObPxTransmitOp : public ObTransmitOp && !proxy.adjoining_root_dfo() && !proxy.get_transmit_use_interm_result(); } int try_wait_channel(); + int init_data_msg_type(const common::ObIArray &output); + void fill_batch_ptrs(ObSliceIdxCalc::SliceIdxFlattenArray &slice_idx_flatten_array, + ObSliceIdxCalc::EndIdxArray &end_idx_array); + void fill_batch_ptrs_fixed(ObSliceIdxCalc::SliceIdxFlattenArray &slice_idx_flatten_array, + ObSliceIdxCalc::EndIdxArray &end_idx_array); + void fill_broad_cast_ptrs(int64_t slice_idx); + void fill_broad_cast_ptrs_fixed(int64_t slice_idx); dtl::ObDtlMsgType get_data_msg_type() const { return data_msg_type_; } + void set_wf_hybrid_exprs(ObSliceIdxCalc &slice_calc); protected: ObArray ch_blocks_; ObArray blk_bufs_; @@ -218,12 +476,78 @@ class ObPxTransmitOp : public ObTransmitOp unsigned short rand48_buf_[3]; bool receive_channel_ready_; dtl::ObDtlMsgType data_msg_type_; + bool has_set_tablet_id_vector_ = false; + //slice_idx, batch_idx + struct VectorSendParams { + VectorSendParams(common::ObIAllocator &alloc) : slice_info_bkts_(nullptr), + slice_bkt_item_cnts_(nullptr), + vectors_(&alloc), + selector_array_(nullptr), + selector_slice_idx_array_(nullptr), + selector_cnt_(0), + row_size_array_(nullptr), + return_rows_(nullptr), + meta_(), + fallback_array_(nullptr), + fallback_cnt_(0), + blocks_(nullptr), + heads_(nullptr), + tails_(nullptr), + init_pos_(nullptr), + channel_unobstructeds_(nullptr), + init_hash_reorder_struct_(false), + fixed_payload_headers_(nullptr), + column_offsets_(nullptr), + column_lens_(nullptr), + row_cnts_(nullptr), + row_idx_(nullptr), + offset_inited_(false), + row_limit_(-1), + fixed_rows_(nullptr), + reorder_fixed_expr_(false), + selector_array_max_size_(0) {} + int init_basic_params(const int64_t max_batch_size, const int64_t channel_cnt, + const int64_t output_cnt, ObIAllocator &alloc, ObExecContext &ctx); + int init_keep_order_params(const int64_t max_batch_size, const int64_t channel_cnt, + const int64_t output_cnt, ObIAllocator &alloc); + uint16_t **slice_info_bkts_; + uint16_t *slice_bkt_item_cnts_; + ObFixedArray vectors_; + uint16_t *selector_array_; + uint16_t *selector_slice_idx_array_; + int64_t selector_cnt_; + uint32_t *row_size_array_; + ObCompactRow **return_rows_; + RowMeta meta_; + uint16_t *fallback_array_; + int64_t fallback_cnt_; + ObTempRowStore::DtlRowBlock **blocks_; + int64_t *heads_; + int64_t *tails_; + int64_t *init_pos_; //memset from this pos + bool *channel_unobstructeds_; + bool init_hash_reorder_struct_; + char **fixed_payload_headers_; + int64_t *column_offsets_; + int64_t *column_lens_; + int64_t *row_cnts_; + int64_t *row_idx_; + bool offset_inited_; + int64_t row_limit_; + char **fixed_rows_; + bool reorder_fixed_expr_; + int64_t selector_array_max_size_; + }; + VectorSendParams params_; }; inline void ObPxTransmitOp::update_row(const ObExpr *expr, int64_t tablet_id) { OB_ASSERT(OB_NOT_NULL(expr)); OB_ASSERT(expr->type_ == T_PDML_PARTITION_ID); + if (get_spec().use_rich_format_) { + expr->init_vector(eval_ctx_, VectorFormat::VEC_UNIFORM, 1); + } expr->locate_datum_for_write(eval_ctx_).set_int(tablet_id); expr->set_evaluated_projected(eval_ctx_); } @@ -281,7 +605,7 @@ int ObPxTransmitOp::send_rows_one_by_one(ObSliceIdxCalc &slice_calc) LOG_WARN("fail to get next row", K(ret)); } else if (OB_FAIL(set_wf_hybrid_slice_id_calc_type(slice_calc))) { LOG_WARN("failed to set window function hybrid distribution", K(ret)); - } else if (OB_FAIL((slice_calc.get_slice_indexes( + } else if (OB_FAIL((slice_calc.get_slice_indexes( get_spec().output_, eval_ctx_, slice_idx_array)))) { LOG_WARN("fail get slice idx", K(ret)); } else if (dfc_.all_ch_drained()) { @@ -336,7 +660,7 @@ int ObPxTransmitOp::send_rows_in_batch(ObSliceIdxCalc &slice_calc) const ObPxTransmitSpec &spec = static_cast(get_spec()); batch_info_guard.set_batch_size(brs_.size_); if (OB_FAIL(ret) || brs_.size_ <= 0) { - } else if (!slice_calc.support_vectorized_calc() || NULL != spec.tablet_id_expr_) { + } else if ((!slice_calc.support_vectorized_calc() || slice_calc.is_multi_slice_calc_type() || NULL != spec.tablet_id_expr_)) { for (int64_t i = 0; OB_SUCC(ret) && i < brs_.size_; i++) { if (brs_.skip_->at(i)) { continue; @@ -346,13 +670,13 @@ int ObPxTransmitOp::send_rows_in_batch(ObSliceIdxCalc &slice_calc) metric_.count(); if (OB_FAIL(set_wf_hybrid_slice_id_calc_type(slice_calc))) { LOG_WARN("failed to set wf hybrid keys", K(ret)); - } else if (OB_FAIL((slice_calc.get_slice_indexes(get_spec().output_, eval_ctx_, slice_idx_array)))) { + } else if (OB_FAIL((slice_calc.get_slice_indexes(get_spec().output_, eval_ctx_, slice_idx_array)))) { LOG_WARN("fail get slice idx", K(ret)); } else if (NULL != spec.tablet_id_expr_ && OB_FAIL(slice_calc.get_previous_row_tablet_id(tablet_id))) { LOG_WARN("failed to get previous row tablet_id", K(ret)); } - LOG_DEBUG("send rows batch without prefetch", K(i), K(slice_idx_array), K(tablet_id.get_int())); + LOG_DEBUG("[VEC2.0 PX] send rows batch without prefetch", K(i), K(slice_idx_array), K(tablet_id.get_int())); FOREACH_CNT_X(slice_idx, slice_idx_array, OB_SUCC(ret)) { if (OB_FAIL(send_row(*slice_idx, send_row_time_recorder, tablet_id.get_int()))) { LOG_WARN("fail emit row to interm result", K(ret), K(slice_idx_array)); @@ -361,7 +685,7 @@ int ObPxTransmitOp::send_rows_in_batch(ObSliceIdxCalc &slice_calc) } } else { int64_t *indexes = NULL; - if (OB_FAIL((slice_calc.get_slice_idx_batch(spec_.output_, eval_ctx_, + if (OB_FAIL((slice_calc.get_slice_idx_batch(spec_.output_, eval_ctx_, *brs_.skip_, brs_.size_, indexes)))) { LOG_WARN("calc slice indexes failed", K(ret)); @@ -380,7 +704,7 @@ int ObPxTransmitOp::send_rows_in_batch(ObSliceIdxCalc &slice_calc) 1); // low temporal locality } } - LOG_DEBUG("send rows batch with prefetch", K(CALC_TYPE), + LOG_DEBUG("[VEC2.0 PX] send rows batch with prefetch", K(CALC_TYPE), K(ObArrayWrap(indexes, brs_.size_))); for (int64_t i = 0; OB_SUCC(ret) && i < brs_.size_; i++) { if (brs_.skip_->at(i)) { @@ -426,7 +750,8 @@ int ObPxTransmitOp::send_rows_in_batch(ObSliceIdxCalc &slice_calc) return ret; } -inline int ObPxTransmitOp::broadcast_rows(ObSliceIdxCalc &slice_calc) +template +int ObPxTransmitOp::broadcast_rows(ObSliceIdxCalc &slice_calc) { int ret = OB_SUCCESS; UNUSED(slice_calc); @@ -459,10 +784,24 @@ inline int ObPxTransmitOp::broadcast_rows(ObSliceIdxCalc &slice_calc) } else if (dfc_.all_ch_drained()) { LOG_DEBUG("all channel has been drained"); break; - } else if (OB_FAIL(try_wait_channel())) { + } else if (OB_FAIL(try_wait_channel())) { LOG_WARN("failed to wait channel", K(ret)); + } else if (USE_VEC) { + ObPxNewRow px_row(get_spec().output_, OB_INVALID_ID, data_msg_type_); + ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx_); + batch_info_guard.set_batch_size(rows); + for (int64_t i = 0; OB_SUCC(ret) && i < rows; i++) { + if (brs_.skip_->at(i)) { + continue; + } + row_count++; + metric_.count(); + batch_info_guard.set_batch_idx(i); + px_row.set_vector_row_idx(i); + ret = chs_agent_.broadcast_row(px_row, &eval_ctx_); + } } else { - ObPxNewRow px_row(get_spec().output_, data_msg_type_); + ObPxNewRow px_row(get_spec().output_, OB_INVALID_ID, data_msg_type_); ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx_); batch_info_guard.set_batch_size(rows); for (int64_t i = 0; OB_SUCC(ret) && i < rows; i++) { diff --git a/src/sql/engine/px/ob_dfo.cpp b/src/sql/engine/px/ob_dfo.cpp index 6defa128c..d0f545bc7 100644 --- a/src/sql/engine/px/ob_dfo.cpp +++ b/src/sql/engine/px/ob_dfo.cpp @@ -586,11 +586,11 @@ int ObPxInitSqcArgs::do_deserialize(int64_t &pos, const char *net_buf, int64_t d for (int64_t j = 0; j < datum_frame.count() && OB_SUCC(ret); j++) { const ObFrameInfo &frame_info = datum_frame.at(j); if (expr.frame_idx_ == frame_info.frame_idx_) { - int64_t max_offset = ObStaticEngineExprCG::frame_max_offset(expr, batch_size); + int64_t max_offset = ObStaticEngineExprCG::frame_max_offset(expr, batch_size, frame_info.use_rich_format_); if (OB_UNLIKELY(max_offset > frame_info.frame_size_)) { ret = OB_SIZE_OVERFLOW; LOG_WARN("unexpected frame size", K(ret), K(frame_info), K(batch_size), - K(max_offset), K(expr), K(expr.batch_result_)); + K(max_offset), K(expr), K(expr.batch_result_), K(expr.offset_off_), K(expr.cont_buf_off_), K(expr.null_bitmap_off_)); } } } diff --git a/src/sql/engine/px/ob_dfo_mgr.cpp b/src/sql/engine/px/ob_dfo_mgr.cpp index 00c99e0e9..3f5189b16 100644 --- a/src/sql/engine/px/ob_dfo_mgr.cpp +++ b/src/sql/engine/px/ob_dfo_mgr.cpp @@ -18,10 +18,12 @@ #include "ob_dfo_mgr.h" #include "sql/engine/basic/ob_temp_table_access_op.h" +#include "sql/engine/basic/ob_temp_table_access_vec_op.h" #include "sql/engine/basic/ob_material_op.h" #include "sql/engine/join/ob_join_filter_op.h" #include "src/sql/engine/px/exchange/ob_px_transmit_op.h" #include "sql/engine/px/ob_px_coord_op.h" +#include "sql/engine/basic/ob_material_vec_op.h" #include "sql/engine/basic/ob_select_into_op.h" using namespace oceanbase::common; @@ -158,6 +160,16 @@ int ObDfoSchedDepthGenerator::try_set_dfo_block(ObExecContext &exec_ctx, ObDfo & ObMaterialOpInput *mat_input = static_cast(kit->input_); mat_input->set_bypass(!block); // so that this dfo will have a blocked material op } + } else if (PHY_VEC_MATERIAL == child->type_) { + const ObMaterialVecSpec *mat = static_cast(child); + ObOperatorKit *kit = exec_ctx.get_operator_kit(mat->id_); + if (OB_ISNULL(kit) || OB_ISNULL(kit->input_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("operator is NULL", K(ret), KP(kit)); + } else { + ObMaterialVecOpInput *mat_input = static_cast(kit->input_); + mat_input->set_bypass(!block); // so that this dfo will have a blocked material op + } } } return ret; @@ -486,6 +498,10 @@ int ObDfoMgr::do_split(ObExecContext &exec_ctx, parent_dfo->set_temp_table_scan(true); const ObTempTableAccessOpSpec *access = static_cast(phy_op); parent_dfo->set_temp_table_id(access->get_table_id()); + } else if (phy_op->get_type() == PHY_VEC_TEMP_TABLE_ACCESS && NULL != parent_dfo) { + parent_dfo->set_temp_table_scan(true); + const ObTempTableAccessVecOpSpec *access = static_cast(phy_op); + parent_dfo->set_temp_table_id(access->get_table_id()); } else if (IS_PX_GI(phy_op->get_type()) && NULL != parent_dfo) { const ObGranuleIteratorSpec *gi_spec = static_cast(phy_op); diff --git a/src/sql/engine/px/ob_px_bloom_filter.cpp b/src/sql/engine/px/ob_px_bloom_filter.cpp index 7acb6453b..b2fba5b74 100644 --- a/src/sql/engine/px/ob_px_bloom_filter.cpp +++ b/src/sql/engine/px/ob_px_bloom_filter.cpp @@ -33,6 +33,21 @@ using namespace obcall; #define WORD_SIZE 64 // WORD_SIZE * FIXED_HASH_COUNT = BF_BLOCK_SIZE #define BLOCK_FILTER_HASH_MASK 0x3F3F3F3F // for each 8 bits, we only use the last 6 bits +class BloomFilterPrefetchOP +{ +public: + BloomFilterPrefetchOP(ObPxBloomFilter *bloom_filter, uint64_t *hash_values) + : bloom_filter_(bloom_filter), hash_values_(hash_values) + {} + OB_INLINE int operator()(int64_t i) { + (void)bloom_filter_->prefetch_bits_block(hash_values_[i]); + return OB_SUCCESS; + } +private: + ObPxBloomFilter *bloom_filter_; + uint64_t *hash_values_; +}; + ObPxBloomFilter::ObPxBloomFilter() : data_length_(0), max_bit_count_(0), bits_count_(0), fpp_(0.0), hash_func_count_(0), is_inited_(false), bits_array_length_(0), bits_array_(NULL), true_count_(0), allocator_() @@ -367,6 +382,171 @@ OB_DEF_SERIALIZE_SIZE(ObPxBloomFilter) } +namespace oceanbase +{ +namespace common +{ +OB_DECLARE_DEFAULT_AND_AVX512_CODE( + +template +class BloomFilterProbeOP +{ +public: + BloomFilterProbeOP(ResVec *res_vec, ObPxBloomFilter *bloom_filter, int64_t *bits_array, + int64_t block_mask, uint64_t *hash_values, int64_t &total_count, + int64_t &filter_count) + : res_vec_(res_vec), bloom_filter_(bloom_filter), bits_array_(bits_array), + block_mask_(block_mask), hash_values_(hash_values), total_count_(total_count), + filter_count_(filter_count) + {} + int operator()(int64_t i) + { + bool is_match = false; + constexpr int64_t is_match_payload = 1; +#if OB_USE_MULTITARGET_CODE + if (SUPPORT_SIMD) { + (void)common::specific::avx512::inline_might_contain_simd(bits_array_, block_mask_, + hash_values_[i], is_match); + } else { +#endif + (void)bloom_filter_->might_contain_nonsimd(hash_values_[i], is_match); +#if OB_USE_MULTITARGET_CODE + } +#endif + ++total_count_; + if (!is_match) { + ++filter_count_; + if (std::is_same::value) { + res_vec_->set_int(i, 0); + } + } else { + if (std::is_same::value) { + res_vec_->set_int(i, 1); + } else { + res_vec_->set_payload(i, &is_match_payload, sizeof(int64_t)); + } + } + return OB_SUCCESS; + } + +private: + ResVec *res_vec_; + ObPxBloomFilter *bloom_filter_; + int64_t *bits_array_; + int64_t block_mask_; + uint64_t *hash_values_; + int64_t &total_count_; + int64_t &filter_count_; +}; + +template +int inner_might_contain(ObPxBloomFilter *bloom_filter, int64_t *bits_array, + int64_t block_mask, const ObExpr &expr, ObEvalCtx &ctx, + const ObBitVector &skip, const EvalBound &bound, + uint64_t *hash_values, int64_t &total_count, + int64_t &filter_count) { + int ret = OB_SUCCESS; + ResVec *res_vec = static_cast(expr.get_vector(ctx)); + static const int64_t is_match_payload = 1; + bool is_match = true; + if (std::is_same::value) { + IntegerFixedVec *int_fixed_vec = reinterpret_cast(res_vec); + uint64_t *data = reinterpret_cast(int_fixed_vec->get_data()); + MEMSET(data + bound.start(), 0, (bound.range_size() * res_vec->get_length(0))); + } + + if (ALL_ROWS_ACTIVE) { + total_count += bound.end() - bound.start(); + for (int64_t i = bound.start(); i < bound.end(); ++i) { + (void)bloom_filter->prefetch_bits_block(hash_values[i]); + } + for (int64_t i = bound.start(); i < bound.end(); ++i) { +#if OB_USE_MULTITARGET_CODE + if (SUPPORT_SIMD) { + (void)specific::avx512::inline_might_contain_simd(bits_array, block_mask, hash_values[i], + is_match); + } else { +#endif + (void)bloom_filter->might_contain_nonsimd(hash_values[i], is_match); +#if OB_USE_MULTITARGET_CODE + } +#endif + if (!is_match) { + filter_count += 1; + if (std::is_same::value) { + res_vec->set_int(i, 0); + } + } else { + if (std::is_same::value) { + res_vec->set_int(i, 1); + } else { + res_vec->set_payload(i, &is_match_payload, sizeof(int64_t)); + } + } + } + } else { + BloomFilterPrefetchOP prefetch_op(bloom_filter, hash_values); + BloomFilterProbeOP probe_op(res_vec, bloom_filter, bits_array, block_mask, + hash_values, total_count, filter_count); + (void)ObBitVector::flip_foreach(skip, bound, prefetch_op); + (void)ObBitVector::flip_foreach(skip, bound, probe_op); + } + return ret; +} +) + +} // namespace common +} // namespace oceanbase + +#define BLOOM_FILTER_DISPATCH_ALL_ROWS_ACTIVATE(function, all_rows_active, support_simd, \ + res_format) \ + if (all_rows_active) { \ + BLOOM_FILTER_DISPATCH_SIMD(function, true, support_simd, res_format) \ + } else { \ + BLOOM_FILTER_DISPATCH_SIMD(function, false, support_simd, res_format) \ + } + +#define BLOOM_FILTER_DISPATCH_SIMD(function, all_rows_active, support_simd, res_format) \ + if (support_simd) { \ + BLOOM_FILTER_DISPATCH_RES_FORMAT(function, all_rows_active, true, res_format) \ + } else { \ + BLOOM_FILTER_DISPATCH_RES_FORMAT(function, all_rows_active, false, res_format) \ + } + +#define BLOOM_FILTER_DISPATCH_RES_FORMAT(function, all_rows_active, support_simd, res_format) \ + if (res_format == VEC_FIXED) { \ + ret = function( \ + this, bits_array_, block_mask_, expr, ctx, skip, bound, hash_values, total_count, \ + filter_count); \ + } else { \ + ret = function( \ + this, bits_array_, block_mask_, expr, ctx, skip, bound, hash_values, total_count, \ + filter_count); \ + } + +int ObPxBloomFilter::might_contain_vector(const ObExpr &expr, ObEvalCtx &ctx, + const ObBitVector &skip, const EvalBound &bound, + uint64_t *hash_values, int64_t &total_count, + int64_t &filter_count) +{ + int ret = OB_SUCCESS; + bool all_rows_active = bound.get_all_rows_active(); + VectorFormat res_format = expr.get_format(ctx); +#if OB_USE_MULTITARGET_CODE + if (common::is_arch_supported(ObTargetArch::AVX512)) { + constexpr bool support_simd = true; + BLOOM_FILTER_DISPATCH_ALL_ROWS_ACTIVATE(common::specific::avx512::inner_might_contain, + all_rows_active, support_simd, res_format) + } else { +#endif + constexpr bool support_simd = false; + BLOOM_FILTER_DISPATCH_ALL_ROWS_ACTIVATE(common::specific::normal::inner_might_contain, + all_rows_active, support_simd, res_format) +#if OB_USE_MULTITARGET_CODE + } +#endif + return ret; +} //-------------------------------------division line---------------------------- int ObPxBFStaticInfo::init(int64_t filter_id, bool is_shared, bool skip_subpart, int64_t p2p_dh_id, diff --git a/src/sql/engine/px/ob_px_scheduler.cpp b/src/sql/engine/px/ob_px_scheduler.cpp index 8176cb96f..ca27795cf 100644 --- a/src/sql/engine/px/ob_px_scheduler.cpp +++ b/src/sql/engine/px/ob_px_scheduler.cpp @@ -452,6 +452,18 @@ int ObPxMsgProc::on_piece_msg( return proc.on_piece_msg(coord_info_, ctx, pkt); } +int ObPxMsgProc::on_piece_msg(ObExecContext &ctx, const SPWinFuncPXPieceMsg &pkt) +{ + ObDhPieceMsgProc proc; + return proc.on_piece_msg(coord_info_, ctx, pkt); +} + +int ObPxMsgProc::on_piece_msg(ObExecContext &ctx, const RDWinFuncPXPieceMsg &pkt) +{ + ObDhPieceMsgProc proc; + return proc.on_piece_msg(coord_info_, ctx, pkt); +} + int ObPxMsgProc::on_piece_msg(ObExecContext &ctx, const ObJoinFilterCountRowPieceMsg &pkt) { ObDhPieceMsgProc proc; diff --git a/src/sql/engine/px/ob_px_sub_coord.cpp b/src/sql/engine/px/ob_px_sub_coord.cpp index 79cbbe687..fa14cf371 100644 --- a/src/sql/engine/px/ob_px_sub_coord.cpp +++ b/src/sql/engine/px/ob_px_sub_coord.cpp @@ -23,11 +23,13 @@ #include "sql/engine/px/exchange/ob_px_transmit_op.h" #include "sql/engine/join/ob_join_filter_op.h" #include "sql/engine/join/ob_hash_join_op.h" +#include "sql/engine/join/hash_join/ob_hash_join_vec_op.h" #include "sql/engine/basic/ob_temp_table_access_op.h" +#include "sql/engine/basic/ob_temp_table_access_vec_op.h" #include "sql/engine/px/ob_px_sqc_handler.h" #include "sql/executor/ob_task_spliter.h" #include "storage/ddl/ob_direct_insert_sstable_ctx.h" -#include "sql/engine/window_function/ob_window_function_op.h" +#include "sql/engine/window_function/ob_window_function_vec_op.h" #include "sql/engine/basic/ob_select_into_op.h" #include "storage/ddl/ob_direct_load_mgr_v3.h" #include "storage/ddl/ob_direct_load_mgr_utils.h" @@ -424,6 +426,51 @@ int ObPxSubCoord::setup_op_input(ObExecContext &ctx, std::shuffle(access_input->interm_result_ids_.begin(), access_input->interm_result_ids_.end(), g); #else std::random_shuffle(access_input->interm_result_ids_.begin(), access_input->interm_result_ids_.end()); +#endif + if (OB_FAIL(append(access_input->interm_result_ids_, info.interm_result_ids_))) { + LOG_WARN("failed to append local result ids", K(ret)); + } else { + find = true; + } + } + } + } + if (OB_FAIL(ret)) { + //do nothing + } else if (!find) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("temp table not found", K(access_op.temp_table_id_), K(ret)); + } else { + *access_count_ptr = access_input->interm_result_ids_.count(); + access_input->unfinished_count_ptr_ = reinterpret_cast(access_count_ptr); + } + } + } else if (root.get_type() == PHY_VEC_TEMP_TABLE_ACCESS) { + ObPxSqcMeta &sqc = sqc_arg_.sqc_; + ObTempTableAccessVecOpInput *access_input = NULL; + uint64_t *access_count_ptr = NULL; + ObOperatorKit *kit = ctx.get_operator_kit(root.id_); + if (OB_ISNULL(kit) || OB_ISNULL(kit->input_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("operator is NULL", K(ret), KP(kit)); + } else if (OB_ISNULL(access_count_ptr = (uint64_t *)ctx.get_allocator().alloc(sizeof(uint64_t)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc count_ptr", K(ret)); + } else { + access_input = static_cast(kit->input_); + ObTempTableAccessVecOpSpec &access_op = static_cast(root); + bool find = false; + for (int64_t i = 0; OB_SUCC(ret) && !find && i < sqc.get_temp_table_ctx().count(); ++i) { + ObSqlTempTableCtx &temp_table_ctx = sqc.get_temp_table_ctx().at(i); + if (access_op.temp_table_id_ == temp_table_ctx.temp_table_id_) { + for (int64_t j = 0; OB_SUCC(ret) && j < temp_table_ctx.interm_result_infos_.count(); ++j) { + ObTempTableResultInfo &info = temp_table_ctx.interm_result_infos_.at(j); +#if defined(__APPLE__) || defined(_WIN32) || defined(__ANDROID__) + std::random_device rd; + std::mt19937 g(rd()); + std::shuffle(access_input->interm_result_ids_.begin(), access_input->interm_result_ids_.end(), g); +#else + std::random_shuffle(access_input->interm_result_ids_.begin(), access_input->interm_result_ids_.end()); #endif if (OB_FAIL(append(access_input->interm_result_ids_, info.interm_result_ids_))) { LOG_WARN("failed to append local result ids", K(ret)); @@ -457,6 +504,23 @@ int ObPxSubCoord::setup_op_input(ObExecContext &ctx, } else { LOG_TRACE("debug hj input", K(hj_spec->is_shared_ht_)); } + } else if (root.get_type() == PHY_VEC_HASH_JOIN) { + ObPxSqcMeta &sqc = sqc_arg_.sqc_; + ObHashJoinVecInput *hj_input = NULL; + ObOperatorKit *kit = ctx.get_operator_kit(root.id_); + ObHashJoinVecSpec *hj_spec = reinterpret_cast(&root); + if (OB_ISNULL(kit) || OB_ISNULL(kit->input_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("operator is NULL", K(ret), KP(kit)); + } else if (FALSE_IT(hj_input = static_cast(kit->input_))) { + } else if (hj_spec->is_shared_ht_ + && OB_FAIL(hj_input->init_shared_hj_info(ctx.get_allocator(), + sqc.get_task_count()))) { + LOG_WARN("failed to init shared hash join info", K(ret)); + } else { + LOG_TRACE("debug hj input", K(hj_spec->is_shared_ht_)); + } + } else if (root.get_type() == PHY_WINDOW_FUNCTION) { // set task_count to ObWindowFunctionOpInput for wf pushdown ObPxSqcMeta &sqc = sqc_arg_.sqc_; @@ -477,6 +541,27 @@ int ObPxSubCoord::setup_op_input(ObExecContext &ctx, LOG_DEBUG("debug wf input", K(wf_spec->role_type_), K(sqc.get_task_count()), K(sqc.get_total_task_count())); } + } else if (root.get_type() == PHY_VEC_SORT) { + // TODO XUNSI: if shared topn filter, init the shared topn msg here + } else if (root.get_type() == PHY_VEC_WINDOW_FUNCTION) { + ObPxSqcMeta &sqc = sqc_arg_.sqc_; + ObWindowFunctionVecOpInput *wf_input = NULL; + ObOperatorKit *kit = ctx.get_operator_kit(root.id_); + ObWindowFunctionVecSpec *wf_spec = reinterpret_cast(&root); + if (OB_ISNULL(kit) || OB_ISNULL(kit->input_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("operator is null", K(ret), K(kit)); + } else if (FALSE_IT(wf_input = static_cast(kit->input_))) { + } else if (wf_spec->is_participator()) { + wf_input->set_local_task_count(sqc.get_task_count()); + wf_input->set_total_task_count(sqc.get_total_task_count()); + if (OB_FAIL(wf_input->init_wf_participator_shared_info(ctx.get_allocator(), + sqc.get_task_count()))) { + LOG_WARN("init wf participator shared info failed", K(ret)); + } + LOG_DEBUG("debug wf input", K(wf_spec->role_type_), K(sqc.get_task_count()), + K(sqc.get_total_task_count())); + } } if (OB_SUCC(ret)) { if (OB_FAIL(root.register_to_datahub(ctx))) { diff --git a/src/sql/engine/px/ob_px_task_process.cpp b/src/sql/engine/px/ob_px_task_process.cpp index 6a24c92af..fbf74b3ec 100644 --- a/src/sql/engine/px/ob_px_task_process.cpp +++ b/src/sql/engine/px/ob_px_task_process.cpp @@ -22,12 +22,14 @@ #include "sql/engine/px/ob_px_sqc_handler.h" #include "sql/engine/px/exchange/ob_px_transmit_op.h" #include "sql/engine/basic/ob_temp_table_insert_op.h" +#include "sql/engine/basic/ob_temp_table_insert_vec_op.h" #include "sql/engine/join/ob_hash_join_op.h" #include "sql/engine/pdml/static/ob_px_multi_part_insert_op.h" #include "sql/engine/join/ob_join_filter_op.h" +#include "sql/engine/join/hash_join/ob_hash_join_vec_op.h" #include "sql/engine/basic/ob_select_into_op.h" #include "observer/mysql/obmp_base.h" -#include "sql/engine/window_function/ob_window_function_op.h" +#include "sql/engine/window_function/ob_window_function_vec_op.h" using namespace oceanbase::common; using namespace oceanbase::share; @@ -675,6 +677,23 @@ int ObPxTaskProcess::OpPreparation::apply(ObExecContext &ctx, input->sqc_id_ = sqc_id_; input->dfo_id_ = dfo_id_; } + } else if (PHY_VEC_TEMP_TABLE_INSERT == op.type_) { + ObOperatorKit *kit = ctx.get_operator_kit(op.id_); + if (OB_ISNULL(kit) || OB_ISNULL(kit->op_) || OB_ISNULL(kit->input_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("operator is NULL", K(ret), KP(kit)); + } else if (PHY_VEC_TEMP_TABLE_INSERT != kit->spec_->type_) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("is not temp table insert operator", K(ret), + "spec", kit->spec_); + } else { + ObTempTableInsertVecOp *insert_op = static_cast(kit->op_); + insert_op->set_px_task(task_); + ObTempTableInsertVecOpInput *input = static_cast(kit->input_); + input->qc_id_ = NULL == task_ ? OB_INVALID_ID : task_->qc_id_; + input->sqc_id_ = sqc_id_; + input->dfo_id_ = dfo_id_; + } } else if (PHY_HASH_JOIN == op.type_) { if (OB_ISNULL(kit->input_)) { ret = OB_ERR_UNEXPECTED; @@ -690,6 +709,21 @@ int ObPxTaskProcess::OpPreparation::apply(ObExecContext &ctx, LOG_TRACE("debug pre apply info", K(task_id_), K(op.id_)); } } + } else if (PHY_VEC_HASH_JOIN == op.type_) { + if (OB_ISNULL(kit->input_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("operator is NULL", K(ret), KP(kit)); + } else { + const ObHashJoinVecSpec &hj_spec = static_cast(op); + ObHashJoinVecInput *input = static_cast(kit->input_); + if (OB_ISNULL(input)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("input not found for op", "op_id", op.id_, K(ret)); + } else if (hj_spec.is_shared_ht_) { + input->set_task_id(task_id_); + LOG_TRACE("debug pre apply info", K(task_id_), K(op.id_)); + } + } } else if (PHY_SELECT_INTO == op.type_) { if (OB_ISNULL(kit->input_)) { ret = OB_ERR_UNEXPECTED; @@ -758,6 +792,23 @@ int ObPxTaskProcess::OpPostparation::apply(ObExecContext &ctx, const ObOpSpec &o LOG_TRACE("debug post apply info", K(ret_)); } } + } else if (PHY_VEC_HASH_JOIN == op.type_) { + if (OB_ISNULL(kit->input_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("operator is NULL", K(ret), KP(kit)); + } else { + const ObHashJoinVecSpec &hj_spec = static_cast(op); + ObHashJoinVecInput *input = static_cast(kit->input_); + if (OB_ISNULL(input)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("input not found for op", "op_id", op.id_, K(ret)); + } else if (hj_spec.is_shared_ht_ && OB_SUCCESS != ret_) { + input->set_error_code(OB_GOT_SIGNAL_ABORTING); + LOG_TRACE("debug post apply info", K(ret_)); + } else { + LOG_TRACE("debug post apply info", K(ret_)); + } + } } else if (PHY_WINDOW_FUNCTION == op.type_) { if (OB_ISNULL(kit->input_)) { ret = OB_ERR_UNEXPECTED; @@ -775,6 +826,23 @@ int ObPxTaskProcess::OpPostparation::apply(ObExecContext &ctx, const ObOpSpec &o LOG_TRACE("debug post apply info", K(ret_)); } } + } else if (PHY_VEC_WINDOW_FUNCTION == op.type_) { + if (OB_ISNULL(kit->input_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("operator is null", K(ret), K(kit)); + } else { + const ObWindowFunctionVecSpec &wf_spec = static_cast(op); + ObWindowFunctionOpInput *input = static_cast(kit->input_); + if (OB_ISNULL(input)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("input is null", K(ret)); + } else if (wf_spec.is_participator() && OB_SUCCESS != ret_) { + input->set_error_code(OB_GOT_SIGNAL_ABORTING); + LOG_TRACE("debug post apply info", K(ret_)); + } else { + LOG_TRACE("debug post apply info", K(ret_)); + } + } } else if (PHY_PX_MULTI_PART_INSERT == op.get_type()) { if (OB_ISNULL(kit->input_)) { ret = OB_ERR_UNEXPECTED; diff --git a/src/sql/engine/px/ob_px_util.h b/src/sql/engine/px/ob_px_util.h index 426b6680a..2bd7e06a3 100644 --- a/src/sql/engine/px/ob_px_util.h +++ b/src/sql/engine/px/ob_px_util.h @@ -444,7 +444,12 @@ class ObPxTreeSerializer OB_UNIS_ENCODE(all_frames.at(i)); } } - const int64_t item_size = sizeof(ObDatum) + sizeof(ObEvalInfo); + int64_t item_size = 0; + if ((all_frames.count() > 0) && all_frames.at(0).use_rich_format_) { + item_size = sizeof(ObDatum) + sizeof(ObEvalInfo) + sizeof(VectorHeader); + } else { + item_size = sizeof(ObDatum) + sizeof(ObEvalInfo); + } for (int64_t i = 0; i < all_frames.count() && OB_SUCC(ret); ++i) { const ObFrameInfo &frame_info = all_frames.at(i); //TODO shengle seri can opt, only serialize: sizeof(ObDatum) + sizeof(ObEvalInfo) @@ -574,6 +579,17 @@ class ObPxTreeSerializer } else { ctx.set_frames(frames); ctx.set_frame_cnt(frame_cnt); + // init const vector + ObEvalCtx eval_ctx(ctx); + const ObIArray &exprs = expr_frame_info.rt_exprs_; + for (int64_t i = 0; OB_SUCC(ret) && i < exprs.count(); i++) { + const ObExpr &expr = exprs.at(i); + if (expr.is_const_expr() + && UINT32_MAX != expr.vector_header_off_ + && T_OP_ROW != expr.type_) { + ret = expr.init_vector(eval_ctx, VEC_UNIFORM_CONST, 1/*size*/); + } + } } return ret; } @@ -650,7 +666,12 @@ class ObPxTreeSerializer } for (int64_t i = 0; i < all_frames.count() && OB_SUCC(ret); ++i) { const ObFrameInfo &frame_info = all_frames.at(i); - const int64_t item_size = sizeof(ObDatum) + sizeof(ObEvalInfo); + int64_t item_size = 0; + if (frame_info.use_rich_format_) { + item_size = sizeof(ObDatum) + sizeof(ObEvalInfo) + sizeof(VectorHeader); + } else { + item_size = sizeof(ObDatum) + sizeof(ObEvalInfo); + } char *frame_buf = frames[frame_info.frame_idx_]; for (int64_t j = 0; j < frame_info.expr_cnt_ && OB_SUCC(ret); ++j) { ObDatum *expr_datum = reinterpret_cast @@ -744,7 +765,12 @@ class ObPxTreeSerializer int ret = OB_SUCCESS; int64_t len = 0; int64_t need_extra_mem_size = 0; - const int64_t item_size = sizeof(ObDatum) + sizeof(ObEvalInfo); + int64_t item_size = 0; + if ((all_frames.count() > 0) && all_frames.at(0).use_rich_format_) { + item_size = sizeof(ObDatum) + sizeof(ObEvalInfo) + sizeof(VectorHeader); + } else { + item_size = sizeof(ObDatum) + sizeof(ObEvalInfo); + } if (SERIALIZE_PLAN_PART) { OB_UNIS_ADD_LEN(all_frames.count()); for (int64_t i = 0; i < all_frames.count() && OB_SUCC(ret); ++i) { diff --git a/src/sql/engine/px/ob_slice_calc.h b/src/sql/engine/px/ob_slice_calc.h index 5d2dd7030..a732ddf62 100644 --- a/src/sql/engine/px/ob_slice_calc.h +++ b/src/sql/engine/px/ob_slice_calc.h @@ -71,8 +71,17 @@ class ObSliceIdxCalc * if row0 to channel2, row1 to channel0, row2 to channel1 * the result of SliceIdxArray will be: [2,0,1]. * if row0 to channel1, SliceIdxArray will be: [1]. + * SliceIdxFlattenArray + EndIdxArray : used for row->channel in 1 to 1 and 1 to n, + * not only one row. [end_indexes[i-1] , end_indexes[i]) will be the index + * (in SliceIdxFlattenArray) range that rowi will be send to. + * for example: + * if row0->channel0,1,2; row1->channel2;row2->channel2,3 + * SliceIdxArray will be [0,1,2,2,2,3], + * EndIdxArray will be [3,4,6]. */ typedef common::ObSEArray SliceIdxArray; + typedef common::ObSEArray SliceIdxFlattenArray; + typedef common::ObSEArray EndIdxArray; enum SliceCalcType { ALL_TO_ONE,//ObAllToOneSliceIdxCalc SM_REPART_RANDOM,//ObSlaveMapPkeyRandomIdxCalc @@ -94,6 +103,7 @@ class ObSliceIdxCalc explicit ObSliceIdxCalc(common::ObIAllocator &allocator, ObNullDistributeMethod::Type null_row_dist_method) : support_vectorized_calc_(false), + is_multi_slice_calc_type_(false), alloc_(allocator), slice_indexes_(NULL), tablet_ids_(nullptr), @@ -101,15 +111,20 @@ class ObSliceIdxCalc null_row_dist_method_(null_row_dist_method) {} virtual ~ObSliceIdxCalc() = default; - template + template int get_slice_indexes( const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); - template + template int get_slice_idx_batch(const ObIArray &exprs, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes); + template + int get_multi_slice_idx_vector(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + SliceIdxFlattenArray &slice_flatten_indexes, EndIdxArray &end_indexes); // calculate a group of indexes for one row. + template int get_slice_indexes_inner( const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); // Get the target partition corresponding to the row passed in the previous call to get_slice_indexes @@ -119,10 +134,12 @@ class ObSliceIdxCalc // support vectorized slice indexes calculation. bool support_vectorized_calc() const { return support_vectorized_calc_; } + bool is_multi_slice_calc_type() const { return is_multi_slice_calc_type_; } virtual void set_calc_hash_keys(int64_t n_keys) { UNUSED(n_keys); } // Calculate slice index vector for batch rows. // The function is called only support_vectorized_calc() is true. // This interface is for vectorization 1.0 which is row-oriented. + template int get_slice_idx_batch_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes) @@ -130,6 +147,13 @@ class ObSliceIdxCalc UNUSEDx(exprs, eval_ctx, skip, batch_size, indexes); return common::OB_NOT_SUPPORTED; } + int get_multi_slice_idx_vector_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + SliceIdxFlattenArray &slice_flatten_indexes, EndIdxArray &end_indexes) + { + UNUSEDx(exprs, eval_ctx, skip, batch_size, slice_flatten_indexes, end_indexes); + return common::OB_NOT_SUPPORTED; + } protected: // used when calculate index id for single row. To make count of slice_idx_array = 1 int setup_slice_index(SliceIdxArray &slice_idx_array); @@ -137,9 +161,11 @@ class ObSliceIdxCalc int setup_slice_indexes(ObEvalCtx &ctx); int setup_tablet_ids(ObEvalCtx &ctx); // used for null aware anti join + template int calc_for_null_aware(const ObExpr &expr, const int64_t task_cnt, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, bool &processed, ObBitVector *skip); bool support_vectorized_calc_; + bool is_multi_slice_calc_type_; common::ObIAllocator &alloc_; int64_t *slice_indexes_; int64_t *tablet_ids_; @@ -166,8 +192,10 @@ class ObAllToOneSliceIdxCalc : public ObSliceIdxCalc support_vectorized_calc_ = true; } virtual ~ObAllToOneSliceIdxCalc() = default; + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + template int get_slice_idx_batch_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes); @@ -235,13 +263,17 @@ class ObRepartSliceIdxCalc : public ObSliceIdxCalc virtual ~ObRepartSliceIdxCalc() {} + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + template int get_slice_idx_batch_inner(const ObIArray &, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes); + template int get_tablet_id(ObEvalCtx &eval_ctx, int64_t &tablet_id, ObBitVector *skip = NULL); + template int get_tablet_ids(ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&tablet_ids); virtual int get_previous_row_tablet_id(ObObj &tablet_id) override; @@ -404,8 +436,10 @@ class ObSlaveMapPkeyRandomIdxCalc : public ObSlaveMapRepartIdxCalcBase ~ObSlaveMapPkeyRandomIdxCalc() = default; + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + template int get_slice_idx_batch_inner(const ObIArray &, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes); @@ -476,8 +510,10 @@ class ObAffinitizedRepartSliceIdxCalc : public ObRepartSliceIdxCalc ~ObAffinitizedRepartSliceIdxCalc() = default; + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + template int get_slice_idx_batch_inner(const ObIArray &, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes); @@ -537,6 +573,7 @@ class ObSlaveMapBcastIdxCalc : public ObRepartSliceIdxCalc {} ~ObSlaveMapBcastIdxCalc() = default; + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); protected: @@ -563,10 +600,20 @@ class ObBc2HostSliceIdCalc : public ObMultiSliceIdxCalc const HostIdxArray &host_idx, ObNullDistributeMethod::Type null_row_dist_method) : ObMultiSliceIdxCalc(alloc, null_row_dist_method), channel_idx_(channel_idx), host_idx_(host_idx) - {} + { + is_multi_slice_calc_type_ = true; + } + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + template + int get_slice_idx_batch_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + int64_t *&indexes); + int get_multi_slice_idx_vector_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + SliceIdxFlattenArray &slice_flatten_indexes, EndIdxArray &end_indexes); private: const ChannelIdxArray &channel_idx_; const HostIdxArray &host_idx_; @@ -581,8 +628,10 @@ class ObRandomSliceIdCalc : public ObSliceIdxCalc support_vectorized_calc_ = true; } + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + template int get_slice_idx_batch_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes); @@ -598,10 +647,17 @@ class ObBroadcastSliceIdCalc : public ObMultiSliceIdxCalc uint64_t slice_cnt, ObNullDistributeMethod::Type null_row_dist_method) : ObMultiSliceIdxCalc(alloc, null_row_dist_method), slice_cnt_(slice_cnt) - {} + { + is_multi_slice_calc_type_ = true; + } + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + + int get_multi_slice_idx_vector_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + SliceIdxFlattenArray &slice_flatten_indexes, EndIdxArray &end_indexes); private: uint64_t slice_cnt_; }; @@ -643,11 +699,17 @@ class ObRangeSliceIdCalc : public ObSliceIdxCalc support_vectorized_calc_ = true; } + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + template int get_slice_idx_batch_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes); + template + int get_slice_idx_batch_vec(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + int64_t *&indexes); int64 task_cnt_; const ObPxTabletRange *range_; const ObIArray *dist_exprs_; @@ -697,15 +759,23 @@ class ObHashSliceIdCalc : public ObSliceIdxCalc malloc_alloc_ = nullptr; } } + template int calc_hash_value(ObEvalCtx &eval_ctx, uint64_t &hash_val, ObBitVector *skip = NULL); + template int calc_slice_idx(ObEvalCtx &eval_ctx, int64_t slice_size, int64_t &slice_idx, ObBitVector *skip = NULL); + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); virtual void set_calc_hash_keys(int64_t n_keys) { n_keys_ = n_keys; } + template int get_slice_idx_batch_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes); + template + int get_slice_idx_batch_vec(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + int64_t *&indexes); OB_INLINE bool use_special_null_dist() const { return ObNullDistributeMethod::NONE != null_row_dist_method_; } OB_INLINE void fast_calc_slice_idx_batch(int64_t *slice_idxes, uint64_t *hash_vals, int64_t batch_size, int64_t task_cnt) { @@ -780,6 +850,7 @@ class ObHybridHashSliceIdCalcBase } } protected: + template int check_if_popular_value(ObEvalCtx &eval_ctx, bool &is_popular, ObBitVector *skip); ObHashSliceIdCalc hash_calc_; const common::ObIArray *popular_values_hash_; @@ -803,9 +874,15 @@ class ObHybridHashBroadcastSliceIdCalc : public ObHybridHashSliceIdCalcBase, hash_funcs, popular_values_hash, can_fast_calc_hash), ObMultiSliceIdxCalc(alloc, null_row_dist_method), broadcast_calc_(alloc, slice_cnt, null_row_dist_method) - {} + { + is_multi_slice_calc_type_ = true; + } + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + int get_multi_slice_idx_vector_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + SliceIdxFlattenArray &slice_flatten_indexes, EndIdxArray &end_indexes); private: ObBroadcastSliceIdCalc broadcast_calc_; }; @@ -829,8 +906,10 @@ class ObHybridHashRandomSliceIdCalc : public ObHybridHashSliceIdCalcBase, { support_vectorized_calc_ = true; } + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + template int get_slice_idx_batch_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes); @@ -869,6 +948,7 @@ class ObSlaveMapPkeyRangeIdxCalc : public ObSlaveMapRepartIdxCalcBase virtual ~ObSlaveMapPkeyRangeIdxCalc(); virtual int init() override; virtual int destroy() override; + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); private: @@ -989,9 +1069,11 @@ class ObSlaveMapPkeyHashIdxCalc : public ObSlaveMapRepartIdxCalcBase int destroy() override; // for static engine + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + template int get_slice_idx_batch_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, ObBitVector &skip, const int64_t batch_size, int64_t *&indexes) @@ -1001,6 +1083,7 @@ class ObSlaveMapPkeyHashIdxCalc : public ObSlaveMapRepartIdxCalcBase } private: + template int get_task_idx_by_tablet_id(ObEvalCtx &eval_ctx, int64_t tablet_id , int64_t &task_idx, ObBitVector *skip = NULL); int build_affi_hash_map(hash::ObHashMap &affi_hash_map); @@ -1027,8 +1110,13 @@ class ObWfHybridDistSliceIdCalc : public ObSliceIdxCalc slice_id_calc_type_(SliceIdCalcType::INVALID), broadcast_slice_id_calc_(alloc, task_cnt, null_row_dist_method), random_slice_id_calc_(alloc, task_cnt), - hash_slice_id_calc_(alloc, task_cnt, null_row_dist_method, dist_exprs, hash_funcs, can_fast_calc_hash) - {} + hash_slice_id_calc_(alloc, task_cnt, null_row_dist_method, dist_exprs, hash_funcs, can_fast_calc_hash), + wf_hybrid_aggr_status_expr_(nullptr), + wf_hybrid_pby_exprs_cnt_array_(nullptr) + { + is_multi_slice_calc_type_ = true; + } + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); virtual void set_calc_hash_keys(int64_t n_keys) @@ -1039,12 +1127,27 @@ class ObWfHybridDistSliceIdCalc : public ObSliceIdxCalc { slice_id_calc_type_ = slice_id_calc_type; } + int get_multi_slice_idx_vector_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + SliceIdxFlattenArray &slice_flatten_indexes, EndIdxArray &end_indexes); bool is_broad_cast_slice_calc() { return SliceIdCalcType::BROADCAST == slice_id_calc_type_; } + void set_wf_hybrid_aggr_status_expr(ObExpr *wf_hybrid_aggr_status_expr) + { + wf_hybrid_aggr_status_expr_ = wf_hybrid_aggr_status_expr; + } + void set_wf_hybrid_pby_exprs_cnt_array(const common::ObFixedArray + *wf_hybrid_pby_exprs_cnt_array) + { + wf_hybrid_pby_exprs_cnt_array_ = wf_hybrid_pby_exprs_cnt_array; + } private: SliceIdCalcType slice_id_calc_type_; ObBroadcastSliceIdCalc broadcast_slice_id_calc_; ObRandomSliceIdCalc random_slice_id_calc_; ObHashSliceIdCalc hash_slice_id_calc_; + ObExpr *wf_hybrid_aggr_status_expr_; + const common::ObFixedArray *wf_hybrid_pby_exprs_cnt_array_; + SliceIdxArray slice_calc_array_one_row_; }; class ObNullAwareHashSliceIdCalc : public ObHashSliceIdCalc @@ -1058,11 +1161,15 @@ class ObNullAwareHashSliceIdCalc : public ObHashSliceIdCalc : ObHashSliceIdCalc(alloc, task_cnt, ObNullDistributeMethod::NONE, dist_exprs, hash_funcs, can_fast_calc_hash) { - support_vectorized_calc_ = false; + is_multi_slice_calc_type_ = true; } + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); + int get_multi_slice_idx_vector_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + SliceIdxFlattenArray &slice_flatten_indexes, EndIdxArray &end_indexes); }; class ObNullAwareAffinitizedRepartSliceIdxCalc : public ObAffinitizedRepartSliceIdxCalc @@ -1095,7 +1202,7 @@ class ObNullAwareAffinitizedRepartSliceIdxCalc : public ObAffinitizedRepartSlice can_fast_calc_hash), repartition_exprs_(repartition_exprs) { - support_vectorized_calc_ = false; + is_multi_slice_calc_type_ = true; } ObNullAwareAffinitizedRepartSliceIdxCalc( @@ -1123,11 +1230,12 @@ class ObNullAwareAffinitizedRepartSliceIdxCalc : public ObAffinitizedRepartSlice can_fast_calc_hash), repartition_exprs_(repartition_exprs) { - support_vectorized_calc_ = false; + is_multi_slice_calc_type_ = true; } ~ObNullAwareAffinitizedRepartSliceIdxCalc() = default; virtual int init() override; + template int get_slice_indexes_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, SliceIdxArray &slice_idx_array, ObBitVector *skip = NULL); virtual int get_slice_idx(const ObIArray &exprs, ObEvalCtx &eval_ctx, int64_t &slice_idx) @@ -1137,6 +1245,9 @@ class ObNullAwareAffinitizedRepartSliceIdxCalc : public ObAffinitizedRepartSlice UNUSED(slice_idx); return common::OB_NOT_IMPLEMENT; } + int get_multi_slice_idx_vector_inner(const ObIArray &exprs, ObEvalCtx &eval_ctx, + ObBitVector &skip, const int64_t batch_size, + SliceIdxFlattenArray &slice_flatten_indexes, EndIdxArray &end_indexes); private: const ObIArray *repartition_exprs_; }; diff --git a/src/sql/engine/px/p2p_datahub/ob_p2p_dh_mgr.cpp b/src/sql/engine/px/p2p_datahub/ob_p2p_dh_mgr.cpp index a39162d4f..292fcf089 100644 --- a/src/sql/engine/px/p2p_datahub/ob_p2p_dh_mgr.cpp +++ b/src/sql/engine/px/p2p_datahub/ob_p2p_dh_mgr.cpp @@ -18,6 +18,7 @@ #include "sql/engine/px/p2p_datahub/ob_p2p_dh_mgr.h" #include "sql/engine/px/p2p_datahub/ob_runtime_filter_msg.h" +#include "sql/engine/px/p2p_datahub/ob_runtime_filter_vec_msg.h" #include "sql/engine/px/p2p_datahub/ob_pushdown_topn_filter_msg.h" using namespace oceanbase; @@ -90,8 +91,11 @@ int ObP2PDatahubManager::alloc_msg( int ret = OB_SUCCESS; switch(type) { ALLOC_MSG_HELPER(BLOOM_FILTER_MSG, ObRFBloomFilterMsg, "PxBfMsg") + ALLOC_MSG_HELPER(BLOOM_FILTER_VEC_MSG, ObRFBloomFilterMsg, "PxBfVecMsg") ALLOC_MSG_HELPER(RANGE_FILTER_MSG, ObRFRangeFilterMsg, "PxRangeMsg") + ALLOC_MSG_HELPER(RANGE_FILTER_VEC_MSG, ObRFRangeFilterVecMsg, "PxRangeVecMsg") ALLOC_MSG_HELPER(IN_FILTER_MSG, ObRFInFilterMsg, "PxInMsg") + ALLOC_MSG_HELPER(IN_FILTER_VEC_MSG, ObRFInFilterVecMsg, "PxInVecMsg") ALLOC_MSG_HELPER(PD_TOPN_FILTER_MSG, ObPushDownTopNFilterMsg, "PxTopNMsg") default: { ret = OB_ERR_UNEXPECTED; diff --git a/src/sql/engine/px/p2p_datahub/ob_pushdown_topn_filter_msg.h b/src/sql/engine/px/p2p_datahub/ob_pushdown_topn_filter_msg.h index 90ad5c3f1..fc370c3f2 100644 --- a/src/sql/engine/px/p2p_datahub/ob_pushdown_topn_filter_msg.h +++ b/src/sql/engine/px/p2p_datahub/ob_pushdown_topn_filter_msg.h @@ -26,6 +26,7 @@ namespace oceanbase namespace sql { +struct ObCompactRow; class ObExprTopNFilterContext; struct ObSortFieldCollation; @@ -35,7 +36,7 @@ struct ObTopNFilterCmpMeta final public: union { - common::ObDatumCmpFuncType cmp_func_; + NullSafeRowCmpFunc cmp_func_; sql::serializable_function ser_cmp_func_; }; ObObjMeta obj_meta_; @@ -47,7 +48,10 @@ struct ObTopNFilterCompare final OB_UNIS_VERSION_V(1); public: inline int compare_for_build(const ObDatum &l, const ObDatum &r, int &cmp_res) const { - int ret = build_meta_.cmp_func_(l, r, cmp_res); + int ret = build_meta_.cmp_func_(build_meta_.obj_meta_, build_meta_.obj_meta_, + l.ptr_, l.len_, l.is_null(), + r.ptr_, r.len_, r.is_null(), + cmp_res); // when compare new coming data with origin data, we always want maintain the smaller one. if (!is_ascending_) { cmp_res = -cmp_res; @@ -55,7 +59,10 @@ struct ObTopNFilterCompare final return ret; } inline int compare_for_filter(const ObDatum &l, const ObDatum &r, int &cmp_res) const { - int ret = filter_meta_.cmp_func_(l, r, cmp_res); + int ret = filter_meta_.cmp_func_(filter_meta_.obj_meta_, build_meta_.obj_meta_, + l.ptr_, l.len_, l.is_null(), + r.ptr_, r.len_, r.is_null(), + cmp_res); if (!is_ascending_) { cmp_res = -cmp_res; } @@ -128,6 +135,10 @@ class ObPushDownTopNFilterMsg final : public ObP2PDatahubMsgBase int filter_out_data_batch(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const int64_t batch_size, ObExprTopNFilterContext &filter_ctx); + int filter_out_data_vector(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, + const EvalBound &bound, + ObExprTopNFilterContext &filter_ctx); + int update_filter_data(ObCompactRow *compact_row, const RowMeta *row_meta_, bool &is_updated); int update_filter_data(ObChunkDatumStore::StoredRow *store_row, bool &is_updated); int prepare_storage_white_filter_data(ObDynamicFilterExecutor &dynamic_filter, @@ -144,12 +155,14 @@ class ObPushDownTopNFilterMsg final : public ObP2PDatahubMsgBase } private: + bool check_has_null(ObCompactRow *compact_row); bool check_has_null(ObChunkDatumStore::StoredRow *store_row); // for merge p2p msg in consumer int merge_heap_top_datums(ObIArray &incomming_datums); int copy_heap_top_datums_from(ObIArray &incomming_datums); // for update from local thread in producer + int copy_heap_top_datums_from(ObCompactRow *compact_row, const RowMeta *row_meta_); int copy_heap_top_datums_from(ObChunkDatumStore::StoredRow *store_row); // for filter out data @@ -184,6 +197,14 @@ class ObPushDownTopNFilterMsg final : public ObP2PDatahubMsgBase int do_filter_out_data_batch(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, const int64_t batch_size, ObExprTopNFilterContext &filter_ctx); + int do_filter_out_data_vector(const ObExpr &expr, ObEvalCtx &ctx, const ObBitVector &skip, + const EvalBound &bound, ObExprTopNFilterContext &filter_ctx); + + template + int process_multi_columns(int64_t arg_idx, const ObExpr &expr, ObEvalCtx &ctx, uint16_t *selector, + int64_t old_row_selector_cnt, int64_t &new_row_selector_cnt, + int64_t &filter_count); + private: // total sort key count in topn sort operator, total_sk_cnt_ >= heap_top_datums_.count() int64_t total_sk_cnt_; diff --git a/src/sql/engine/subquery/ob_subplan_filter_op.cpp b/src/sql/engine/subquery/ob_subplan_filter_op.cpp index 369b34224..ba4e3fd9a 100644 --- a/src/sql/engine/subquery/ob_subplan_filter_op.cpp +++ b/src/sql/engine/subquery/ob_subplan_filter_op.cpp @@ -112,6 +112,8 @@ int ObSubQueryIterator::get_next_row_vecrorizely() if (NULL == iter_brs_) { if (OB_FAIL(op_.get_next_batch(max_row_cnt, iter_brs_))) { LOG_WARN("get next batch failed", K(ret)); + } else if (OB_FAIL(cast_vector_format())) { + LOG_WARN("failed to cast vector format", K(ret)); } else if (OB_FAIL(brs_holder_.save(1))) { LOG_WARN("backup datumss[0] failed", K(ret)); } @@ -134,6 +136,8 @@ int ObSubQueryIterator::get_next_row_vecrorizely() brs_holder_.restore(); if (OB_FAIL(op_.get_next_batch(max_row_cnt, iter_brs_))) { LOG_WARN("get next batch failed", K(ret)); + } else if (OB_FAIL(cast_vector_format())) { + LOG_WARN("failed to cast vector format", K(ret)); } else { batch_row_pos_ = 0; if (0 == iter_brs_->size_ && iter_brs_->end_) { @@ -170,6 +174,23 @@ int ObSubQueryIterator::get_next_row_vecrorizely() } +int ObSubQueryIterator::cast_vector_format() +{ + int ret = OB_SUCCESS; + if (OB_ISNULL(iter_brs_) || OB_ISNULL(parent_)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("invalid nullptr found", K(ret), K(iter_brs_), K(parent_)); + } else if (parent_->get_spec().use_rich_format_ && op_.get_spec().use_rich_format_) { + FOREACH_CNT_X(e, op_.get_spec().output_, OB_SUCC(ret)) { + LOG_TRACE("cast to uniform", K(*e)); + if (OB_FAIL((*e)->cast_to_uniform(iter_brs_->size_, eval_ctx_))) { + LOG_WARN("expr evaluate failed", K(ret), KPC(*e), K_(eval_ctx)); + } + } + } + return ret; +} + void ObSubQueryIterator::drain_exch() { op_.drain_exch(); diff --git a/src/sql/engine/subquery/ob_subplan_filter_op.h b/src/sql/engine/subquery/ob_subplan_filter_op.h index 7aba13fc9..096abe65a 100644 --- a/src/sql/engine/subquery/ob_subplan_filter_op.h +++ b/src/sql/engine/subquery/ob_subplan_filter_op.h @@ -120,6 +120,7 @@ class ObSubQueryIterator int get_next_row_from_child(); int get_next_row_vecrorizely(); + int cast_vector_format(); // for das batch spf int alloc_das_batch_store(); // for das batch spf end diff --git a/src/sql/engine/subquery/ob_subplan_filter_vec_op.cpp b/src/sql/engine/subquery/ob_subplan_filter_vec_op.cpp new file mode 100644 index 000000000..962592014 --- /dev/null +++ b/src/sql/engine/subquery/ob_subplan_filter_vec_op.cpp @@ -0,0 +1,374 @@ +/* + * Copyright (c) 2025 OceanBase. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#define USING_LOG_PREFIX SQL_ENG + +#include "ob_subplan_filter_vec_op.h" +#include "sql/engine/ob_physical_plan.h" +#include "sql/engine/ob_exec_context.h" + +namespace oceanbase +{ +using namespace common; +namespace sql +{ +ObSubPlanFilterVecSpec::ObSubPlanFilterVecSpec(ObIAllocator &alloc, const ObPhyOperatorType type) + : ObSubPlanFilterSpec(alloc, type) +{ +} + +OB_SERIALIZE_MEMBER((ObSubPlanFilterVecSpec, ObSubPlanFilterSpec)); + +DEF_TO_STRING(ObSubPlanFilterVecSpec) +{ + int64_t pos = 0; + J_OBJ_START(); + J_NAME("op_spec"); + J_COLON(); + pos += ObOpSpec::to_string(buf + pos, buf_len - pos); + J_COMMA(); + J_KV(K_(rescan_params), + K_(onetime_exprs), + K_(init_plan_idxs), + K_(one_time_idxs), + K_(update_set)); + J_OBJ_END(); + return pos; +} + + +ObSubPlanFilterVecOp::ObSubPlanFilterVecOp( + ObExecContext &exec_ctx, const ObOpSpec &spec, ObOpInput *input) + : ObSubPlanFilterOp(exec_ctx, spec, input), + drive_iter_() +{ +} + + +ObSubPlanFilterVecOp::~ObSubPlanFilterVecOp() +{ + destroy_subplan_iters(); + drive_iter_.reset(); +} + +void ObSubPlanFilterVecOp::destroy_subplan_iters() +{ + FOREACH_CNT(it, subplan_iters_) { + if (NULL != *it) { + (*it)->~Iterator(); + *it = NULL; + } + } + subplan_iters_.reset(); +} + +void ObSubPlanFilterVecOp::destroy() +{ + destroy_subplan_iters(); + drive_iter_.reset(); + // vectorization not supported update set, no need destroy update set memory + // destroy_update_set_mem(); + ObOperator::destroy(); +} + +int ObSubPlanFilterVecOp::rescan() +{ + int ret = OB_SUCCESS; + brs_.end_ = false; + iter_end_ = false; + clear_evaluated_flag(); + set_param_null(); + if (OB_FAIL(ObOperator::inner_rescan())) { + LOG_WARN("failed to inner rescan", K(ret)); + } + drive_iter_.reset(); + + if (!MY_SPEC.enable_das_group_rescan_) { + // call each child's rescan when not batch rescan + for (int32_t i = 1; OB_SUCC(ret) && i < child_cnt_; ++i) { + if (OB_FAIL(children_[i]->rescan())) { + LOG_WARN("rescan child operator failed", K(ret), + "op", op_name(), "child", children_[i]->op_name()); + } + } + } else { + for (int32_t i = 1; OB_SUCC(ret) && i < child_cnt_; ++i) { + if (MY_SPEC.init_plan_idxs_.has_member(i) || MY_SPEC.one_time_idxs_.has_member(i)) { + // rescan for init plan and onetime expr when batch rescan + if (OB_FAIL(children_[i]->rescan())) { + LOG_WARN("rescan child operator failed", K(ret), + "op", op_name(), "child", children_[i]->op_name()); + } + } + } + } + + for (int32_t i = 1; OB_SUCC(ret) && i < child_cnt_; ++i) { + Iterator *iter = subplan_iters_.at(i - 1); + if (OB_ISNULL(iter)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("subplan_iter is null", K(ret)); + } else if (MY_SPEC.init_plan_idxs_.has_member(i)) { + iter->reuse(); + if (OB_FAIL(iter->prepare_init_plan())) { + LOG_WARN("prepare init plan failed", K(ret), K(i)); + } + } else if (OB_FAIL(iter->reset_hash_map())) { + LOG_WARN("failed to reset hash map", K(ret), K(i)); + } + } + + if (OB_SUCC(ret)) { + if (OB_FAIL(prepare_onetime_exprs())) { + LOG_WARN("prepare onetime exprs failed", K(ret)); + } else if (OB_FAIL(drive_iter_.rescan_left())) { // use drive_iter_ to rescan drive child operator of SPF + LOG_WARN("failed to do rescan", K(ret)); + } else { + startup_passed_ = spec_.startup_filters_.empty(); + } + } + need_init_before_get_row_ = false; +#ifndef NDEBUG + OX(OB_ASSERT(false == brs_.end_)); +#endif + + return ret; +} + +int ObSubPlanFilterVecOp::switch_iterator() +{ + int ret = OB_SUCCESS; + if (OB_FAIL(ObOperator::inner_switch_iterator())) { + LOG_WARN("failed to inner switch iterator", K(ret)); + } else if (OB_FAIL(child_->switch_iterator())) { + //TODO: Currently only supports multi-group iterator switch for non-correlated subqueries, only switches the main table + if (OB_ITER_END != ret) { + LOG_WARN("switch child operator iterator failed", K(ret)); + } + } + +#ifndef NDEBUG + OX(OB_ASSERT(false == brs_.end_)); +#endif + + return ret; +} + +int ObSubPlanFilterVecOp::init_subplan_iters() +{ + int ret = OB_SUCCESS; + CK(child_cnt_ >= 2); + CK(child_cnt_ - 1 == MY_SPEC.exec_param_array_.count()); + LOG_TRACE("init subplan iters in ObSubPlanFilterVecOp", K(child_cnt_)); + if (OB_SUCC(ret)) { + OZ(subplan_iters_.prepare_allocate(child_cnt_ - 1)); + for (int32_t i = 1; OB_SUCC(ret) && i < child_cnt_; ++i) { + void *ptr = ctx_.get_allocator().alloc(sizeof(Iterator)); + Iterator *&iter = subplan_iters_.at(i - 1); + if (OB_ISNULL(ptr)) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_ERROR("alloc subplan iterator failed", K(ret), "size", sizeof(Iterator)); + } else { + iter = new(ptr) Iterator(*children_[i]); + iter->set_iter_id(i); + iter->set_parent(this); + if (MY_SPEC.init_plan_idxs_.has_member(i)) { + iter->set_init_plan(); + //init plan move to get_next_rowafter + } else if (MY_SPEC.one_time_idxs_.has_member(i)) { + iter->set_onetime_plan(); + } else if (!MY_SPEC.enable_px_batch_rescans_.empty() && + MY_SPEC.enable_px_batch_rescans_.at(i)) { + // enable_left_px_batch_ = true; + } + if (!MY_SPEC.enable_subquery_result_cache_) { + // Non-deterministic subqueries bypass the parameter-result cache. + } else if (OB_FAIL(iter->init_mem_entity())) { + LOG_WARN("failed to init mem_entity", K(ret)); + } else if (MY_SPEC.exec_param_array_[i - 1].count() > 0) { + //min of buckets is 16, + //max will not exceed card of left_child and HASH_MAP_MEMORY_LIMIT/ObObj + if (OB_FAIL(iter->init_hashmap(max( + 16/*hard code*/, min(get_child(0)->get_spec().get_rows(), + iter->HASH_MAP_MEMORY_LIMIT / static_cast(sizeof(ObDatum))))))) { + LOG_WARN("failed to init hash map for idx", K(i), K(ret)); + } else if (OB_FAIL(iter->init_probe_row(MY_SPEC.exec_param_array_[i - 1].count()))) { + LOG_WARN("failed to init probe row", K(ret)); + } + } + if (OB_SUCC(ret)) { + if (children_[i]->is_vectorized() && OB_FAIL(iter->init_batch_rows_holder(children_[i]->get_spec().output_, children_[i]->get_eval_ctx()))) { + LOG_WARN("failed to init batch rows holder", K(ret)); + } + } + } + } + } + return ret; +} + +int ObSubPlanFilterVecOp::inner_open() +{ + int ret = OB_SUCCESS; + max_group_size_ = OB_MAX_BULK_JOIN_ROWS; + LOG_TRACE("max group size of SPF is", K(max_group_size_)); + if (OB_FAIL(drive_iter_.init(this, + max_group_size_, + &MY_SPEC.rescan_params_, + MY_SPEC.enable_das_group_rescan_, + false + ))) { + LOG_WARN("failed to init drive iterator for SPF", KR(ret)); + } else if (OB_FAIL(init_subplan_iters())) { + LOG_WARN("failed to init sub plan iters for SPF", K(ret)); + } + return ret; +} + +int ObSubPlanFilterVecOp::inner_close() +{ + destroy_subplan_iters(); + // destroy_update_set_mem(); + drive_iter_.reset(); + return OB_SUCCESS; +} + + + +int ObSubPlanFilterVecOp::inner_get_next_batch(const int64_t max_row_cnt) +{ + int ret = OB_SUCCESS; + int64_t op_max_batch_size = min(max_row_cnt, MY_SPEC.max_batch_size_); + int64_t params_size = 0; + if (iter_end_) { + brs_.size_ = 0; + brs_.end_ = true; + } else if (need_init_before_get_row_) { + OZ(prepare_onetime_exprs()); + } + + clear_evaluated_flag(); + DASGroupScanMarkGuard mark_guard(ctx_.get_das_ctx(), MY_SPEC.enable_das_group_rescan_); + while (OB_SUCC(ret) && !iter_end_) { + const ObBatchRows *child_brs = NULL; + set_param_null(); + if (OB_FAIL(drive_iter_.get_next_left_batch(op_max_batch_size, child_brs))) { + LOG_WARN("fail to get next batch", K(ret)); + } else if (child_brs->end_) { + iter_end_ = true; + } + LOG_TRACE("child_brs size", K(child_brs->size_), K(spec_.id_)); + ObEvalCtx::BatchInfoScopeGuard guard(eval_ctx_); + guard.set_batch_size(child_brs->size_); + brs_.size_ = child_brs->size_; + bool all_filtered = true; + brs_.skip_->deep_copy(*child_brs->skip_, child_brs->size_); + clear_evaluated_flag(); + + for (int64_t l_idx = 0; OB_SUCC(ret) && l_idx < child_brs->size_ && !iter_end_; l_idx++) { + if (child_brs->skip_->exist(l_idx)) { continue; } + guard.set_batch_idx(l_idx); + if (OB_FAIL(drive_iter_.fill_cur_row_group_param())) { + LOG_WARN("prepare rescan params failed", K(ret)); + } else { + if (need_init_before_get_row_) { + for (int32_t i = 1; OB_SUCC(ret) && i < child_cnt_; ++i) { + Iterator *&iter = subplan_iters_.at(i - 1); + if (MY_SPEC.init_plan_idxs_.has_member(i)) { + OZ(iter->prepare_init_plan()); + } + } + need_init_before_get_row_ = false; + } + } + if (OB_SUCC(ret)) { + bool filtered = false; + if (OB_FAIL(filter_row_vector(eval_ctx_, MY_SPEC.filter_exprs_, *(child_brs->skip_), filtered))) { + LOG_WARN("fail to filter row", K(ret), K(l_idx), K(spec_.id_)); + } else if (filtered) { + brs_.skip_->set(l_idx); + LOG_TRACE("left rows is filterd", K(l_idx), K(spec_.id_)); + } else { + LOG_TRACE("left rows is not filterd", K(l_idx), K(spec_.id_)); + all_filtered = false; + // ObDatum *datum = NULL; + EvalBound eval_bound(eval_ctx_.get_batch_size(), l_idx, l_idx + 1, false); + FOREACH_CNT_X(e, spec_.output_, OB_SUCC(ret)) { + if (OB_FAIL((*e)->eval_vector(eval_ctx_, *(child_brs->skip_), eval_bound))) { + LOG_WARN("expr evaluate failed", K(ret), K(*e)); + } + } + } + } + } // for end + + if (OB_SUCC(ret) && all_filtered) { + reset_batchrows(); + continue; + } + FOREACH_CNT_X(e, spec_.output_, OB_SUCC(ret)) { + (*e)->get_eval_info(eval_ctx_).projected_ = true; + } + break; + } // end while + + if (OB_SUCC(ret) && iter_end_) { + set_param_null(); + } + return ret; +} + +int ObSubPlanFilterVecOp::prepare_onetime_exprs() +{ + int ret = OB_SUCCESS; + if (is_vectorized()) { + ObEvalCtx::BatchInfoScopeGuard guard(eval_ctx_); + guard.set_batch_size(MY_SPEC.max_batch_size_); + ret = prepare_onetime_exprs_inner(); + } else { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("SPF operator is not vectorized", K(ret)); + } + + for (int64_t i = 1; OB_SUCC(ret) && i < child_cnt_; ++i) { + Iterator *iter = subplan_iters_.at(i - 1); + if (OB_ISNULL(iter)) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("subplan_iter is null", K(ret)); + } else if (MY_SPEC.one_time_idxs_.has_member(i)) { + iter->drain_exch(); + } + } + return ret; +} + +int ObSubPlanFilterVecOp::prepare_onetime_exprs_inner() +{ + int ret = OB_SUCCESS; + ObPhysicalPlanCtx *plan_ctx = GET_PHY_PLAN_CTX(ctx_); + for (int64_t i = 0; OB_SUCC(ret) && i < MY_SPEC.onetime_exprs_.count(); ++i) { + char mock_skip_data[1] = {0}; + sql::ObBitVector &skip = *sql::to_bit_vector(mock_skip_data); + const ObDynamicParamSetter &setter = MY_SPEC.onetime_exprs_.at(i); + if (OB_FAIL(setter.set_dynamic_param_vec2(eval_ctx_, skip))) { + LOG_WARN("failed to prepare onetime expr", K(ret), K(i)); + } + } + return ret; +} + +} // end sql +} // oceanbase diff --git a/src/sql/engine/table/ob_table_scan_op.cpp b/src/sql/engine/table/ob_table_scan_op.cpp index 6cb380ae2..c569746c1 100644 --- a/src/sql/engine/table/ob_table_scan_op.cpp +++ b/src/sql/engine/table/ob_table_scan_op.cpp @@ -18,7 +18,6 @@ #include "ob_table_scan_op.h" -#include "common/json_type/ob_json_bin.h" #include "share/rc/ob_module_provider.h" #include "sql/das/ob_das_attach_define.h" #include "sql/das/ob_das_vec_define.h" @@ -2729,6 +2728,9 @@ int ObTableScanOp::construct_partition_range(ObArenaAllocator &allocator, end_row_key[i] = scan_range.end_key_.get_obj_ptr()[pos]; sql::ObExpr *expr = part_dep_cols.at(i); sql::ObDatum &datum = expr->locate_datum_for_write(eval_ctx_); + if (get_spec().use_rich_format_) { + expr->init_vector_for_write(eval_ctx_, VEC_UNIFORM, 1); + } if (OB_FAIL(datum.from_obj(start_row_key[i], expr->obj_datum_map_))) { LOG_WARN("convert obj to datum failed", K(ret)); } else if (is_lob_storage(start_row_key[i].get_type()) && diff --git a/src/sql/ob_spi.cpp b/src/sql/ob_spi.cpp index 28109fa1f..f921d69a1 100644 --- a/src/sql/ob_spi.cpp +++ b/src/sql/ob_spi.cpp @@ -26,6 +26,7 @@ #include "sql/engine/expr/ob_expr_pl_integer_checker.h" #include "sql/engine/expr/ob_expr_lob_utils.h" #include "pl/ob_pl_package.h" +#include "share/schema/ob_trigger_info.h" #include "sql/engine/expr/ob_expr_obj_access.h" #include "pl/ob_pl_exception_handling.h" @@ -2016,7 +2017,20 @@ int ObSPIService::spi_parse_prepare(common::ObIAllocator &allocator, } else if (OB_FAIL(ob_write_string(allocator, ObString(parse_result.no_param_sql_len_, parse_result.no_param_sql_), prepare_result.route_sql_))) { LOG_WARN("failed to write string", K(sql), K(ret)); } else { +#ifdef __APPLE__ + // Pass secondary_namespace for trigger packages so that SQL in trigger body + // is fully resolved at compile time, catching references to dropped columns + // early instead of crashing at runtime. For non-trigger PL, keep using simple + // PS protocol (NULL) to allow deferred resolution of dynamic SQL constructs. + pl::ObPLBlockNS *ns_for_prepare = NULL; + if (OB_NOT_NULL(secondary_namespace) + && ObTriggerInfo::is_trigger_package_id(secondary_namespace->get_package_id())) { + ns_for_prepare = secondary_namespace; + } + PLPrepareCtx pl_prepare_ctx(session, ns_for_prepare, false, false, false); +#else PLPrepareCtx pl_prepare_ctx(session, NULL, false, false, false); +#endif SMART_VAR(PLPrepareResult, pl_prepare_result) { CK (OB_NOT_NULL(GCTX.sql_engine_)); OZ (pl_prepare_result.init(session)); @@ -4679,6 +4693,7 @@ int ObSPIService::spi_interface_impl(pl::ObPLExecCtx *ctx, const char *interface ret = OB_ERR_UNEXPECTED; LOG_WARN("Invalid context", K(ctx->exec_ctx_), K(ctx->params_), K(ctx->result_)); } else { + ctx->exec_ctx_->get_my_session()->init_use_rich_format(); ObString name(interface_name); PL_C_INTERFACE_t fp = GCTX.pl_engine_->get_interface_service().get_entry(name); if (nullptr != fp) { diff --git a/src/sql/ob_sql.cpp b/src/sql/ob_sql.cpp index 3db441d83..170f29310 100644 --- a/src/sql/ob_sql.cpp +++ b/src/sql/ob_sql.cpp @@ -2418,7 +2418,11 @@ int ObSql::generate_stmt(ParseResult &parse_result, LOG_DEBUG("got all const param constraints", K(resolver_ctx.query_ctx_->all_possible_const_param_constraints_)); NG_TRACE(resolve_end); if (OB_SUCC(ret)) { + // move init datum param store here + // if `opt_param("enable_rich_vector_format", "false")` is used in hints, use_rich_format will + // be off, we need reset value in pctx and initialize param frame accordingly. if (NULL != pc_ctx && NULL != pc_ctx->exec_ctx_.get_physical_plan_ctx()) { + pc_ctx->exec_ctx_.get_physical_plan_ctx()->set_rich_format(context.session_info_->use_rich_format()); if (OB_FAIL(pc_ctx->exec_ctx_.get_physical_plan_ctx()->init_datum_param_store())) { LOG_WARN("init datum param store failed", K(ret)); } @@ -2669,6 +2673,7 @@ int ObSql::generate_plan(ParseResult &parse_result, ret = OB_ALLOCATE_MEMORY_FAILED; LOG_ERROR("Failed to alloc physical plan from tc factory", K(ret)); } else { + phy_plan->set_use_rich_format(sql_ctx.session_info_->use_rich_format()); if (NULL != pc_ctx) { pc_ctx->should_add_plan_ = true; } @@ -3267,6 +3272,8 @@ OB_INLINE int ObSql::init_exec_context(const ObSqlCtx &context, ObExecContext &e context.session_info_->get_query_timeout(query_timeout); exec_ctx.get_physical_plan_ctx()->set_timeout_timestamp( context.session_info_->get_query_start_time() + query_timeout); + exec_ctx.get_physical_plan_ctx()->set_rich_format( + context.session_info_->use_rich_format()); exec_ctx.set_retry_info(&context.session_info_->get_retry_info()); } } diff --git a/src/sql/ob_sql_utils.cpp b/src/sql/ob_sql_utils.cpp index c646b7170..06af68221 100644 --- a/src/sql/ob_sql_utils.cpp +++ b/src/sql/ob_sql_utils.cpp @@ -534,6 +534,7 @@ int ObSQLUtils::se_calc_const_expr(ObSQLSessionInfo *session, && out_ctx->get_physical_plan_ctx() != NULL && (¶ms == &out_ctx->get_physical_plan_ctx()->get_param_store())); if (!use_tmp_phy_plan_ctx && !out_ctx->get_physical_plan_ctx()->is_param_datum_frame_inited()) { + out_ctx->get_physical_plan_ctx()->set_rich_format(session->use_rich_format()); if (OB_FAIL(out_ctx->get_physical_plan_ctx()->init_datum_param_store())) { LOG_WARN("init datum param store failed", K(ret)); } @@ -549,6 +550,7 @@ int ObSQLUtils::se_calc_const_expr(ObSQLSessionInfo *session, phy_plan_ctx = out_ctx->get_physical_plan_ctx(); } else { phy_plan_ctx = &tmp_phy_plan_ctx; + phy_plan_ctx->set_rich_format(session->use_rich_format()); for (int i = 0; OB_SUCC(ret) && i < params.count(); i++) { if (OB_FAIL(phy_plan_ctx->get_param_store_for_update().push_back(params.at(i)))) { LOG_WARN("failed to push back element", K(ret)); diff --git a/src/sql/optimizer/ob_join_order.cpp b/src/sql/optimizer/ob_join_order.cpp index e84e3943f..b454e5ed7 100644 --- a/src/sql/optimizer/ob_join_order.cpp +++ b/src/sql/optimizer/ob_join_order.cpp @@ -19011,6 +19011,7 @@ int ObJoinOrder::estimate_fts_index_scan(uint64_t table_id, tmp_exec_ctx.set_sql_ctx(OPT_CTX.get_exec_ctx()->get_sql_ctx()); tmp_plan_ctx.set_timeout_timestamp(plan_ctx->get_timeout_timestamp()); tmp_plan_ctx.set_cur_time(cur_time, *OPT_CTX.get_session_info()); + tmp_plan_ctx.set_rich_format(OPT_CTX.get_session_info()->use_rich_format()); if (FAILEDx(tmp_plan_ctx.get_param_store_for_update().assign(plan_ctx->get_param_store()))) { LOG_WARN("failed to assign phy plan ctx"); } else if (OB_FAIL(tmp_plan_ctx.init_datum_param_store())) { diff --git a/src/sql/optimizer/ob_log_exchange.cpp b/src/sql/optimizer/ob_log_exchange.cpp index 22d42926b..aecdc4830 100644 --- a/src/sql/optimizer/ob_log_exchange.cpp +++ b/src/sql/optimizer/ob_log_exchange.cpp @@ -379,7 +379,7 @@ int ObLogExchange::compute_op_ordering() return ret; } -int ObLogExchange::compute_op_parallel_and_server_info() +int ObLogExchange::compute_op_parallel_info() { int ret = OB_SUCCESS; ObLogicalOperator* child = NULL; @@ -387,38 +387,16 @@ int ObLogExchange::compute_op_parallel_and_server_info() ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexpected null", K(ret), K(get_plan()), K(child)); } else if (is_producer()) { - if (OB_FAIL(ObLogicalOperator::compute_op_parallel_and_server_info())) { + if (OB_FAIL(ObLogicalOperator::compute_op_parallel_info())) { LOG_WARN("failed to compute sharding info for producer exchange", K(ret)); } else { /*do nothing*/ } } else if (is_pq_local()) { set_parallel(ObGlobalHint::DEFAULT_PARALLEL); set_available_parallel(child->get_available_parallel()); - set_server_cnt(1); - static_cast(child)->set_in_server_cnt(1); - get_server_list().reuse(); - if (OB_FAIL(get_server_list().push_back(get_plan()->get_optimizer_context().get_local_server_addr()))) { - LOG_WARN("failed to push back server list", K(ret)); - } } else { - // set_exchange_info not set these info, use child parallel and server info. - if (OB_FAIL(ret)) { - } else if ((is_pq_hash_dist() && !is_slave_mapping()) || is_pq_random()) { - server_list_.reuse(); - common::ObAddr all_server_list; - all_server_list.set_max(); // a special ALL server list indicating hash data distribution - if (OB_FAIL(server_list_.push_back(all_server_list))) { - LOG_WARN("failed to assign all server list", K(ret)); - } - } else if (get_server_list().empty() && OB_FAIL(get_server_list().assign(child->get_server_list()))) { - LOG_WARN("failed to assign server list", K(ret)); - } - if (OB_FAIL(ret)) { - } else if (0 == get_server_cnt()) { - set_server_cnt(child->get_server_cnt()); - } else { - static_cast(child)->set_in_server_cnt(get_server_cnt()); - } - if (OB_SUCC(ret) && ObGlobalHint::DEFAULT_PARALLEL > get_parallel()) { + // set_exchange_info may leave the consumer DOP unset; inherit the local + // worker parallelism from the child in that case. + if (ObGlobalHint::DEFAULT_PARALLEL > get_parallel()) { if (child->is_single()) { set_parallel(child->get_available_parallel()); set_available_parallel(child->get_available_parallel()); @@ -491,8 +469,7 @@ int ObLogExchange::inner_est_cost(int64_t parallel, double child_card, double &o ObExchOutCostInfo est_cost_info(child_card, child->get_width(), dist_method_, - parallel, - get_in_server_cnt()); + parallel); if (OB_FAIL(ObOptEstCost::cost_exchange_out(est_cost_info, op_cost, opt_ctx))) { @@ -504,7 +481,6 @@ int ObLogExchange::inner_est_cost(int64_t parallel, double child_card, double &o child->get_width(), dist_method_, parallel, - get_server_cnt(), is_local_order_, sort_keys_); if (OB_FAIL(ObOptEstCost::cost_exchange_in(est_cost_info, @@ -564,7 +540,6 @@ int ObLogExchange::set_exchange_info(const ObExchangeInfo &exch_info) null_row_dist_method_ = exch_info.null_row_dist_method_; slave_mapping_type_ = exch_info.slave_mapping_type_; if (is_producer()) { - in_server_cnt_ = exch_info.server_cnt_; slice_count_ = exch_info.slice_count_; repartition_type_ = exch_info.repartition_type_; repartition_ref_table_id_ = exch_info.repartition_ref_table_id_; @@ -606,8 +581,6 @@ int ObLogExchange::set_exchange_info(const ObExchangeInfo &exch_info) LOG_WARN("failed to assign sort keys", K(ret)); } else if (OB_FAIL(weak_sharding_.assign(exch_info.weak_sharding_))) { LOG_WARN("failed to assign weak sharding", K(ret)); - } else if (OB_FAIL(server_list_.assign(exch_info.server_list_))) { - LOG_WARN("failed to assign server list", K(ret)); } else { if (exch_info.is_wf_hybrid_) { strong_sharding_ = get_plan()->get_optimizer_context().get_distributed_sharding(); @@ -615,7 +588,6 @@ int ObLogExchange::set_exchange_info(const ObExchangeInfo &exch_info) strong_sharding_ = exch_info.strong_sharding_; } parallel_ = exch_info.parallel_; - server_cnt_ = exch_info.server_cnt_; is_task_order_ = exch_info.is_task_order_; is_merge_sort_ = exch_info.is_merge_sort_; is_sort_local_order_ = exch_info.is_sort_local_order_; diff --git a/src/sql/optimizer/ob_log_exchange.h b/src/sql/optimizer/ob_log_exchange.h index b665d7396..b34b1e421 100644 --- a/src/sql/optimizer/ob_log_exchange.h +++ b/src/sql/optimizer/ob_log_exchange.h @@ -188,6 +188,7 @@ class ObLogExchange : public ObLogicalOperator int64_t &pos, ExplainType type, const ObIArray &keys); + bool support_rich_format_vectorize() const; virtual int open_px_resource_analyze(OPEN_PX_RESOURCE_ANALYZE_DECLARE_ARG) override; virtual int close_px_resource_analyze(CLOSE_PX_RESOURCE_ANALYZE_DECLARE_ARG) override; void set_px_info(ObPxResourceAnalyzer::PxInfo *px_info) { px_info_ = px_info; } diff --git a/src/sql/optimizer/ob_log_plan.cpp b/src/sql/optimizer/ob_log_plan.cpp index d64930061..29aa847d1 100644 --- a/src/sql/optimizer/ob_log_plan.cpp +++ b/src/sql/optimizer/ob_log_plan.cpp @@ -2685,8 +2685,6 @@ int ObLogPlan::allocate_access_path(AccessPath *ap, LOG_WARN("failed to set query ranges", K(ret)); } else if (OB_FAIL(scan->set_range_columns(ap->get_cost_table_scan_info().range_columns_))) { LOG_WARN("failed to set range column", K(ret)); - } else if (OB_FAIL(append(scan->get_server_list(), ap->get_server_list()))) { - LOG_WARN("failed to assign server list", K(ret)); } else { // set table name and index name scan->set_table_name(table_item->get_table_name()); scan->set_diverse_path_count(ap->parent_->get_diverse_path_count()); @@ -3006,17 +3004,12 @@ int ObLogPlan::compute_join_exchange_info(JoinPath &join_path, SlaveMappingType sm_type = get_slave_mapping_type(join_path.join_dist_algo_); left_exch_info.dist_method_ = ObPQDistributeMethod::NONE; left_exch_info.parallel_ = join_path.parallel_; - left_exch_info.server_cnt_ = join_path.server_cnt_; right_exch_info.dist_method_ = ObPQDistributeMethod::NONE; right_exch_info.parallel_ = join_path.parallel_; - right_exch_info.server_cnt_ = join_path.server_cnt_; if (OB_ISNULL(join_path.left_path_) || OB_ISNULL(join_path.left_path_->parent_) || OB_ISNULL(join_path.right_path_) || OB_ISNULL(join_path.right_path_->parent_)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexpected null", K(join_path.left_path_), K(join_path.right_path_), K(ret)); - } else if (OB_FAIL(left_exch_info.server_list_.assign(join_path.server_list_)) - || OB_FAIL(right_exch_info.server_list_.assign(join_path.server_list_))) { - LOG_WARN("failed to assign server list", K(ret)); } else if (OB_FAIL(append(equal_sets, join_path.left_path_->parent_->get_output_equal_sets())) || OB_FAIL(append(equal_sets, join_path.right_path_->parent_->get_output_equal_sets()))) { LOG_WARN("failed to append equal sets", K(ret)); @@ -5049,7 +5042,7 @@ int ObLogPlan::get_distribute_group_by_method(ObLogicalOperator *top, is_partition_wise))) { LOG_WARN("failed to check if sharding compatible with distinct expr", K(ret)); } else if (is_partition_wise && - (top->is_parallel_more_than_part_cnt(2) || force_slave_mapping || + (top->is_parallel_more_than_part_cnt(SLAVE_MAPPING_DOP_TO_PARTITION_RATIO) || force_slave_mapping || DistAlgo::DIST_HASH_HASH_LOCAL == group_dist_methods)) { group_dist_methods = DistAlgo::DIST_HASH_HASH_LOCAL; OPT_TRACE("group operator will use hash local method and prune other method"); @@ -5445,7 +5438,6 @@ int ObLogPlan::compute_groupby_dop_by_auto_dop(const ObIArray &group int ret = OB_SUCCESS; dop = ObGlobalHint::UNSET_PARALLEL; bool need_calc_dop = false; - int64_t server_cnt = 0; int64_t calc_dop = ObGlobalHint::UNSET_PARALLEL; int64_t max_child_dop = ObGlobalHint::UNSET_PARALLEL; if (!groupby_helper.can_three_stage_pushdown_ || !rollup_exprs.empty()) { @@ -5460,11 +5452,10 @@ int ObLogPlan::compute_groupby_dop_by_auto_dop(const ObIArray &group LOG_WARN("failed to check candi plan need calc dop", K(ret)); } else if (!need_calc_dop) { /* do nothing */ - } else if (OB_FAIL(get_parallel_info_from_candidate_plans(server_cnt, max_child_dop))) { + } else if (OB_FAIL(get_parallel_info_from_candidate_plans(max_child_dop))) { LOG_WARN("failed to get parallel info from candidate plans", K(ret)); } else if (OB_FAIL(inner_compute_three_stage_groupby_dop_by_auto_dop(group_exprs, groupby_helper, - server_cnt, calc_dop))) { LOG_WARN("failed to inner compute group by dop by auto dop", K(ret)); } else if (max_child_dop < calc_dop) { @@ -5475,7 +5466,6 @@ int ObLogPlan::compute_groupby_dop_by_auto_dop(const ObIArray &group int ObLogPlan::inner_compute_three_stage_groupby_dop_by_auto_dop(const ObIArray &group_exprs, const GroupingOpHelper &groupby_helper, - const int64_t server_cnt, int64_t &dop) const { int ret = OB_SUCCESS; @@ -5496,7 +5486,7 @@ int ObLogPlan::inner_compute_three_stage_groupby_dop_by_auto_dop(const ObIArray< } else { const ObOptimizerContext &opt_ctx = get_optimizer_context(); const double cost_threshold_us = 1000.0 * std::max(static_cast(10), opt_ctx.get_parallel_min_scan_time_threshold()); - const int64_t calc_dop_limit = opt_ctx.get_parallel_degree_limit(server_cnt); + const int64_t calc_dop_limit = opt_ctx.get_parallel_degree_limit(); const double op_cost = ObOptEstCost::cost_hash_group(child->get_card() * number_of_copies, 0, // do not consider grouop by result child->get_width(), @@ -5542,10 +5532,9 @@ int ObLogPlan::get_three_stage_groupby_number_of_copies(const ObIArrayis_single() ? op->get_available_parallel() : op->get_parallel(); dop = std::max(dop, child_parallel); - server_cnt = std::max(server_cnt, op->get_server_cnt()); } } - LOG_DEBUG("finish get parallel info from candidate plans", K(server_cnt), K(dop)); + LOG_DEBUG("finish get parallel info from candidate plans", K(dop)); return ret; } @@ -9538,31 +9526,7 @@ int ObLogPlan::prune_and_keep_best_plans(ObIArray &all_candidate_ int ObLogPlan::remove_match_all_fake_cte_plan(ObIArray &all_candidate_plans, ObIArray &candidate_plans) { - int ret = OB_SUCCESS; - candidate_plans.reuse(); - for (int64_t i = 0; OB_SUCC(ret) && i < all_candidate_plans.count(); i++) { - CandidatePlan &candi_plan = all_candidate_plans.at(i); - if (OB_ISNULL(candi_plan.plan_tree_)) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("get unexpected null", K(ret)); - } else if (candi_plan.plan_tree_->get_type() == LOG_SET && - static_cast(candi_plan.plan_tree_)->is_recursive_union()) { - ObLogicalOperator* right_child = candi_plan.plan_tree_->get_child(ObLogicalOperator::second_child); - if (OB_ISNULL(right_child)) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("get unexpected null", K(ret)); - } else if (right_child->get_contains_match_all_fake_cte()) { - OPT_TRACE("contain match all fake cte, will not add plan"); - } else if (OB_FAIL(candidate_plans.push_back(candi_plan))) { - LOG_WARN("failed to push back", K(ret)); - } - } else if (candi_plan.plan_tree_->get_contains_match_all_fake_cte()) { - OPT_TRACE("contain match all fake cte, will not add plan"); - } else if (OB_FAIL(candidate_plans.push_back(candi_plan))) { - LOG_WARN("failed to push back", K(ret)); - } - } - return ret; + return candidate_plans.assign(all_candidate_plans); } int ObLogPlan::add_candidate_plan(ObIArray ¤t_plans, @@ -10318,10 +10282,7 @@ int ObLogPlan::check_location_need_multi_partition_dml(ObLogicalOperator &top, } else if (OB_ISNULL(source_sharding) || OB_ISNULL(source_table_part)) { is_multi_part_dml = true; is_result_local = true; - } else if (OB_FAIL(source_table_part->get_location_type( - get_optimizer_context().get_local_server_addr(), - source_loc_type))) { - LOG_WARN("failed get location type", K(ret)); + } else if (FALSE_IT(source_loc_type = source_table_part->get_location_type())) { } else if (source_sharding->is_match_all() || OB_TBL_LOCATION_ALL == source_loc_type) { is_multi_part_dml = true; is_result_local = true; @@ -12712,11 +12673,8 @@ int ObLogPlan::compute_subplan_filter_repartition_distribution_info(ObLogicalOpe *right_child, exch_info))) { LOG_WARN("failed to compute repartition distribution info", K(ret)); - } else if (OB_FAIL(exch_info.server_list_.assign(max_parallel_child->get_server_list()))) { - LOG_WARN("failed to assign server list", K(ret)); } else { exch_info.parallel_ = max_parallel_child->get_parallel(); - exch_info.server_cnt_ = max_parallel_child->get_server_cnt(); exch_info.unmatch_row_dist_method_ = ObPQDistributeMethod::DROP; LOG_TRACE("succeed to compute repartition distribution info", K(exch_info)); } diff --git a/src/sql/optimizer/ob_log_plan.h b/src/sql/optimizer/ob_log_plan.h index 5181c4f05..044a6c915 100644 --- a/src/sql/optimizer/ob_log_plan.h +++ b/src/sql/optimizer/ob_log_plan.h @@ -1788,6 +1788,7 @@ class ObLogPlan int do_alloc_values_table_path(ValuesTablePath *values_table_path, ObLogValuesTableAccess *&out_access_path_op); inline ObRawExprReplacer &gen_col_replacer() { return gen_col_replacer_; } + int get_enable_rich_vector_format(bool &enable); private: static const int64_t IDP_PATHNUM_THRESHOLD = 5000; protected: // member variable diff --git a/src/sql/optimizer/ob_logical_operator.cpp b/src/sql/optimizer/ob_logical_operator.cpp index 43db4d3cd..031182250 100644 --- a/src/sql/optimizer/ob_logical_operator.cpp +++ b/src/sql/optimizer/ob_logical_operator.cpp @@ -167,8 +167,6 @@ int ObExchangeInfo::assign(const ObExchangeInfo &other) LOG_WARN("failed to assign hybrid phy exprs cnt array", K(ret)); } else if (OB_FAIL(repart_all_tablet_ids_.assign(other.repart_all_tablet_ids_))) { LOG_WARN("failed to assign partition ids", K(ret)); - } else if (OB_FAIL(server_list_.assign(other.server_list_))) { - LOG_WARN("failed to assign server list", K(ret)); } else { is_task_order_ = other.is_task_order_; is_merge_sort_ = other.is_merge_sort_; @@ -190,7 +188,6 @@ int ObExchangeInfo::assign(const ObExchangeInfo &other) may_add_interval_part_ = other.may_add_interval_part_; sample_type_ = other.sample_type_; parallel_ = other.parallel_; - server_cnt_ = other.server_cnt_; } return ret; } @@ -402,7 +399,6 @@ ObLogicalOperator::ObLogicalOperator(ObLogPlan &plan) contain_fake_cte_(false), contain_pw_merge_op_(false), contain_das_op_(false), - contain_match_all_fake_cte_(false), strong_sharding_(NULL), weak_sharding_(), is_pipelined_plan_(false), @@ -418,7 +414,6 @@ ObLogicalOperator::ObLogicalOperator(ObLogPlan &plan) parallel_(ObGlobalHint::UNSET_PARALLEL), op_parallel_rule_(OpParallelRule::OP_DOP_RULE_MAX), available_parallel_(ObGlobalHint::DEFAULT_PARALLEL), - server_cnt_(1), need_late_materialization_(false), op_exprs_(), inherit_sharding_index_(-1), @@ -481,11 +476,6 @@ double FilterCompare::get_selectivity(ObRawExpr *expr) { bool found = false; double selectivity = 1; - if (OB_NOT_NULL(expr) && T_FUN_LABEL_SE_LABEL_VALUE_CMP_LE == expr->get_expr_type()) { - // security filter should be calc firstly - found = true; - selectivity = -1.0; - } for (int64_t i = 0; !found && i < predicate_selectivities_.count(); i++) { if (predicate_selectivities_.at(i).expr_ == expr) { found = true; @@ -698,7 +688,7 @@ int ObLogicalOperator::compute_op_interesting_order_info() return ret; } -int ObLogicalOperator::compute_op_parallel_and_server_info() +int ObLogicalOperator::compute_op_parallel_info() { int ret = OB_SUCCESS; ObLogicalOperator* child = NULL; @@ -710,23 +700,19 @@ int ObLogicalOperator::compute_op_parallel_and_server_info() } else if (OB_ISNULL(child = get_child(first_child))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpect null child", K(ret), K(child)); - } else if (OB_FAIL(get_server_list().assign(child->get_server_list()))) { - LOG_WARN("failed to assign server list", K(ret)); } else { set_parallel(child->get_parallel()); set_available_parallel(child->get_available_parallel()); - set_server_cnt(child->get_server_cnt()); } return ret; } -int ObLogicalOperator::compute_normal_multi_child_parallel_and_server_info() +int ObLogicalOperator::compute_normal_multi_child_parallel_info() { int ret = OB_SUCCESS; const ObLogicalOperator *max_parallel_child = NULL; bool max_parallel_from_exch = false; - ObPQDistributeMethod::Type child_distribute_method_type = ObPQDistributeMethod::NONE; int64_t max_available_parallel = ObGlobalHint::DEFAULT_PARALLEL; const ObLogicalOperator *child = NULL; for (int64_t i = 0; OB_SUCC(ret) && i < get_num_of_child(); ++i) { @@ -753,31 +739,19 @@ int ObLogicalOperator::compute_normal_multi_child_parallel_and_server_info() } else if (OB_ISNULL(max_parallel_child)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null ", K(ret), K(max_parallel_child)); - } else if (OB_FAIL(get_server_list().assign(max_parallel_child->get_server_list()))) { - LOG_WARN("failed to assign server list", K(ret)); } else { set_parallel(max_parallel_child->get_parallel()); set_available_parallel(max_available_parallel); - set_server_cnt(max_parallel_child->get_server_cnt()); } return ret; } -int ObLogicalOperator::set_parallel_and_server_info_for_match_all() +int ObLogicalOperator::set_parallel_info_for_match_all() { int ret = OB_SUCCESS; - get_server_list().reuse(); - if (OB_ISNULL(get_plan())) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("get unexpected null", K(ret), K(get_plan())); - } else if (OB_FAIL(get_server_list().push_back(get_plan()->get_optimizer_context().get_local_server_addr()))) { - LOG_WARN("failed to push back server list", K(ret)); - } else { - set_parallel(ObGlobalHint::DEFAULT_PARALLEL); - set_available_parallel(ObGlobalHint::DEFAULT_PARALLEL); - set_op_parallel_rule(OpParallelRule::OP_DAS_DOP); - set_server_cnt(1); - } + set_parallel(ObGlobalHint::DEFAULT_PARALLEL); + set_available_parallel(ObGlobalHint::DEFAULT_PARALLEL); + set_op_parallel_rule(OpParallelRule::OP_DAS_DOP); return ret; } @@ -926,23 +900,6 @@ int ObLogicalOperator::compute_op_other_info() } } - // compute contains fake cte match all sharding - if (OB_SUCC(ret)) { - if (get_type() == log_op_def::ObLogOpType::LOG_SET && - static_cast(this)->is_recursive_union()) { - /*do nothing*/ - } else { - for (int64_t i = 0; OB_SUCC(ret) && !contain_match_all_fake_cte_ && i < get_num_of_child(); i++) { - if (OB_ISNULL(get_child(i))) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("get unexpected null", K(ret)); - } else { - contain_match_all_fake_cte_ |= get_child(i)->get_contains_match_all_fake_cte(); - } - } - } - } - // compute contains merge style op if (OB_SUCC(ret)) { for (int64_t i = 0; OB_SUCC(ret) && !contain_pw_merge_op_ && i < get_num_of_child(); i++) { @@ -1042,7 +999,6 @@ int ObLogicalOperator::compute_property(Path *path) set_location_type(path->location_type_); set_contains_fake_cte(path->contain_fake_cte_); set_contains_pw_merge_op(path->contain_pw_merge_op_); - set_contains_match_all_fake_cte(path->contain_match_all_fake_cte_); set_contains_das_op(path->contain_das_op_); is_pipelined_plan_ = path->is_pipelined_path(); is_nl_style_pipelined_plan_ = path->is_nl_style_pipelined_path(); @@ -1057,12 +1013,9 @@ int ObLogicalOperator::compute_property(Path *path) set_is_range_order(path->is_range_order_); set_parallel(path->parallel_); set_op_parallel_rule(path->op_parallel_rule_); - set_available_parallel(path->available_parallel_), - set_server_cnt(path->server_cnt_); + set_available_parallel(path->available_parallel_); set_inherit_sharding_index(path->inherit_sharding_index_); - if (OB_FAIL(server_list_.assign(path->server_list_))) { - LOG_WARN("failed to assign path's server list to op", K(ret)); - } else if (OB_FAIL(ambient_card_.assign(path->parent_->get_ambient_card()))) { + if (OB_FAIL(ambient_card_.assign(path->parent_->get_ambient_card()))) { LOG_WARN("failed to assign ambient cards", K(ret)); } else if (OB_FAIL(check_property_valid())) { LOG_WARN("failed to check property valid", K(ret), KPC(path)); @@ -1281,8 +1234,8 @@ int ObLogicalOperator::compute_property() LOG_WARN("failed to compute op ordering", K(ret)); } else if (OB_FAIL(compute_op_interesting_order_info())) { LOG_WARN("failed to compute op ordering match info", K(ret)); - } else if (OB_FAIL(compute_op_parallel_and_server_info())) { - LOG_WARN("failed to compute op server info", K(ret)); + } else if (OB_FAIL(compute_op_parallel_info())) { + LOG_WARN("failed to compute op parallel info", K(ret)); } else if (OB_FAIL(est_width())) { LOG_WARN("failed to compute width", K(ret)); } else if (OB_FAIL(est_cost())) { @@ -1354,11 +1307,9 @@ int ObLogicalOperator::inner_est_ambient_card_by_child(int64_t child_idx) int ObLogicalOperator::check_property_valid() const { int ret = OB_SUCCESS; - if (OB_UNLIKELY(ObGlobalHint::DEFAULT_PARALLEL > get_parallel() - || get_server_cnt() < 1)) { + if (OB_UNLIKELY(ObGlobalHint::DEFAULT_PARALLEL > get_parallel())) { ret = OB_ERR_UNEXPECTED; - LOG_WARN("has invalid parallel or server info", K(ret), K(get_parallel()), - K(get_server_list()), K(get_server_cnt())); + LOG_WARN("has invalid parallel info", K(ret), K(get_parallel())); } return ret; } @@ -3710,7 +3661,7 @@ int ObLogicalOperator::explain_print_partitions(ObTablePartitionInfo &table_part ObLogicalOperator::PartInfo part_info; const ObOptTabletLoc &part_loc = partitions.at(i).get_partition_location(); if (is_virtual_table(ref_table_id)) { - if (VirtualSvrPair::EMPTY_VIRTUAL_TABLE_TABLET_ID == part_loc.get_partition_id()) { + if (EMPTY_VIRTUAL_TABLE_TABLET_ID == part_loc.get_partition_id()) { } else { part_info.part_id_ = part_loc.get_partition_id(); @@ -6387,33 +6338,6 @@ int ObLogicalOperator::check_op_orderding_used_by_parent(bool &used) return ret; } -int ObLogicalOperator::check_contain_dist_das(const ObIArray &exec_server_list, - bool &contain_dist_das) const -{ - int ret = OB_SUCCESS; - contain_dist_das = false; - if (!get_contains_das_op()) { - contain_dist_das = false; - } else if (LOG_TABLE_SCAN == get_type() && static_cast(this)->use_das()) { - if (1 != exec_server_list.count() - || 1 != get_server_list().count() - || exec_server_list.at(0) != get_server_list().at(0)) { - contain_dist_das = true; - } - } else { - ObLogicalOperator *child = NULL; - for (int64_t i = 0; !contain_dist_das && OB_SUCC(ret) && i < get_num_of_child(); ++i) { - if (OB_ISNULL(child = get_child(i))) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("child is null", K(ret), K(i)); - } else if (OB_FAIL(SMART_CALL(child->check_contain_dist_das(exec_server_list, contain_dist_das)))) { - LOG_WARN("failed to smart call check contain dist das", K(ret)); - } - } - } - return ret; -} - bool ObLogicalOperator::is_parallel_more_than_part_cnt(const int64_t ratio) const { if (NULL == strong_sharding_) { diff --git a/src/sql/optimizer/ob_logical_operator.h b/src/sql/optimizer/ob_logical_operator.h index 47768e8cc..db09f08cb 100644 --- a/src/sql/optimizer/ob_logical_operator.h +++ b/src/sql/optimizer/ob_logical_operator.h @@ -41,6 +41,8 @@ namespace oceanbase { namespace sql { +static constexpr int64_t SLAVE_MAPPING_DOP_TO_PARTITION_RATIO = 2; + struct JoinFilterInfo; struct EstimateCostInfo; struct ObSqlPlanItem; @@ -471,9 +473,7 @@ struct ObExchangeInfo wf_hybrid_pby_exprs_cnt_array_(), may_add_interval_part_(MayAddIntervalPart::NO), sample_type_(NOT_INIT_SAMPLE_TYPE), - parallel_(ObGlobalHint::UNSET_PARALLEL), - server_cnt_(0), - server_list_() + parallel_(ObGlobalHint::UNSET_PARALLEL) { repartition_table_id_ = 0; } @@ -532,8 +532,6 @@ struct ObExchangeInfo // sample type for range distribution or partition range distribution ObPxSampleType sample_type_; int64_t parallel_; - int64_t server_cnt_; - common::ObSEArray server_list_; TO_STRING_KV(K_(is_task_order), K_(is_merge_sort), @@ -556,9 +554,7 @@ struct ObExchangeInfo K_(wf_hybrid_pby_exprs_cnt_array), K_(may_add_interval_part), K_(sample_type), - K_(parallel), - K_(server_cnt), - K_(server_list)); + K_(parallel)); private: DISALLOW_COPY_AND_ASSIGN(ObExchangeInfo); }; @@ -1097,15 +1093,6 @@ class ObLogicalOperator return op_ordering_; } - inline common::ObIArray &get_server_list() - { - return server_list_; - } - inline const common::ObIArray &get_server_list() const - { - return server_list_; - } - inline const ObFdItemSet& get_fd_item_set() const { return NULL == fd_item_set_ ? empty_fd_item_set_ : *fd_item_set_; @@ -1284,7 +1271,7 @@ class ObLogicalOperator virtual int compute_op_interesting_order_info(); - virtual int compute_op_parallel_and_server_info(); + virtual int compute_op_parallel_info(); virtual int compute_table_set(); @@ -1325,8 +1312,8 @@ class ObLogicalOperator virtual int compute_property(); int check_property_valid() const; - int compute_normal_multi_child_parallel_and_server_info(); - int set_parallel_and_server_info_for_match_all(); + int compute_normal_multi_child_parallel_info(); + int set_parallel_info_for_match_all(); int get_limit_offset_value(ObRawExpr *percent_expr, ObRawExpr *limit_expr, ObRawExpr *offset_expr, @@ -1504,11 +1491,6 @@ class ObLogicalOperator { contain_pw_merge_op_ = contain_pw_merge_op; } - inline bool get_contains_match_all_fake_cte() const { return contain_match_all_fake_cte_; } - inline void set_contains_match_all_fake_cte(bool contain_match_all_fake_cte) - { - contain_match_all_fake_cte_ = contain_match_all_fake_cte; - } inline bool get_contains_das_op() const { return contain_das_op_; } inline void set_contains_das_op(bool contain_das_op) { @@ -1611,9 +1593,6 @@ class ObLogicalOperator inline OpParallelRule get_op_parallel_rule() const { return op_parallel_rule_; } inline int64_t get_available_parallel() const { return available_parallel_; } inline void set_available_parallel(int64_t available_parallel) { available_parallel_ = available_parallel; } - inline void set_server_cnt(int64_t count) { server_cnt_ = count; } - inline int64_t get_server_cnt() const { return server_cnt_; } - void set_late_materialization(bool need_mater) { need_late_materialization_ = need_mater; } bool need_late_materialization() const { return need_late_materialization_; } /** @@ -1685,8 +1664,8 @@ class ObLogicalOperator // 2. If this operator is single-child and block, then open and close its child. // 3. If this operator has multiple children, open all children by default and // operators should override this function according to their unique execution logic. - // update_max = false means it is searching for the child with the largest - // running thread/group count and should not update the plan-wide peak. + // update_max = false means a parent is comparing alternative child branches + // for the largest running thread/group count without updating the plan-wide peaks. virtual int open_px_resource_analyze(OPEN_PX_RESOURCE_ANALYZE_DECLARE_ARG); // Make the operator in state that all data has been outputted already. virtual int close_px_resource_analyze(CLOSE_PX_RESOURCE_ANALYZE_DECLARE_ARG); @@ -1697,9 +1676,6 @@ class ObLogicalOperator int pre_check_can_px_batch_rescan(bool &find_nested_rescan, bool &find_rescan_px, bool nested) const; - int check_contain_dist_das(const ObIArray &exec_server_list, - bool &contain_dist_das) const; - inline bool can_re_parallel() { return !is_distributed() && !is_match_all() && 1 < get_available_parallel() && !get_is_at_most_one_row(); } int check_op_orderding_used_by_parent(bool &used); @@ -1924,7 +1900,6 @@ class ObLogicalOperator bool contain_fake_cte_; bool contain_pw_merge_op_; bool contain_das_op_; - bool contain_match_all_fake_cte_; ObShardingInfo *strong_sharding_; common::ObSEArray weak_sharding_; bool is_pipelined_plan_; @@ -1940,8 +1915,6 @@ class ObLogicalOperator int64_t parallel_; OpParallelRule op_parallel_rule_; int64_t available_parallel_; // parallel degree used by serial op to enable parallel again - int64_t server_cnt_; - ObSEArray server_list_; bool need_late_materialization_; // all non_const exprs for this op, generated by allocate_expr_pre and used by project pruning ObSEArray op_exprs_; diff --git a/src/sql/optimizer/ob_optimizer_context.h b/src/sql/optimizer/ob_optimizer_context.h index 4d8d6d17c..5ca1dd21f 100644 --- a/src/sql/optimizer/ob_optimizer_context.h +++ b/src/sql/optimizer/ob_optimizer_context.h @@ -110,14 +110,14 @@ struct AutoDOPParams { parallel_min_scan_time_threshold_(1000) { } - int64_t get_parallel_degree_limit(const int64_t server_cnt) const { + int64_t get_parallel_degree_limit() const { int64_t limit = 0; if (0 < parallel_degree_limit_) { limit = parallel_degree_limit_; - } else if (0 >= parallel_servers_target_ || 0 >= min_cpu_ || 0 >= server_cnt) { - limit = std::max(parallel_servers_target_, server_cnt * min_cpu_); + } else if (0 >= parallel_servers_target_ || 0 >= min_cpu_) { + limit = std::max(parallel_servers_target_, min_cpu_); } else { - limit = std::min(parallel_servers_target_, server_cnt * min_cpu_); + limit = std::min(parallel_servers_target_, min_cpu_); } return std::max(limit, static_cast(1)); } @@ -290,7 +290,6 @@ ObOptimizerContext(ObSQLSessionInfo *session_info, partition_wise_plan_enabled_(true), enable_px_ordered_coord_(false), enable_opt_row_goal_(ObEnableOptRowGoal::MAX), - enable_distributed_das_scan_(true), enable_topn_runtime_filter_(true) { } inline common::ObOptStatManager *get_opt_stat_manager() { return opt_stat_manager_; } @@ -376,7 +375,7 @@ ObOptimizerContext(ObSQLSessionInfo *session_info, void set_das_keep_order_enabled(bool das_keep_order_enabled) { das_keep_order_enabled_ = das_keep_order_enabled; } inline int64_t get_parallel() const { return parallel_; } inline int64_t get_max_parallel() const { return max_parallel_; } - inline int64_t get_parallel_degree_limit(const int64_t server_cnt) const { return auto_dop_params_.get_parallel_degree_limit(server_cnt); } + inline int64_t get_parallel_degree_limit() const { return auto_dop_params_.get_parallel_degree_limit(); } inline int64_t get_session_parallel_degree_limit() const { return auto_dop_params_.parallel_degree_limit_; } inline int64_t get_parallel_min_scan_time_threshold() const { return auto_dop_params_.parallel_min_scan_time_threshold_; } inline bool force_disable_parallel() const { return px_parallel_rule_ >= PL_UDF_DAS_FORCE_SERIALIZE @@ -459,7 +458,6 @@ ObOptimizerContext(ObSQLSessionInfo *session_info, static const int BATCH_RESCAN_BIT_NON_BASIC_SCAN = 9; static const int BATCH_RESCAN_BIT_STARTUP_FILTER = 10; - // Whether a batch rescan scenario is enabled is controlled by its configuration bit. void init_batch_rescan_flags(const bool enable_batch_nlj, const bool enable_batch_spf, const int64_t batch_rescan_flag) @@ -729,8 +727,6 @@ ObOptimizerContext(ObSQLSessionInfo *session_info, inline void set_push_join_pred_into_view_enabled(bool enabled) { push_join_pred_into_view_enabled_ = enabled; } inline void set_enable_opt_row_goal(int64_t type) { enable_opt_row_goal_ = static_cast(type); } inline ObEnableOptRowGoal get_enable_opt_row_goal() const { return enable_opt_row_goal_; } - inline bool is_enable_distributed_das_scan() const { return enable_distributed_das_scan_; } - inline void set_enable_distributed_das_scan(bool enabled) { enable_distributed_das_scan_ = enabled; } inline bool enable_topn_runtime_filter() const { return enable_topn_runtime_filter_; } inline void set_enable_topn_runtime_filter(bool enabled) { enable_topn_runtime_filter_ = enabled; } private: @@ -842,7 +838,6 @@ ObOptimizerContext(ObSQLSessionInfo *session_info, bool partition_wise_plan_enabled_; bool enable_px_ordered_coord_; ObEnableOptRowGoal enable_opt_row_goal_; - bool enable_distributed_das_scan_; bool enable_topn_runtime_filter_; }; } diff --git a/src/sql/parser/sql_parser_mysql_mode.y b/src/sql/parser/sql_parser_mysql_mode.y index 43c6ba0ae..c74e9fc39 100644 --- a/src/sql/parser/sql_parser_mysql_mode.y +++ b/src/sql/parser/sql_parser_mysql_mode.y @@ -167,7 +167,7 @@ BEGIN_OUTLINE_DATA END_OUTLINE_DATA QB_NAME // global hint FROZEN_VERSION TOPK QUERY_TIMEOUT READ_CONSISTENCY LOG_LEVEL USE_PLAN_CACHE TRACE_LOG LOAD_BATCH_SIZE TRANS_PARAM OPT_PARAM OB_DDL_SCHEMA_VERSION ENABLE_PARALLEL_DAS_DML DISABLE_PARALLEL_DAS_DML DISABLE_PARALLEL_DML ENABLE_PARALLEL_DML NO_PARALLEL -CURSOR_SHARING_EXACT DOP TRACING NO_QUERY_TRANSFORMATION NO_COST_BASED_QUERY_TRANSFORMATION BLOCKING DML_PARALLEL +CURSOR_SHARING_EXACT DOP TRACING NO_QUERY_TRANSFORMATION NO_COST_BASED_QUERY_TRANSFORMATION BLOCKING DML_PARALLEL DISABLE_OP_RICH_FORMAT // transform hint NO_REWRITE MERGE_HINT NO_MERGE_HINT NO_EXPAND USE_CONCAT NO_UNNEST PLACE_GROUP_BY NO_PLACE_GROUP_BY INLINE MATERIALIZE SEMI_TO_INNER NO_SEMI_TO_INNER @@ -510,6 +510,7 @@ END_P SET_VAR DELIMITER %type sys_view_cast_opt %type column_list_with_boost with_param_column_ref %type es_sql_opt +%type operator_list %type hybrid_search_expr hybrid_search_param %type vector_similarity_expr vector_similarity_metric %type algorithm_opt lock_opt @@ -9342,6 +9343,23 @@ READ_CONSISTENCY '(' consistency_level ')' { malloc_terminal_node($$, result->malloc_pool_, T_DBMS_STATS); } +| DISABLE_OP_RICH_FORMAT '(' operator_list ')' +{ + ParseNode *op_list = NULL; + merge_nodes(op_list, result, T_DISABLE_OP_RICH_FORMAT, $3); + $$=op_list; +} +; + +operator_list: +STRING_VALUE +{ + $$ = $1; +} +| operator_list ',' STRING_VALUE +{ + malloc_non_terminal_node($$, result->malloc_pool_, T_LINK_NODE, 2, $1, $3); +} ; transform_hint: diff --git a/src/sql/plan_cache/ob_plan_cache.cpp b/src/sql/plan_cache/ob_plan_cache.cpp index 266d9731f..d72145374 100644 --- a/src/sql/plan_cache/ob_plan_cache.cpp +++ b/src/sql/plan_cache/ob_plan_cache.cpp @@ -1901,6 +1901,18 @@ OB_INLINE int ObPlanCache::construct_plan_cache_key(ObSQLSessionInfo &session, pc_key.namespace_ = ns; OZ (session.get_sys_var_in_pc_str(pc_key.sys_vars_str_)); pc_key.config_str_ = session.get_config_in_pc_str(); + // here we use `initial_use_rich_format` instead of `use_rich_format` as part of key + // consider scenario of binding outline: + // ``` + // set _enable_rich_vector_format = true; + // create outline xx on select /*+opt_param('enable_rich_vector_format', 'false')*/ * from t on select * from t; + // select * from t; + // ``` + // rich_format is forced off by hint, thus `use_rich_format() = false`, `initial_use_rich_format() = true` + // added plan's key will be `true + other_info`, same as key constructed for getting plan. + // if `use_rich_format()` is used as part of key, added plan's key will be `false + other_info`. + pc_key.use_rich_vector_format_ = session.initial_use_rich_format(); + pc_key.config_use_rich_format_ = session.config_use_rich_format(); OZ (session.get_sys_var_config_hash_val(pc_key.sys_var_config_hash_val_)); pc_key.enable_mysql_compatible_dates_ = session.enable_mysql_compatible_dates(); return ret; diff --git a/src/sql/plan_cache/ob_plan_cache_value.cpp b/src/sql/plan_cache/ob_plan_cache_value.cpp index d135b0e9e..7a379abd9 100644 --- a/src/sql/plan_cache/ob_plan_cache_value.cpp +++ b/src/sql/plan_cache/ob_plan_cache_value.cpp @@ -142,6 +142,7 @@ ObPlanCacheValue::ObPlanCacheValue() has_dynamic_values_table_(false), stored_schema_objs_(pc_alloc_), stmt_type_(stmt::T_MAX), + enable_rich_vector_format_(false), switchover_epoch_(OB_INVALID_VERSION) { MEMSET(sql_id_, 0, sizeof(sql_id_)); @@ -186,6 +187,7 @@ int ObPlanCacheValue::init(ObPCVSet *pcv_set, const ObILibCacheObject *cache_obj sys_schema_version_ = plan->get_sys_schema_version(); runtime_schema_version_ = plan->get_runtime_schema_version(); sql_traits_ = pc_ctx.sql_traits_; + enable_rich_vector_format_ = static_cast(plan)->get_use_rich_format(); stmt_type_ = plan->get_stmt_type(); need_param_ = plan->need_param(); is_nested_sql_ = ObSQLUtils::is_nested_sql(&pc_ctx.exec_ctx_); @@ -406,6 +408,8 @@ int ObPlanCacheValue::choose_plan(ObPlanCacheCtx &pc_ctx, if (schema_array.count() == 0 && stored_schema_objs_.count() == 0) { need_check_schema = true; } + ObBasicSessionInfo::ForceRichFormatStatus orig_rich_format_status = ObBasicSessionInfo::ForceRichFormatStatus::Disable; + bool orig_phy_ctx_rich_format = false; if (stmt::T_NONE == pc_ctx.sql_ctx_.stmt_type_) { //sql_ctx_.stmt_type_ != stmt::T_NONE means this calling in nested sql, //can't cover the first stmt type in sql context @@ -414,6 +418,7 @@ int ObPlanCacheValue::choose_plan(ObPlanCacheCtx &pc_ctx, if (OB_ISNULL(session = pc_ctx.exec_ctx_.get_my_session())) { ret = OB_ERR_UNEXPECTED; SQL_PC_LOG(ERROR, "got session is NULL", K(ret)); + } else if (FALSE_IT(orig_rich_format_status = session->get_force_rich_format_status())) { } else if (FALSE_IT(session->set_stmt_type(stmt_type_))) { } else if (OB_UNLIKELY(switchover_epoch_ != new_switchover_epoch)) { ret = OB_OLD_SCHEMA_VERSION; @@ -459,7 +464,12 @@ int ObPlanCacheValue::choose_plan(ObPlanCacheCtx &pc_ctx, if (OB_SUCC(ret)) { ObPhysicalPlanCtx *phy_ctx = pc_ctx.exec_ctx_.get_physical_plan_ctx(); if (NULL != phy_ctx) { + orig_phy_ctx_rich_format = phy_ctx->is_rich_format(); phy_ctx->set_original_param_cnt(phy_ctx->get_param_store().count()); + phy_ctx->set_rich_format(enable_rich_vector_format_); + session->set_force_rich_format(enable_rich_vector_format_ ? + ObBasicSessionInfo::ForceRichFormatStatus::FORCE_ON : + ObBasicSessionInfo::ForceRichFormatStatus::FORCE_OFF); if (OB_FAIL(phy_ctx->init_datum_param_store())) { LOG_WARN("fail to init datum param store", K(ret)); } @@ -521,6 +531,15 @@ int ObPlanCacheValue::choose_plan(ObPlanCacheCtx &pc_ctx, plan_out = plan; pc_ctx.sql_traits_ = sql_traits_; //used for check read only } + // reset force rich format status + if (NULL == plan) { + if (session != nullptr) { + session->set_force_rich_format(orig_rich_format_status); + } + if (pc_ctx.exec_ctx_.get_physical_plan_ctx() != nullptr) { + pc_ctx.exec_ctx_.get_physical_plan_ctx()->set_rich_format(orig_phy_ctx_rich_format); + } + } return ret; } // Convert parameterized parameters of fast parser to ObObjParam, used for get plan @@ -1145,6 +1164,7 @@ void ObPlanCacheValue::reset() } } stored_schema_objs_.reset(); + enable_rich_vector_format_ = false; pcv_set_ = NULL; // put last, there may be need for pcv_set before this } // Get all plan memory usage under this plan cache value diff --git a/src/sql/resolver/ddl/ob_ddl_resolver.cpp b/src/sql/resolver/ddl/ob_ddl_resolver.cpp index 0b73a633b..a21c80e6a 100644 --- a/src/sql/resolver/ddl/ob_ddl_resolver.cpp +++ b/src/sql/resolver/ddl/ob_ddl_resolver.cpp @@ -9286,8 +9286,7 @@ int ObTableSchema::check_alter_column_in_index(const ObColumnSchemaV2 &src_colum } // namespace oceanbase // ===== definition moved from share/ob_ddl_common.cpp(new_discrete_vector, discrete-vector template real user; external linkage, share callers resolve it through declarations) ===== -#include "sql/engine/vector/ob_discrete_format.h" -#include "sql/engine/vector/type_traits.h" +#include "sql/engine/vector/ob_discrete_vector.h" namespace oceanbase { namespace share diff --git a/src/sql/resolver/dml/ob_hint.cpp b/src/sql/resolver/dml/ob_hint.cpp index 32ca7087d..97360f9bf 100644 --- a/src/sql/resolver/dml/ob_hint.cpp +++ b/src/sql/resolver/dml/ob_hint.cpp @@ -672,6 +672,7 @@ bool ObOptParamHint::is_param_val_valid(const OptParamType param_type, const ObO case USE_PART_SORT_MGB: case USE_DEFAULT_OPT_STAT: case ENABLE_IN_RANGE_OPTIMIZATION: + case ENABLE_RICH_VECTOR_FORMAT: case _ENABLE_STORAGE_CARDINALITY_ESTIMATION: case PRESERVE_ORDER_FOR_PAGINATION: case ENABLE_DAS_KEEP_ORDER: diff --git a/src/sql/resolver/dml/ob_hint.h b/src/sql/resolver/dml/ob_hint.h index bc54e48d5..249d20952 100644 --- a/src/sql/resolver/dml/ob_hint.h +++ b/src/sql/resolver/dml/ob_hint.h @@ -109,6 +109,7 @@ struct ObOptParamHint DEF(USE_DEFAULT_OPT_STAT,) \ DEF(ENABLE_IN_RANGE_OPTIMIZATION,) \ DEF(WORKAREA_SIZE_POLICY,) \ + DEF(ENABLE_RICH_VECTOR_FORMAT,) \ DEF(_ENABLE_STORAGE_CARDINALITY_ESTIMATION,) \ DEF(PRESERVE_ORDER_FOR_PAGINATION,) \ DEF(ENABLE_DAS_KEEP_ORDER,) \ diff --git a/src/sql/resolver/ob_resolver.cpp b/src/sql/resolver/ob_resolver.cpp index 710f24f50..1b320ea50 100644 --- a/src/sql/resolver/ob_resolver.cpp +++ b/src/sql/resolver/ob_resolver.cpp @@ -674,6 +674,24 @@ int ObResolver::resolve(IsPrepared if_prepared, const ParseNode &parse_tree, ObS params_.query_ctx_->has_dml_write_stmt_ = dml_stmt->is_dml_write_stmt(); } + if (OB_SUCC(ret)) { + if (params_.session_info_->is_force_off_rich_format()) { + // do nothing + } else { + bool has_rich_format_hint = false; + bool enable_rich_format = false; + ObOptParamHint &opt_hint = params_.query_ctx_->query_hint_.global_hint_.opt_params_; + if (OB_FAIL(opt_hint.check_and_get_bool_opt_param(ObOptParamHint::ENABLE_RICH_VECTOR_FORMAT, + has_rich_format_hint, + enable_rich_format))) { + LOG_WARN("check and get bool opt param failed", K(ret)); + } else if (has_rich_format_hint) { + params_.session_info_->set_force_rich_format( + enable_rich_format ? ObBasicSessionInfo::ForceRichFormatStatus::FORCE_ON : + ObBasicSessionInfo::ForceRichFormatStatus::FORCE_OFF); + } + } + } } if (OB_SUCC(ret)) { stmt::StmtType stmt_type = stmt->get_stmt_type(); diff --git a/src/sql/rewrite/ob_range_generator.cpp b/src/sql/rewrite/ob_range_generator.cpp index c138c574b..69616ded0 100644 --- a/src/sql/rewrite/ob_range_generator.cpp +++ b/src/sql/rewrite/ob_range_generator.cpp @@ -19,8 +19,6 @@ #include "common/timezone/ob_time_convert.h" #include "lib/container/ob_array_serialization.h" #include "share/geo/ob_geo_utils.h" -#include "share/ob_lob_access_utils.h" -#include "lib/rc/ob_rc.h" #include "sql/resolver/dml/ob_dml_stmt.h" #include "sql/engine/expr/ob_expr_result_type_util.h" #include "lib/utility/ob_smart_call.h" diff --git a/src/sql/session/ob_basic_session_info.cpp b/src/sql/session/ob_basic_session_info.cpp index 0f6ff4913..ff4b697de 100644 --- a/src/sql/session/ob_basic_session_info.cpp +++ b/src/sql/session/ob_basic_session_info.cpp @@ -139,7 +139,10 @@ ObBasicSessionInfo::ObBasicSessionInfo() is_password_expired_(false), process_query_time_(0), last_update_tz_time_(0), + use_rich_vector_format_(false), last_refresh_schema_version_(OB_INVALID_VERSION), + force_rich_vector_format_(ForceRichFormatStatus::Disable), + config_use_rich_format_(true), sys_var_config_hash_val_(0), is_real_inner_session_(false) { @@ -444,6 +447,8 @@ void ObBasicSessionInfo::reset(bool skip_sys_var) is_password_expired_ = false; process_query_time_ = 0; last_update_tz_time_ = 0; + use_rich_vector_format_ = true; + force_rich_vector_format_ = ForceRichFormatStatus::Disable; // Finally reset all allocator // Otherwise thread_data_.user_name_ such properties will have dangling pointers, which may cause core dump when iterating through the session_mgr's foreach interface. sess_level_name_pool_.reset(); @@ -457,6 +462,7 @@ void ObBasicSessionInfo::reset(bool skip_sys_var) } client_identifier_.reset(); last_refresh_schema_version_ = OB_INVALID_VERSION; + config_use_rich_format_ = true; sys_var_config_hash_val_ = 0; is_real_inner_session_ = false; } @@ -2534,6 +2540,12 @@ OB_INLINE int ObBasicSessionInfo::process_session_variable(ObSysVarClassType var OX (sys_vars_cache_.set_runtime_bloom_filter_max_size(int_val)); break; } + case SYS_VAR__ENABLE_RICH_VECTOR_FORMAT: { + int64_t int_val = 0; + OZ (val.get_int(int_val), val); + OX (sys_vars_cache_.set_enable_rich_vector_format(int_val != 0)); + break; + } case SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD: { int64_t int_val = 0; OZ (val.get_int(int_val), val); @@ -2829,6 +2841,12 @@ int ObBasicSessionInfo::fill_sys_vars_cache_base_value( OX (sys_vars_cache.set_base_runtime_bloom_filter_max_size(int_val)); break; } + case SYS_VAR__ENABLE_RICH_VECTOR_FORMAT: { + int64_t int_val = 0; + OZ (val.get_int(int_val), val); + OX (sys_vars_cache.set_base_enable_rich_vector_format(int_val != 0)); + break; + } case SYS_VAR_OB_DEFAULT_LOB_INROW_THRESHOLD: { int64_t int_val = 0; OZ (val.get_int(int_val), val); @@ -3506,6 +3524,7 @@ OB_DEF_SERIALIZE(ObBasicSessionInfo::SysVarsCacheData) runtime_filter_wait_time_ms_, runtime_filter_max_in_num_, runtime_bloom_filter_max_size_, + enable_rich_vector_format_, enable_sql_plan_monitor_); return ret; } @@ -3529,6 +3548,7 @@ OB_DEF_DESERIALIZE(ObBasicSessionInfo::SysVarsCacheData) runtime_filter_wait_time_ms_, runtime_filter_max_in_num_, runtime_bloom_filter_max_size_, + enable_rich_vector_format_, enable_sql_plan_monitor_); return ret; } @@ -3552,6 +3572,7 @@ OB_DEF_SERIALIZE_SIZE(ObBasicSessionInfo::SysVarsCacheData) runtime_filter_wait_time_ms_, runtime_filter_max_in_num_, runtime_bloom_filter_max_size_, + enable_rich_vector_format_, enable_sql_plan_monitor_); return len; } @@ -3684,7 +3705,8 @@ OB_DEF_SERIALIZE(ObBasicSessionInfo) thread_data_.client_addr_, thread_data_.user_client_addr_, process_query_time_, - show_trace_row_format_); + show_trace_row_format_, + use_rich_vector_format_); }(); uint32_t unused_uint32_field = INVALID_SESSID; OB_UNIS_ENCODE(ObString(sql_id_)); @@ -3850,6 +3872,7 @@ OB_DEF_DESERIALIZE(ObBasicSessionInfo) thread_data_.user_client_addr_, process_query_time_, show_trace_row_format_); + LST_DO_CODE(OB_UNIS_DECODE, use_rich_vector_format_); // deep copy string. if (OB_SUCC(ret)) { if (OB_FAIL(sess_level_name_pool_.write_string(app_trace_id_, &app_trace_id_))) { @@ -3884,6 +3907,7 @@ OB_DEF_DESERIALIZE(ObBasicSessionInfo) is_deserialized_ = true; tz_info_wrap_.set_tz_info_map(tz_info_map); release_to_pool_ = OB_SUCC(ret); + force_rich_vector_format_ = ForceRichFormatStatus::Disable; }(); uint32_t unused_uint32_field = INVALID_SESSID; ObString sql_id; @@ -4125,7 +4149,8 @@ OB_DEF_SERIALIZE_SIZE(ObBasicSessionInfo) thread_data_.client_addr_, thread_data_.user_client_addr_, process_query_time_, - show_trace_row_format_); + show_trace_row_format_, + use_rich_vector_format_); OB_UNIS_ADD_LEN(ObString(sql_id_)); OB_UNIS_ADD_LEN(sys_var_config_hash_val_); OB_UNIS_ADD_LEN(enable_mysql_compatible_dates_); @@ -4901,6 +4926,9 @@ int ObBasicSessionInfo::base_save_session(BaseSavedValue &saved_value, bool skip OX (sys_vars_cache_.get_autocommit_info(saved_value.inc_autocommit_)); OX (sys_vars_cache_.set_autocommit_info(false)); } + if (OB_SUCC(ret)) { + saved_value.force_rich_format_status_ = force_rich_vector_format_; + } return ret; } @@ -4943,6 +4971,9 @@ int ObBasicSessionInfo::base_restore_session(BaseSavedValue &saved_value) thread_data_.cur_query_[len] = '\0'; } OX (cur_phy_plan_ = saved_value.cur_phy_plan_); + if (OB_SUCC(ret)) { + force_rich_vector_format_ = saved_value.force_rich_format_status_; + } return ret; } diff --git a/src/sql/session/ob_basic_session_info.h b/src/sql/session/ob_basic_session_info.h index d630df3b3..ccd0eba77 100644 --- a/src/sql/session/ob_basic_session_info.h +++ b/src/sql/session/ob_basic_session_info.h @@ -255,6 +255,12 @@ class ObBasicSessionInfo ~UserScopeGuard() { sql_scope_flags_.set_is_in_user_scope(false); } SqlScopeFlags &sql_scope_flags_; }; + enum class ForceRichFormatStatus + { + Disable = 0, + FORCE_ON, + FORCE_OFF + }; // Switching autonomous transactions must switch nested statements, otherwise the context information of statement execution may have changed when switching back to the main transaction, for example: // // So in principle TransSavedValue should contain all attributes of StmtSavedValue, consider making the former a subclass of the latter, @@ -300,6 +306,7 @@ class ObBasicSessionInfo bool need_serial_exec_; int64_t cur_query_buf_len_; char *cur_query_; + ForceRichFormatStatus force_rich_format_status_; public: // Original TransSavedValue properties // transaction::ObTxDesc trans_desc_; // Both have trans_desc, but the operations performed are completely different, so it is not placed in the base class. @@ -418,6 +425,43 @@ class ObBasicSessionInfo int get_local_nls_format(const ObObjType type, ObString &format_str) const; int set_time_zone(const common::ObString &str_val, const bool is_oralce_mode, const bool need_check_valid /* true */); + void init_use_rich_format() + { + config_use_rich_format_ = GCONF._global_enable_rich_vector_format; + if (!config_use_rich_format_) { + use_rich_vector_format_ = false; + force_rich_vector_format_ = ForceRichFormatStatus::FORCE_OFF; + } else { + use_rich_vector_format_ = sys_vars_cache_.get_enable_rich_vector_format(); + force_rich_vector_format_ = ForceRichFormatStatus::Disable; + } + } + bool is_force_off_rich_format() { + return force_rich_vector_format_ == ForceRichFormatStatus::FORCE_OFF; + } + bool use_rich_format() const { + if (force_rich_vector_format_ != ForceRichFormatStatus::Disable) { + return force_rich_vector_format_ == ForceRichFormatStatus::FORCE_ON; + } else { + return use_rich_vector_format_; + } + } + + bool config_use_rich_format() { return config_use_rich_format_; } + + bool initial_use_rich_format() const { + return use_rich_vector_format_; + } + + ObBasicSessionInfo::ForceRichFormatStatus get_force_rich_format_status() const + { + return force_rich_vector_format_; + } + + void set_force_rich_format(ObBasicSessionInfo::ForceRichFormatStatus status) + { + force_rich_vector_format_ = status; + } //getters const common::ObString get_runtime_name() const; @@ -1369,6 +1413,7 @@ class ObBasicSessionInfo runtime_filter_wait_time_ms_(0), runtime_filter_max_in_num_(0), runtime_bloom_filter_max_size_(INT_MAX32), + enable_rich_vector_format_(false), enable_sql_plan_monitor_(false) {} ~SysVarsCacheData() {} @@ -1408,6 +1453,7 @@ class ObBasicSessionInfo runtime_filter_wait_time_ms_ = 0; runtime_filter_max_in_num_ = 0; runtime_bloom_filter_max_size_ = INT32_MAX; + enable_rich_vector_format_ = false; default_lob_inrow_threshold_ = OB_DEFAULT_LOB_INROW_THRESHOLD; enable_sql_plan_monitor_ = false; } @@ -1442,6 +1488,7 @@ class ObBasicSessionInfo log_row_value_option_ == other.log_row_value_option_ && ob_max_read_stale_time_ == other.ob_max_read_stale_time_ && ob_max_read_stale_time_ == other.ob_max_read_stale_time_ && + enable_rich_vector_format_ == other.enable_rich_vector_format_ && default_lob_inrow_threshold_ == other.default_lob_inrow_threshold_; return equal1; } @@ -1516,6 +1563,7 @@ class ObBasicSessionInfo int64_t runtime_filter_wait_time_ms_; int64_t runtime_filter_max_in_num_; int64_t runtime_bloom_filter_max_size_; + bool enable_rich_vector_format_; // No use. Placeholder. bool enable_sql_plan_monitor_; }; @@ -1613,6 +1661,7 @@ class ObBasicSessionInfo DEF_SYS_VAR_CACHE_FUNCS(int64_t, runtime_filter_wait_time_ms); DEF_SYS_VAR_CACHE_FUNCS(int64_t, runtime_filter_max_in_num); DEF_SYS_VAR_CACHE_FUNCS(int64_t, runtime_bloom_filter_max_size); + DEF_SYS_VAR_CACHE_FUNCS(bool, enable_rich_vector_format); DEF_SYS_VAR_CACHE_FUNCS(int64_t, default_lob_inrow_threshold); DEF_SYS_VAR_CACHE_FUNCS(bool, enable_sql_plan_monitor); void set_autocommit_info(bool inc_value) @@ -1669,6 +1718,7 @@ class ObBasicSessionInfo bool inc_runtime_filter_wait_time_ms_:1; bool inc_runtime_filter_max_in_num_:1; bool inc_runtime_bloom_filter_max_size_:1; + bool inc_enable_rich_vector_format_:1; bool inc_default_lob_inrow_threshold_:1; bool inc_ob_enable_pl_cache_:1; bool inc_enable_sql_plan_monitor_:1; @@ -1840,7 +1890,15 @@ class ObBasicSessionInfo // timestamp of processing current query. refresh when retry. int64_t process_query_time_; int64_t last_update_tz_time_; //timestamp of last attempt to update timezone info + bool use_rich_vector_format_; int64_t last_refresh_schema_version_; + // rich format specified hint, e.g. `select /*+opt_param('enable_rich_vector_format', 'true')*/ * from t` + // force_rich_vector_format_ == FORCE_ON => use_rich_format() returns true + // force_rich_vector_format_ == FORCE_OFF => use_rich_format() returns false + // otherwise use_rich_format() returns use_rich_vector_format_ + ForceRichFormatStatus force_rich_vector_format_; + // just used to plan cache key + bool config_use_rich_format_; common::ObSEArray enable_role_ids_; uint64_t sys_var_config_hash_val_; diff --git a/src/sql/session/ob_sql_session_info.cpp b/src/sql/session/ob_sql_session_info.cpp index f54d596b8..2bd753c98 100644 --- a/src/sql/session/ob_sql_session_info.cpp +++ b/src/sql/session/ob_sql_session_info.cpp @@ -417,6 +417,16 @@ bool ObSQLSessionInfo::is_var_assign_use_das_enabled() const return bret; } +bool ObSQLSessionInfo::is_nlj_spf_use_rich_format_enabled() const +{ + bool bret = false; + + { + bret = GCONF._enable_nlj_spf_use_rich_format; + } + return bret; +} + int ObSQLSessionInfo::is_adj_index_cost_enabled(bool &enabled, int64_t &stats_cost_percent) const { int ret = OB_SUCCESS; diff --git a/src/sql/session/ob_sql_session_info.h b/src/sql/session/ob_sql_session_info.h index 7fe9a9ce5..a010e98b2 100644 --- a/src/sql/session/ob_sql_session_info.h +++ b/src/sql/session/ob_sql_session_info.h @@ -718,6 +718,7 @@ class ObSQLSessionInfo: public common::ObVersionProvider, public ObBasicSessionI bool is_qualify_filter_enabled() const; int is_enable_range_extraction_for_not_in(bool &enabled) const; bool is_var_assign_use_das_enabled() const; + bool is_nlj_spf_use_rich_format_enabled() const; int is_adj_index_cost_enabled(bool &enabled, int64_t &stats_cost_percent) const; bool is_spf_mlj_group_rescan_enabled() const; bool enable_parallel_das_dml() const; diff --git a/src/sql/session/ob_system_variable_factory.cpp b/src/sql/session/ob_system_variable_factory.cpp index 27bc85ca9..4ded0c386 100644 --- a/src/sql/session/ob_system_variable_factory.cpp +++ b/src/sql/session/ob_system_variable_factory.cpp @@ -723,6 +723,7 @@ int ObSysVarFactory::create_all_sys_vars_() + sizeof(ObSysVarEnableStorageCardinalityEstimation) + sizeof(ObSysVarLcTimeNames) + sizeof(ObSysVarActivateAllRolesOnLogin) + + sizeof(ObSysVarEnableRichVectorFormat) + sizeof(ObSysVarInnodbStatsPersistent) + sizeof(ObSysVarDebug) + sizeof(ObSysVarInnodbChangeBufferingDebug) @@ -2778,6 +2779,15 @@ int ObSysVarFactory::create_all_sys_vars_() ptr = (void *)((char *)ptr + sizeof(ObSysVarActivateAllRolesOnLogin)); } } + if (OB_SUCC(ret)) { + if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarEnableRichVectorFormat())) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_ERROR("fail to new ObSysVarEnableRichVectorFormat", K(ret)); + } else { + store_buf_[share::ObSysVarsToIdxMap::get_store_idx(static_cast(share::SYS_VAR__ENABLE_RICH_VECTOR_FORMAT))] = sys_var_ptr; + ptr = (void *)((char *)ptr + sizeof(ObSysVarEnableRichVectorFormat)); + } + } if (OB_SUCC(ret)) { if (OB_ISNULL(sys_var_ptr = new (ptr)ObSysVarInnodbStatsPersistent())) { ret = OB_ALLOCATE_MEMORY_FAILED; @@ -8444,6 +8454,10 @@ int ObSysVarFactory::create_sys_var(ObIAllocator &allocator_, share::ObSysVarCla ret = create_one_sys_var(allocator_, sys_var_ptr, "ObSysVarActivateAllRolesOnLogin"); break; } + case share::SYS_VAR__ENABLE_RICH_VECTOR_FORMAT: { + ret = create_one_sys_var(allocator_, sys_var_ptr, "ObSysVarEnableRichVectorFormat"); + break; + } case share::SYS_VAR_INNODB_STATS_PERSISTENT: { ret = create_one_sys_var(allocator_, sys_var_ptr, "ObSysVarInnodbStatsPersistent"); break; diff --git a/src/sql/session/ob_system_variable_factory.h b/src/sql/session/ob_system_variable_factory.h index f418bb47c..c09756ff9 100644 --- a/src/sql/session/ob_system_variable_factory.h +++ b/src/sql/session/ob_system_variable_factory.h @@ -1209,6 +1209,13 @@ class ObSysVarActivateAllRolesOnLogin : public ObBoolSysVar inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_ACTIVATE_ALL_ROLES_ON_LOGIN; } inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(165); } }; +class ObSysVarEnableRichVectorFormat : public ObBoolSysVar +{ +public: + ObSysVarEnableRichVectorFormat() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} + inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR__ENABLE_RICH_VECTOR_FORMAT; } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(166); } +}; class ObSysVarInnodbStatsPersistent : public ObEnumSysVar { public: @@ -1216,77 +1223,77 @@ class ObSysVarInnodbStatsPersistent : public ObEnumSysVar public: ObSysVarInnodbStatsPersistent() : ObEnumSysVar(INNODB_STATS_PERSISTENT_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATS_PERSISTENT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(166); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(167); } }; class ObSysVarDebug : public ObVarcharSysVar { public: ObSysVarDebug() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(167); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(168); } }; class ObSysVarInnodbChangeBufferingDebug : public ObIntSysVar { public: ObSysVarInnodbChangeBufferingDebug() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_CHANGE_BUFFERING_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(168); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(169); } }; class ObSysVarInnodbDisableResizeBufferPoolDebug : public ObBoolSysVar { public: ObSysVarInnodbDisableResizeBufferPoolDebug() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_DISABLE_RESIZE_BUFFER_POOL_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(169); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(170); } }; class ObSysVarInnodbFilMakePageDirtyDebug : public ObIntSysVar { public: ObSysVarInnodbFilMakePageDirtyDebug() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FIL_MAKE_PAGE_DIRTY_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(170); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(171); } }; class ObSysVarInnodbLimitOptimisticInsertDebug : public ObIntSysVar { public: ObSysVarInnodbLimitOptimisticInsertDebug() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LIMIT_OPTIMISTIC_INSERT_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(171); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(172); } }; class ObSysVarInnodbMergeThresholdSetAllDebug : public ObIntSysVar { public: ObSysVarInnodbMergeThresholdSetAllDebug() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MERGE_THRESHOLD_SET_ALL_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(172); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(173); } }; class ObSysVarInnodbSavedPageNumberDebug : public ObIntSysVar { public: ObSysVarInnodbSavedPageNumberDebug() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_SAVED_PAGE_NUMBER_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(173); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(174); } }; class ObSysVarInnodbTrxPurgeViewUpdateOnlyDebug : public ObBoolSysVar { public: ObSysVarInnodbTrxPurgeViewUpdateOnlyDebug() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_TRX_PURGE_VIEW_UPDATE_ONLY_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(174); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(175); } }; class ObSysVarInnodbTrxRsegNSlotsDebug : public ObIntSysVar { public: ObSysVarInnodbTrxRsegNSlotsDebug() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_TRX_RSEG_N_SLOTS_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(175); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(176); } }; class ObSysVarStoredProgramCache : public ObIntSysVar { public: ObSysVarStoredProgramCache() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_STORED_PROGRAM_CACHE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(176); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(177); } }; class ObSysVarCardinalityEstimationModel : public ObEnumSysVar { @@ -1295,7 +1302,7 @@ class ObSysVarCardinalityEstimationModel : public ObEnumSysVar public: ObSysVarCardinalityEstimationModel() : ObEnumSysVar(CARDINALITY_ESTIMATION_MODEL_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_CARDINALITY_ESTIMATION_MODEL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(177); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(178); } }; class ObSysVarFlush : public ObEnumSysVar { @@ -1304,14 +1311,14 @@ class ObSysVarFlush : public ObEnumSysVar public: ObSysVarFlush() : ObEnumSysVar(FLUSH_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_FLUSH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(178); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(179); } }; class ObSysVarFlushTime : public ObIntSysVar { public: ObSysVarFlushTime() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_FLUSH_TIME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(179); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(180); } }; class ObSysVarInnodbAdaptiveFlushing : public ObEnumSysVar { @@ -1320,14 +1327,14 @@ class ObSysVarInnodbAdaptiveFlushing : public ObEnumSysVar public: ObSysVarInnodbAdaptiveFlushing() : ObEnumSysVar(INNODB_ADAPTIVE_FLUSHING_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_ADAPTIVE_FLUSHING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(180); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(181); } }; class ObSysVarInnodbAdaptiveFlushingLwm : public ObIntSysVar { public: ObSysVarInnodbAdaptiveFlushingLwm() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_ADAPTIVE_FLUSHING_LWM; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(181); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(182); } }; class ObSysVarInnodbAdaptiveHashIndex : public ObEnumSysVar { @@ -1336,28 +1343,28 @@ class ObSysVarInnodbAdaptiveHashIndex : public ObEnumSysVar public: ObSysVarInnodbAdaptiveHashIndex() : ObEnumSysVar(INNODB_ADAPTIVE_HASH_INDEX_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(182); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(183); } }; class ObSysVarInnodbAdaptiveHashIndexParts : public ObIntSysVar { public: ObSysVarInnodbAdaptiveHashIndexParts() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_ADAPTIVE_HASH_INDEX_PARTS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(183); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(184); } }; class ObSysVarInnodbAdaptiveMaxSleepDelay : public ObIntSysVar { public: ObSysVarInnodbAdaptiveMaxSleepDelay() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_ADAPTIVE_MAX_SLEEP_DELAY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(184); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(185); } }; class ObSysVarInnodbAutoextendIncrement : public ObIntSysVar { public: ObSysVarInnodbAutoextendIncrement() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_AUTOEXTEND_INCREMENT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(185); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(186); } }; class ObSysVarInnodbBackgroundDropListEmpty : public ObEnumSysVar { @@ -1366,7 +1373,7 @@ class ObSysVarInnodbBackgroundDropListEmpty : public ObEnumSysVar public: ObSysVarInnodbBackgroundDropListEmpty() : ObEnumSysVar(INNODB_BACKGROUND_DROP_LIST_EMPTY_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BACKGROUND_DROP_LIST_EMPTY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(186); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(187); } }; class ObSysVarInnodbBufferPoolDumpAtShutdown : public ObEnumSysVar { @@ -1375,7 +1382,7 @@ class ObSysVarInnodbBufferPoolDumpAtShutdown : public ObEnumSysVar public: ObSysVarInnodbBufferPoolDumpAtShutdown() : ObEnumSysVar(INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_DUMP_AT_SHUTDOWN; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(187); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(188); } }; class ObSysVarInnodbBufferPoolDumpNow : public ObEnumSysVar { @@ -1384,21 +1391,21 @@ class ObSysVarInnodbBufferPoolDumpNow : public ObEnumSysVar public: ObSysVarInnodbBufferPoolDumpNow() : ObEnumSysVar(INNODB_BUFFER_POOL_DUMP_NOW_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_DUMP_NOW; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(188); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(189); } }; class ObSysVarInnodbBufferPoolDumpPct : public ObIntSysVar { public: ObSysVarInnodbBufferPoolDumpPct() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_DUMP_PCT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(189); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(190); } }; class ObSysVarInnodbBufferPoolFilename : public ObVarcharSysVar { public: ObSysVarInnodbBufferPoolFilename() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_FILENAME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(190); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(191); } }; class ObSysVarInnodbBufferPoolLoadAbort : public ObEnumSysVar { @@ -1407,7 +1414,7 @@ class ObSysVarInnodbBufferPoolLoadAbort : public ObEnumSysVar public: ObSysVarInnodbBufferPoolLoadAbort() : ObEnumSysVar(INNODB_BUFFER_POOL_LOAD_ABORT_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_LOAD_ABORT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(191); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(192); } }; class ObSysVarInnodbBufferPoolLoadNow : public ObEnumSysVar { @@ -1416,21 +1423,21 @@ class ObSysVarInnodbBufferPoolLoadNow : public ObEnumSysVar public: ObSysVarInnodbBufferPoolLoadNow() : ObEnumSysVar(INNODB_BUFFER_POOL_LOAD_NOW_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_LOAD_NOW; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(192); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(193); } }; class ObSysVarInnodbBufferPoolSize : public ObIntSysVar { public: ObSysVarInnodbBufferPoolSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(193); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(194); } }; class ObSysVarInnodbChangeBufferMaxSize : public ObIntSysVar { public: ObSysVarInnodbChangeBufferMaxSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_CHANGE_BUFFER_MAX_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(194); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(195); } }; class ObSysVarInnodbChangeBuffering : public ObEnumSysVar { @@ -1439,7 +1446,7 @@ class ObSysVarInnodbChangeBuffering : public ObEnumSysVar public: ObSysVarInnodbChangeBuffering() : ObEnumSysVar(INNODB_CHANGE_BUFFERING_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_CHANGE_BUFFERING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(195); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(196); } }; class ObSysVarInnodbChecksumAlgorithm : public ObEnumSysVar { @@ -1448,7 +1455,7 @@ class ObSysVarInnodbChecksumAlgorithm : public ObEnumSysVar public: ObSysVarInnodbChecksumAlgorithm() : ObEnumSysVar(INNODB_CHECKSUM_ALGORITHM_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_CHECKSUM_ALGORITHM; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(196); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(197); } }; class ObSysVarInnodbCmpPerIndexEnabled : public ObEnumSysVar { @@ -1457,42 +1464,42 @@ class ObSysVarInnodbCmpPerIndexEnabled : public ObEnumSysVar public: ObSysVarInnodbCmpPerIndexEnabled() : ObEnumSysVar(INNODB_CMP_PER_INDEX_ENABLED_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_CMP_PER_INDEX_ENABLED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(197); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(198); } }; class ObSysVarInnodbCommitConcurrency : public ObIntSysVar { public: ObSysVarInnodbCommitConcurrency() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_COMMIT_CONCURRENCY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(198); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(199); } }; class ObSysVarInnodbCompressionFailureThresholdPct : public ObIntSysVar { public: ObSysVarInnodbCompressionFailureThresholdPct() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_COMPRESSION_FAILURE_THRESHOLD_PCT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(199); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(200); } }; class ObSysVarInnodbCompressionLevel : public ObIntSysVar { public: ObSysVarInnodbCompressionLevel() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_COMPRESSION_LEVEL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(200); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(201); } }; class ObSysVarInnodbCompressionPadPctMax : public ObIntSysVar { public: ObSysVarInnodbCompressionPadPctMax() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_COMPRESSION_PAD_PCT_MAX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(201); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(202); } }; class ObSysVarInnodbConcurrencyTickets : public ObIntSysVar { public: ObSysVarInnodbConcurrencyTickets() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_CONCURRENCY_TICKETS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(202); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(203); } }; class ObSysVarInnodbDefaultRowFormat : public ObEnumSysVar { @@ -1501,7 +1508,7 @@ class ObSysVarInnodbDefaultRowFormat : public ObEnumSysVar public: ObSysVarInnodbDefaultRowFormat() : ObEnumSysVar(INNODB_DEFAULT_ROW_FORMAT_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_DEFAULT_ROW_FORMAT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(203); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(204); } }; class ObSysVarInnodbDisableSortFileCache : public ObEnumSysVar { @@ -1510,7 +1517,7 @@ class ObSysVarInnodbDisableSortFileCache : public ObEnumSysVar public: ObSysVarInnodbDisableSortFileCache() : ObEnumSysVar(INNODB_DISABLE_SORT_FILE_CACHE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_DISABLE_SORT_FILE_CACHE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(204); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(205); } }; class ObSysVarInnodbFileFormat : public ObEnumSysVar { @@ -1519,7 +1526,7 @@ class ObSysVarInnodbFileFormat : public ObEnumSysVar public: ObSysVarInnodbFileFormat() : ObEnumSysVar(INNODB_FILE_FORMAT_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FILE_FORMAT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(205); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(206); } }; class ObSysVarInnodbFileFormatMax : public ObEnumSysVar { @@ -1528,7 +1535,7 @@ class ObSysVarInnodbFileFormatMax : public ObEnumSysVar public: ObSysVarInnodbFileFormatMax() : ObEnumSysVar(INNODB_FILE_FORMAT_MAX_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FILE_FORMAT_MAX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(206); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(207); } }; class ObSysVarInnodbFilePerTable : public ObEnumSysVar { @@ -1537,14 +1544,14 @@ class ObSysVarInnodbFilePerTable : public ObEnumSysVar public: ObSysVarInnodbFilePerTable() : ObEnumSysVar(INNODB_FILE_PER_TABLE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FILE_PER_TABLE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(207); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(208); } }; class ObSysVarInnodbFillFactor : public ObIntSysVar { public: ObSysVarInnodbFillFactor() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FILL_FACTOR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(208); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(209); } }; class ObSysVarInnodbFlushNeighbors : public ObEnumSysVar { @@ -1553,7 +1560,7 @@ class ObSysVarInnodbFlushNeighbors : public ObEnumSysVar public: ObSysVarInnodbFlushNeighbors() : ObEnumSysVar(INNODB_FLUSH_NEIGHBORS_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FLUSH_NEIGHBORS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(209); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(210); } }; class ObSysVarInnodbFlushSync : public ObEnumSysVar { @@ -1562,49 +1569,49 @@ class ObSysVarInnodbFlushSync : public ObEnumSysVar public: ObSysVarInnodbFlushSync() : ObEnumSysVar(INNODB_FLUSH_SYNC_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FLUSH_SYNC; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(210); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(211); } }; class ObSysVarInnodbFlushingAvgLoops : public ObIntSysVar { public: ObSysVarInnodbFlushingAvgLoops() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FLUSHING_AVG_LOOPS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(211); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(212); } }; class ObSysVarInnodbLruScanDepth : public ObIntSysVar { public: ObSysVarInnodbLruScanDepth() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LRU_SCAN_DEPTH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(212); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(213); } }; class ObSysVarInnodbMaxDirtyPagesPct : public ObNumericSysVar { public: ObSysVarInnodbMaxDirtyPagesPct() : ObNumericSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(213); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(214); } }; class ObSysVarInnodbMaxDirtyPagesPctLwm : public ObNumericSysVar { public: ObSysVarInnodbMaxDirtyPagesPctLwm() : ObNumericSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MAX_DIRTY_PAGES_PCT_LWM; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(214); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(215); } }; class ObSysVarInnodbMaxPurgeLag : public ObIntSysVar { public: ObSysVarInnodbMaxPurgeLag() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MAX_PURGE_LAG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(215); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(216); } }; class ObSysVarInnodbMaxPurgeLagDelay : public ObIntSysVar { public: ObSysVarInnodbMaxPurgeLagDelay() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MAX_PURGE_LAG_DELAY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(216); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(217); } }; class ObSysVarHaveSymlink : public ObEnumSysVar { @@ -1613,7 +1620,7 @@ class ObSysVarHaveSymlink : public ObEnumSysVar public: ObSysVarHaveSymlink() : ObEnumSysVar(HAVE_SYMLINK_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_HAVE_SYMLINK; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(217); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(218); } }; class ObSysVarIgnoreBuiltinInnodb : public ObEnumSysVar { @@ -1622,21 +1629,21 @@ class ObSysVarIgnoreBuiltinInnodb : public ObEnumSysVar public: ObSysVarIgnoreBuiltinInnodb() : ObEnumSysVar(IGNORE_BUILTIN_INNODB_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_IGNORE_BUILTIN_INNODB; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(218); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(219); } }; class ObSysVarInnodbBufferPoolChunkSize : public ObIntSysVar { public: ObSysVarInnodbBufferPoolChunkSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_CHUNK_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(219); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(220); } }; class ObSysVarInnodbBufferPoolInstances : public ObIntSysVar { public: ObSysVarInnodbBufferPoolInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(220); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(221); } }; class ObSysVarInnodbBufferPoolLoadAtStartup : public ObEnumSysVar { @@ -1645,7 +1652,7 @@ class ObSysVarInnodbBufferPoolLoadAtStartup : public ObEnumSysVar public: ObSysVarInnodbBufferPoolLoadAtStartup() : ObEnumSysVar(INNODB_BUFFER_POOL_LOAD_AT_STARTUP_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_BUFFER_POOL_LOAD_AT_STARTUP; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(221); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(222); } }; class ObSysVarInnodbChecksums : public ObEnumSysVar { @@ -1654,7 +1661,7 @@ class ObSysVarInnodbChecksums : public ObEnumSysVar public: ObSysVarInnodbChecksums() : ObEnumSysVar(INNODB_CHECKSUMS_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_CHECKSUMS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(222); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(223); } }; class ObSysVarInnodbDoublewrite : public ObEnumSysVar { @@ -1663,7 +1670,7 @@ class ObSysVarInnodbDoublewrite : public ObEnumSysVar public: ObSysVarInnodbDoublewrite() : ObEnumSysVar(INNODB_DOUBLEWRITE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_DOUBLEWRITE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(223); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(224); } }; class ObSysVarInnodbFileFormatCheck : public ObEnumSysVar { @@ -1672,7 +1679,7 @@ class ObSysVarInnodbFileFormatCheck : public ObEnumSysVar public: ObSysVarInnodbFileFormatCheck() : ObEnumSysVar(INNODB_FILE_FORMAT_CHECK_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FILE_FORMAT_CHECK; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(224); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(225); } }; class ObSysVarInnodbFlushMethod : public ObEnumSysVar { @@ -1681,7 +1688,7 @@ class ObSysVarInnodbFlushMethod : public ObEnumSysVar public: ObSysVarInnodbFlushMethod() : ObEnumSysVar(INNODB_FLUSH_METHOD_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FLUSH_METHOD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(225); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(226); } }; class ObSysVarInnodbForceLoadCorrupted : public ObEnumSysVar { @@ -1690,7 +1697,7 @@ class ObSysVarInnodbForceLoadCorrupted : public ObEnumSysVar public: ObSysVarInnodbForceLoadCorrupted() : ObEnumSysVar(INNODB_FORCE_LOAD_CORRUPTED_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FORCE_LOAD_CORRUPTED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(226); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(227); } }; class ObSysVarInnodbPageSize : public ObEnumSysVar { @@ -1699,7 +1706,7 @@ class ObSysVarInnodbPageSize : public ObEnumSysVar public: ObSysVarInnodbPageSize() : ObEnumSysVar(INNODB_PAGE_SIZE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_PAGE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(227); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(228); } }; class ObSysVarInnodbVersion : public ObEnumSysVar { @@ -1708,42 +1715,42 @@ class ObSysVarInnodbVersion : public ObEnumSysVar public: ObSysVarInnodbVersion() : ObEnumSysVar(INNODB_VERSION_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_VERSION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(228); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(229); } }; class ObSysVarMyisamMmapSize : public ObIntSysVar { public: ObSysVarMyisamMmapSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYISAM_MMAP_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(229); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(230); } }; class ObSysVarTableOpenCacheInstances : public ObIntSysVar { public: ObSysVarTableOpenCacheInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_TABLE_OPEN_CACHE_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(230); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(231); } }; class ObSysVarGtidExecuted : public ObVarcharSysVar { public: ObSysVarGtidExecuted() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GTID_EXECUTED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(231); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(232); } }; class ObSysVarGtidOwned : public ObVarcharSysVar { public: ObSysVarGtidOwned() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GTID_OWNED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(232); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(233); } }; class ObSysVarInnodbRollbackOnTimeout : public ObBoolSysVar { public: ObSysVarInnodbRollbackOnTimeout() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_ROLLBACK_ON_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(233); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(234); } }; class ObSysVarCompletionType : public ObEnumSysVar { @@ -1752,7 +1759,7 @@ class ObSysVarCompletionType : public ObEnumSysVar public: ObSysVarCompletionType() : ObEnumSysVar(COMPLETION_TYPE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_COMPLETION_TYPE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(234); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(235); } }; class ObSysVarEnforceGtidConsistency : public ObEnumSysVar { @@ -1761,14 +1768,14 @@ class ObSysVarEnforceGtidConsistency : public ObEnumSysVar public: ObSysVarEnforceGtidConsistency() : ObEnumSysVar(ENFORCE_GTID_CONSISTENCY_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_ENFORCE_GTID_CONSISTENCY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(235); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(236); } }; class ObSysVarGtidExecutedCompressionPeriod : public ObIntSysVar { public: ObSysVarGtidExecutedCompressionPeriod() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GTID_EXECUTED_COMPRESSION_PERIOD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(236); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(237); } }; class ObSysVarGtidMode : public ObEnumSysVar { @@ -1777,7 +1784,7 @@ class ObSysVarGtidMode : public ObEnumSysVar public: ObSysVarGtidMode() : ObEnumSysVar(GTID_MODE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GTID_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(237); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(238); } }; class ObSysVarGtidNext : public ObEnumSysVar { @@ -1786,28 +1793,28 @@ class ObSysVarGtidNext : public ObEnumSysVar public: ObSysVarGtidNext() : ObEnumSysVar(GTID_NEXT_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GTID_NEXT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(238); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(239); } }; class ObSysVarGtidPurged : public ObVarcharSysVar { public: ObSysVarGtidPurged() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GTID_PURGED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(239); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(240); } }; class ObSysVarInnodbApiBkCommitInterval : public ObIntSysVar { public: ObSysVarInnodbApiBkCommitInterval() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_API_BK_COMMIT_INTERVAL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(240); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(241); } }; class ObSysVarInnodbApiTrxLevel : public ObIntSysVar { public: ObSysVarInnodbApiTrxLevel() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_API_TRX_LEVEL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(241); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(242); } }; class ObSysVarSessionTrackGtids : public ObEnumSysVar { @@ -1816,7 +1823,7 @@ class ObSysVarSessionTrackGtids : public ObEnumSysVar public: ObSysVarSessionTrackGtids() : ObEnumSysVar(SESSION_TRACK_GTIDS_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SESSION_TRACK_GTIDS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(242); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(243); } }; class ObSysVarSessionTrackTransactionInfo : public ObEnumSysVar { @@ -1825,28 +1832,28 @@ class ObSysVarSessionTrackTransactionInfo : public ObEnumSysVar public: ObSysVarSessionTrackTransactionInfo() : ObEnumSysVar(SESSION_TRACK_TRANSACTION_INFO_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SESSION_TRACK_TRANSACTION_INFO; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(243); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(244); } }; class ObSysVarTransactionAllocBlockSize : public ObIntSysVar { public: ObSysVarTransactionAllocBlockSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_TRANSACTION_ALLOC_BLOCK_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(244); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(245); } }; class ObSysVarTransactionAllowBatching : public ObBoolSysVar { public: ObSysVarTransactionAllowBatching() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_TRANSACTION_ALLOW_BATCHING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(245); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(246); } }; class ObSysVarTransactionPreallocSize : public ObIntSysVar { public: ObSysVarTransactionPreallocSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_TRANSACTION_PREALLOC_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(246); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(247); } }; class ObSysVarTransactionWriteSetExtraction : public ObEnumSysVar { @@ -1855,63 +1862,63 @@ class ObSysVarTransactionWriteSetExtraction : public ObEnumSysVar public: ObSysVarTransactionWriteSetExtraction() : ObEnumSysVar(TRANSACTION_WRITE_SET_EXTRACTION_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_TRANSACTION_WRITE_SET_EXTRACTION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(247); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(248); } }; class ObSysVarInformationSchemaStatsExpiry : public ObIntSysVar { public: ObSysVarInformationSchemaStatsExpiry() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INFORMATION_SCHEMA_STATS_EXPIRY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(248); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(249); } }; class ObSysVarGroupReplicationAllowLocalDisjointGtidsJoin : public ObBoolSysVar { public: ObSysVarGroupReplicationAllowLocalDisjointGtidsJoin() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_DISJOINT_GTIDS_JOIN; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(249); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(250); } }; class ObSysVarGroupReplicationAllowLocalLowerVersionJoin : public ObBoolSysVar { public: ObSysVarGroupReplicationAllowLocalLowerVersionJoin() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_ALLOW_LOCAL_LOWER_VERSION_JOIN; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(250); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(251); } }; class ObSysVarGroupReplicationAutoIncrementIncrement : public ObIntSysVar { public: ObSysVarGroupReplicationAutoIncrementIncrement() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_AUTO_INCREMENT_INCREMENT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(251); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(252); } }; class ObSysVarGroupReplicationBootstrapGroup : public ObBoolSysVar { public: ObSysVarGroupReplicationBootstrapGroup() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_BOOTSTRAP_GROUP; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(252); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(253); } }; class ObSysVarGroupReplicationComponentsStopTimeout : public ObIntSysVar { public: ObSysVarGroupReplicationComponentsStopTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_COMPONENTS_STOP_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(253); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(254); } }; class ObSysVarGroupReplicationCompressionThreshold : public ObIntSysVar { public: ObSysVarGroupReplicationCompressionThreshold() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_COMPRESSION_THRESHOLD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(254); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(255); } }; class ObSysVarGroupReplicationEnforceUpdateEverywhereChecks : public ObBoolSysVar { public: ObSysVarGroupReplicationEnforceUpdateEverywhereChecks() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_ENFORCE_UPDATE_EVERYWHERE_CHECKS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(255); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(256); } }; class ObSysVarGroupReplicationExitStateAction : public ObEnumSysVar { @@ -1920,21 +1927,21 @@ class ObSysVarGroupReplicationExitStateAction : public ObEnumSysVar public: ObSysVarGroupReplicationExitStateAction() : ObEnumSysVar(GROUP_REPLICATION_EXIT_STATE_ACTION_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_EXIT_STATE_ACTION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(256); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(257); } }; class ObSysVarGroupReplicationFlowControlApplierThreshold : public ObIntSysVar { public: ObSysVarGroupReplicationFlowControlApplierThreshold() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_APPLIER_THRESHOLD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(257); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(258); } }; class ObSysVarGroupReplicationFlowControlCertifierThreshold : public ObIntSysVar { public: ObSysVarGroupReplicationFlowControlCertifierThreshold() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_CERTIFIER_THRESHOLD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(258); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(259); } }; class ObSysVarGroupReplicationFlowControlMode : public ObEnumSysVar { @@ -1943,56 +1950,56 @@ class ObSysVarGroupReplicationFlowControlMode : public ObEnumSysVar public: ObSysVarGroupReplicationFlowControlMode() : ObEnumSysVar(GROUP_REPLICATION_FLOW_CONTROL_MODE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_FLOW_CONTROL_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(259); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(260); } }; class ObSysVarGroupReplicationForceMembers : public ObVarcharSysVar { public: ObSysVarGroupReplicationForceMembers() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_FORCE_MEMBERS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(260); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(261); } }; class ObSysVarGroupReplicationGroupName : public ObVarcharSysVar { public: ObSysVarGroupReplicationGroupName() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_GROUP_NAME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(261); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(262); } }; class ObSysVarGroupReplicationGtidAssignmentBlockSize : public ObVarcharSysVar { public: ObSysVarGroupReplicationGtidAssignmentBlockSize() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_GTID_ASSIGNMENT_BLOCK_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(262); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(263); } }; class ObSysVarGroupReplicationIpWhitelist : public ObVarcharSysVar { public: ObSysVarGroupReplicationIpWhitelist() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_IP_WHITELIST; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(263); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(264); } }; class ObSysVarGroupReplicationLocalAddress : public ObVarcharSysVar { public: ObSysVarGroupReplicationLocalAddress() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_LOCAL_ADDRESS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(264); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(265); } }; class ObSysVarGroupReplicationMemberWeight : public ObIntSysVar { public: ObSysVarGroupReplicationMemberWeight() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_MEMBER_WEIGHT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(265); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(266); } }; class ObSysVarGroupReplicationPollSpinLoops : public ObIntSysVar { public: ObSysVarGroupReplicationPollSpinLoops() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_POLL_SPIN_LOOPS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(266); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(267); } }; class ObSysVarGroupReplicationRecoveryCompleteAt : public ObEnumSysVar { @@ -2001,91 +2008,91 @@ class ObSysVarGroupReplicationRecoveryCompleteAt : public ObEnumSysVar public: ObSysVarGroupReplicationRecoveryCompleteAt() : ObEnumSysVar(GROUP_REPLICATION_RECOVERY_COMPLETE_AT_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_COMPLETE_AT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(267); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(268); } }; class ObSysVarGroupReplicationRecoveryReconnectInterval : public ObIntSysVar { public: ObSysVarGroupReplicationRecoveryReconnectInterval() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_RECONNECT_INTERVAL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(268); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(269); } }; class ObSysVarGroupReplicationRecoveryRetryCount : public ObIntSysVar { public: ObSysVarGroupReplicationRecoveryRetryCount() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_RETRY_COUNT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(269); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(270); } }; class ObSysVarGroupReplicationRecoverySslCa : public ObVarcharSysVar { public: ObSysVarGroupReplicationRecoverySslCa() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CA; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(270); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(271); } }; class ObSysVarGroupReplicationRecoverySslCapath : public ObVarcharSysVar { public: ObSysVarGroupReplicationRecoverySslCapath() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CAPATH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(271); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(272); } }; class ObSysVarGroupReplicationRecoverySslCert : public ObVarcharSysVar { public: ObSysVarGroupReplicationRecoverySslCert() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CERT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(272); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(273); } }; class ObSysVarGroupReplicationRecoverySslCipher : public ObVarcharSysVar { public: ObSysVarGroupReplicationRecoverySslCipher() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CIPHER; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(273); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(274); } }; class ObSysVarGroupReplicationRecoverySslCrl : public ObVarcharSysVar { public: ObSysVarGroupReplicationRecoverySslCrl() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(274); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(275); } }; class ObSysVarGroupReplicationRecoverySslCrlpath : public ObVarcharSysVar { public: ObSysVarGroupReplicationRecoverySslCrlpath() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_CRLPATH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(275); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(276); } }; class ObSysVarGroupReplicationRecoverySslKey : public ObVarcharSysVar { public: ObSysVarGroupReplicationRecoverySslKey() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_KEY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(276); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(277); } }; class ObSysVarGroupReplicationRecoverySslVerifyServerCert : public ObBoolSysVar { public: ObSysVarGroupReplicationRecoverySslVerifyServerCert() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_SSL_VERIFY_SERVER_CERT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(277); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(278); } }; class ObSysVarGroupReplicationRecoveryUseSsl : public ObBoolSysVar { public: ObSysVarGroupReplicationRecoveryUseSsl() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_RECOVERY_USE_SSL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(278); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(279); } }; class ObSysVarGroupReplicationSinglePrimaryMode : public ObBoolSysVar { public: ObSysVarGroupReplicationSinglePrimaryMode() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_SINGLE_PRIMARY_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(279); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(280); } }; class ObSysVarGroupReplicationSslMode : public ObEnumSysVar { @@ -2094,63 +2101,63 @@ class ObSysVarGroupReplicationSslMode : public ObEnumSysVar public: ObSysVarGroupReplicationSslMode() : ObEnumSysVar(GROUP_REPLICATION_SSL_MODE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_SSL_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(280); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(281); } }; class ObSysVarGroupReplicationStartOnBoot : public ObBoolSysVar { public: ObSysVarGroupReplicationStartOnBoot() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_START_ON_BOOT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(281); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(282); } }; class ObSysVarGroupReplicationTransactionSizeLimit : public ObIntSysVar { public: ObSysVarGroupReplicationTransactionSizeLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_TRANSACTION_SIZE_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(282); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(283); } }; class ObSysVarGroupReplicationUnreachableMajorityTimeout : public ObIntSysVar { public: ObSysVarGroupReplicationUnreachableMajorityTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_UNREACHABLE_MAJORITY_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(283); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(284); } }; class ObSysVarInnodbReplicationDelay : public ObIntSysVar { public: ObSysVarInnodbReplicationDelay() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_REPLICATION_DELAY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(284); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(285); } }; class ObSysVarMasterInfoRepository : public ObVarcharSysVar { public: ObSysVarMasterInfoRepository() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MASTER_INFO_REPOSITORY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(285); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(286); } }; class ObSysVarMasterVerifyChecksum : public ObBoolSysVar { public: ObSysVarMasterVerifyChecksum() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MASTER_VERIFY_CHECKSUM; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(286); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(287); } }; class ObSysVarPseudoSlaveMode : public ObBoolSysVar { public: ObSysVarPseudoSlaveMode() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PSEUDO_SLAVE_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(287); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(288); } }; class ObSysVarPseudoThreadId : public ObIntSysVar { public: ObSysVarPseudoThreadId() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PSEUDO_THREAD_ID; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(288); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(289); } }; class ObSysVarRbrExecMode : public ObEnumSysVar { @@ -2159,56 +2166,56 @@ class ObSysVarRbrExecMode : public ObEnumSysVar public: ObSysVarRbrExecMode() : ObEnumSysVar(RBR_EXEC_MODE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RBR_EXEC_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(289); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(290); } }; class ObSysVarReplicationOptimizeForStaticPluginConfig : public ObBoolSysVar { public: ObSysVarReplicationOptimizeForStaticPluginConfig() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_REPLICATION_OPTIMIZE_FOR_STATIC_PLUGIN_CONFIG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(290); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(291); } }; class ObSysVarReplicationSenderObserveCommitOnly : public ObBoolSysVar { public: ObSysVarReplicationSenderObserveCommitOnly() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_REPLICATION_SENDER_OBSERVE_COMMIT_ONLY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(291); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(292); } }; class ObSysVarRplSemiSyncMasterEnabled : public ObBoolSysVar { public: ObSysVarRplSemiSyncMasterEnabled() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RPL_SEMI_SYNC_MASTER_ENABLED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(292); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(293); } }; class ObSysVarRplSemiSyncMasterTimeout : public ObIntSysVar { public: ObSysVarRplSemiSyncMasterTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RPL_SEMI_SYNC_MASTER_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(293); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(294); } }; class ObSysVarRplSemiSyncMasterTraceLevel : public ObIntSysVar { public: ObSysVarRplSemiSyncMasterTraceLevel() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RPL_SEMI_SYNC_MASTER_TRACE_LEVEL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(294); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(295); } }; class ObSysVarRplSemiSyncMasterWaitForSlaveCount : public ObIntSysVar { public: ObSysVarRplSemiSyncMasterWaitForSlaveCount() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_FOR_SLAVE_COUNT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(295); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(296); } }; class ObSysVarRplSemiSyncMasterWaitNoSlave : public ObBoolSysVar { public: ObSysVarRplSemiSyncMasterWaitNoSlave() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_NO_SLAVE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(296); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(297); } }; class ObSysVarRplSemiSyncMasterWaitPoint : public ObEnumSysVar { @@ -2217,56 +2224,56 @@ class ObSysVarRplSemiSyncMasterWaitPoint : public ObEnumSysVar public: ObSysVarRplSemiSyncMasterWaitPoint() : ObEnumSysVar(RPL_SEMI_SYNC_MASTER_WAIT_POINT_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RPL_SEMI_SYNC_MASTER_WAIT_POINT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(297); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(298); } }; class ObSysVarRplSemiSyncSlaveEnabled : public ObBoolSysVar { public: ObSysVarRplSemiSyncSlaveEnabled() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RPL_SEMI_SYNC_SLAVE_ENABLED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(298); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(299); } }; class ObSysVarRplSemiSyncSlaveTraceLevel : public ObIntSysVar { public: ObSysVarRplSemiSyncSlaveTraceLevel() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RPL_SEMI_SYNC_SLAVE_TRACE_LEVEL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(299); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(300); } }; class ObSysVarRplStopSlaveTimeout : public ObIntSysVar { public: ObSysVarRplStopSlaveTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RPL_STOP_SLAVE_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(300); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(301); } }; class ObSysVarSlaveAllowBatching : public ObBoolSysVar { public: ObSysVarSlaveAllowBatching() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_ALLOW_BATCHING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(301); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(302); } }; class ObSysVarSlaveCheckpointGroup : public ObIntSysVar { public: ObSysVarSlaveCheckpointGroup() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_CHECKPOINT_GROUP; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(302); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(303); } }; class ObSysVarSlaveCheckpointPeriod : public ObIntSysVar { public: ObSysVarSlaveCheckpointPeriod() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_CHECKPOINT_PERIOD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(303); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(304); } }; class ObSysVarSlaveCompressedProtocol : public ObBoolSysVar { public: ObSysVarSlaveCompressedProtocol() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_COMPRESSED_PROTOCOL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(304); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(305); } }; class ObSysVarSlaveExecMode : public ObEnumSysVar { @@ -2275,21 +2282,21 @@ class ObSysVarSlaveExecMode : public ObEnumSysVar public: ObSysVarSlaveExecMode() : ObEnumSysVar(SLAVE_EXEC_MODE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_EXEC_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(305); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(306); } }; class ObSysVarSlaveMaxAllowedPacket : public ObIntSysVar { public: ObSysVarSlaveMaxAllowedPacket() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_MAX_ALLOWED_PACKET; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(306); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(307); } }; class ObSysVarSlaveNetTimeout : public ObIntSysVar { public: ObSysVarSlaveNetTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_NET_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(307); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(308); } }; class ObSysVarSlaveParallelType : public ObEnumSysVar { @@ -2298,245 +2305,245 @@ class ObSysVarSlaveParallelType : public ObEnumSysVar public: ObSysVarSlaveParallelType() : ObEnumSysVar(SLAVE_PARALLEL_TYPE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_PARALLEL_TYPE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(308); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(309); } }; class ObSysVarSlaveParallelWorkers : public ObIntSysVar { public: ObSysVarSlaveParallelWorkers() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_PARALLEL_WORKERS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(309); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(310); } }; class ObSysVarSlavePendingJobsSizeMax : public ObIntSysVar { public: ObSysVarSlavePendingJobsSizeMax() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_PENDING_JOBS_SIZE_MAX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(310); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(311); } }; class ObSysVarSlavePreserveCommitOrder : public ObBoolSysVar { public: ObSysVarSlavePreserveCommitOrder() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_PRESERVE_COMMIT_ORDER; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(311); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(312); } }; class ObSysVarSlaveSqlVerifyChecksum : public ObBoolSysVar { public: ObSysVarSlaveSqlVerifyChecksum() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_SQL_VERIFY_CHECKSUM; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(312); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(313); } }; class ObSysVarSlaveTransactionRetries : public ObIntSysVar { public: ObSysVarSlaveTransactionRetries() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_TRANSACTION_RETRIES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(313); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(314); } }; class ObSysVarSqlSlaveSkipCounter : public ObIntSysVar { public: ObSysVarSqlSlaveSkipCounter() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SQL_SLAVE_SKIP_COUNTER; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(314); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(315); } }; class ObSysVarInnodbForceRecovery : public ObIntSysVar { public: ObSysVarInnodbForceRecovery() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FORCE_RECOVERY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(315); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(316); } }; class ObSysVarSkipSlaveStart : public ObBoolSysVar { public: ObSysVarSkipSlaveStart() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SKIP_SLAVE_START; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(316); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(317); } }; class ObSysVarSlaveLoadTmpdir : public ObVarcharSysVar { public: ObSysVarSlaveLoadTmpdir() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_LOAD_TMPDIR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(317); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(318); } }; class ObSysVarSlaveSkipErrors : public ObVarcharSysVar { public: ObSysVarSlaveSkipErrors() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_SKIP_ERRORS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(318); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(319); } }; class ObSysVarInnodbSyncDebug : public ObBoolSysVar { public: ObSysVarInnodbSyncDebug() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_SYNC_DEBUG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(319); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(320); } }; class ObSysVarDefaultCollationForUtf8mb4 : public ObCharsetSysVar { public: ObSysVarDefaultCollationForUtf8mb4() : ObCharsetSysVar(ObSysVarOnCheckFuncs::check_default_value_for_utf8mb4, NULL, ObSysVarToObjFuncs::to_obj_collation, ObSysVarToStrFuncs::to_str_collation, ObSysVarGetMetaTypeFuncs::get_meta_type_varchar) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DEFAULT_COLLATION_FOR_UTF8MB4; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(320); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(321); } }; class ObSysVarInsertId : public ObIntSysVar { public: ObSysVarInsertId() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INSERT_ID; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(321); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(322); } }; class ObSysVarJoinBufferSize : public ObIntSysVar { public: ObSysVarJoinBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_JOIN_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(322); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(323); } }; class ObSysVarMaxJoinSize : public ObIntSysVar { public: ObSysVarMaxJoinSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_JOIN_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(323); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(324); } }; class ObSysVarMaxLengthForSortData : public ObIntSysVar { public: ObSysVarMaxLengthForSortData() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_LENGTH_FOR_SORT_DATA; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(324); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(325); } }; class ObSysVarMaxPreparedStmtCount : public ObIntSysVar { public: ObSysVarMaxPreparedStmtCount() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_PREPARED_STMT_COUNT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(325); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(326); } }; class ObSysVarMaxSortLength : public ObIntSysVar { public: ObSysVarMaxSortLength() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_SORT_LENGTH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(326); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(327); } }; class ObSysVarMinExaminedRowLimit : public ObIntSysVar { public: ObSysVarMinExaminedRowLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MIN_EXAMINED_ROW_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(327); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(328); } }; class ObSysVarMultiRangeCount : public ObIntSysVar { public: ObSysVarMultiRangeCount() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MULTI_RANGE_COUNT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(328); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(329); } }; class ObSysVarMysqlxConnectTimeout : public ObIntSysVar { public: ObSysVarMysqlxConnectTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_CONNECT_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(329); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(330); } }; class ObSysVarMysqlxIdleWorkerThreadTimeout : public ObIntSysVar { public: ObSysVarMysqlxIdleWorkerThreadTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_IDLE_WORKER_THREAD_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(330); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(331); } }; class ObSysVarMysqlxMaxAllowedPacket : public ObIntSysVar { public: ObSysVarMysqlxMaxAllowedPacket() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_MAX_ALLOWED_PACKET; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(331); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(332); } }; class ObSysVarMysqlxMaxConnections : public ObIntSysVar { public: ObSysVarMysqlxMaxConnections() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_MAX_CONNECTIONS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(332); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(333); } }; class ObSysVarMysqlxMinWorkerThreads : public ObIntSysVar { public: ObSysVarMysqlxMinWorkerThreads() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_MIN_WORKER_THREADS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(333); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(334); } }; class ObSysVarPerformanceSchemaShowProcesslist : public ObBoolSysVar { public: ObSysVarPerformanceSchemaShowProcesslist() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_SHOW_PROCESSLIST; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(334); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(335); } }; class ObSysVarQueryAllocBlockSize : public ObIntSysVar { public: ObSysVarQueryAllocBlockSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_QUERY_ALLOC_BLOCK_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(335); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(336); } }; class ObSysVarQueryPreallocSize : public ObIntSysVar { public: ObSysVarQueryPreallocSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_QUERY_PREALLOC_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(336); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(337); } }; class ObSysVarSlowQueryLog : public ObIntSysVar { public: ObSysVarSlowQueryLog() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLOW_QUERY_LOG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(337); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(338); } }; class ObSysVarSlowQueryLogFile : public ObVarcharSysVar { public: ObSysVarSlowQueryLogFile() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLOW_QUERY_LOG_FILE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(338); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(339); } }; class ObSysVarSortBufferSize : public ObIntSysVar { public: ObSysVarSortBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SORT_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(339); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(340); } }; class ObSysVarSqlBufferResult : public ObIntSysVar { public: ObSysVarSqlBufferResult() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SQL_BUFFER_RESULT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(340); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(341); } }; class ObSysVarBinlogCacheSize : public ObIntSysVar { public: ObSysVarBinlogCacheSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_CACHE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(341); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(342); } }; class ObSysVarBinlogDirectNonTransactionalUpdates : public ObIntSysVar { public: ObSysVarBinlogDirectNonTransactionalUpdates() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_DIRECT_NON_TRANSACTIONAL_UPDATES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(342); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(343); } }; class ObSysVarBinlogErrorAction : public ObEnumSysVar { @@ -2545,49 +2552,49 @@ class ObSysVarBinlogErrorAction : public ObEnumSysVar public: ObSysVarBinlogErrorAction() : ObEnumSysVar(BINLOG_ERROR_ACTION_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_ERROR_ACTION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(343); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(344); } }; class ObSysVarBinlogGroupCommitSyncDelay : public ObIntSysVar { public: ObSysVarBinlogGroupCommitSyncDelay() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_DELAY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(344); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(345); } }; class ObSysVarBinlogGroupCommitSyncNoDelayCount : public ObIntSysVar { public: ObSysVarBinlogGroupCommitSyncNoDelayCount() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_GROUP_COMMIT_SYNC_NO_DELAY_COUNT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(345); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(346); } }; class ObSysVarBinlogMaxFlushQueueTime : public ObIntSysVar { public: ObSysVarBinlogMaxFlushQueueTime() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_MAX_FLUSH_QUEUE_TIME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(346); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(347); } }; class ObSysVarBinlogOrderCommits : public ObIntSysVar { public: ObSysVarBinlogOrderCommits() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_ORDER_COMMITS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(347); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(348); } }; class ObSysVarBinlogStmtCacheSize : public ObIntSysVar { public: ObSysVarBinlogStmtCacheSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_STMT_CACHE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(348); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(349); } }; class ObSysVarBinlogTransactionDependencyHistorySize : public ObIntSysVar { public: ObSysVarBinlogTransactionDependencyHistorySize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_HISTORY_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(349); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(350); } }; class ObSysVarBinlogTransactionDependencyTracking : public ObEnumSysVar { @@ -2596,336 +2603,336 @@ class ObSysVarBinlogTransactionDependencyTracking : public ObEnumSysVar public: ObSysVarBinlogTransactionDependencyTracking() : ObEnumSysVar(BINLOG_TRANSACTION_DEPENDENCY_TRACKING_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_TRANSACTION_DEPENDENCY_TRACKING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(350); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(351); } }; class ObSysVarExpireLogsDays : public ObIntSysVar { public: ObSysVarExpireLogsDays() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_EXPIRE_LOGS_DAYS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(351); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(352); } }; class ObSysVarInnodbFlushLogAtTimeout : public ObIntSysVar { public: ObSysVarInnodbFlushLogAtTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FLUSH_LOG_AT_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(352); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(353); } }; class ObSysVarInnodbFlushLogAtTrxCommit : public ObIntSysVar { public: ObSysVarInnodbFlushLogAtTrxCommit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FLUSH_LOG_AT_TRX_COMMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(353); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(354); } }; class ObSysVarInnodbLogCheckpointNow : public ObBoolSysVar { public: ObSysVarInnodbLogCheckpointNow() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOG_CHECKPOINT_NOW; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(354); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(355); } }; class ObSysVarInnodbLogChecksums : public ObIntSysVar { public: ObSysVarInnodbLogChecksums() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOG_CHECKSUMS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(355); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(356); } }; class ObSysVarInnodbLogCompressedPages : public ObIntSysVar { public: ObSysVarInnodbLogCompressedPages() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOG_COMPRESSED_PAGES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(356); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(357); } }; class ObSysVarInnodbLogWriteAheadSize : public ObIntSysVar { public: ObSysVarInnodbLogWriteAheadSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOG_WRITE_AHEAD_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(357); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(358); } }; class ObSysVarInnodbMaxUndoLogSize : public ObIntSysVar { public: ObSysVarInnodbMaxUndoLogSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MAX_UNDO_LOG_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(358); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(359); } }; class ObSysVarInnodbOnlineAlterLogMaxSize : public ObIntSysVar { public: ObSysVarInnodbOnlineAlterLogMaxSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_ONLINE_ALTER_LOG_MAX_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(359); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(360); } }; class ObSysVarInnodbUndoLogTruncate : public ObIntSysVar { public: ObSysVarInnodbUndoLogTruncate() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_UNDO_LOG_TRUNCATE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(360); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(361); } }; class ObSysVarInnodbUndoLogs : public ObIntSysVar { public: ObSysVarInnodbUndoLogs() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_UNDO_LOGS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(361); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(362); } }; class ObSysVarLogBinTrustFunctionCreators : public ObIntSysVar { public: ObSysVarLogBinTrustFunctionCreators() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_BIN_TRUST_FUNCTION_CREATORS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(362); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(363); } }; class ObSysVarLogBinUseV1RowEvents : public ObIntSysVar { public: ObSysVarLogBinUseV1RowEvents() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_BIN_USE_V1_ROW_EVENTS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(363); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(364); } }; class ObSysVarLogBuiltinAsIdentifiedByPassword : public ObIntSysVar { public: ObSysVarLogBuiltinAsIdentifiedByPassword() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_BUILTIN_AS_IDENTIFIED_BY_PASSWORD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(364); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(365); } }; class ObSysVarMaxBinlogCacheSize : public ObIntSysVar { public: ObSysVarMaxBinlogCacheSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_BINLOG_CACHE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(365); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(366); } }; class ObSysVarMaxBinlogSize : public ObIntSysVar { public: ObSysVarMaxBinlogSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_BINLOG_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(366); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(367); } }; class ObSysVarMaxBinlogStmtCacheSize : public ObIntSysVar { public: ObSysVarMaxBinlogStmtCacheSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_BINLOG_STMT_CACHE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(367); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(368); } }; class ObSysVarMaxRelayLogSize : public ObIntSysVar { public: ObSysVarMaxRelayLogSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_RELAY_LOG_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(368); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(369); } }; class ObSysVarRelayLogInfoRepository : public ObVarcharSysVar { public: ObSysVarRelayLogInfoRepository() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RELAY_LOG_INFO_REPOSITORY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(369); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(370); } }; class ObSysVarRelayLogPurge : public ObIntSysVar { public: ObSysVarRelayLogPurge() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RELAY_LOG_PURGE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(370); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(371); } }; class ObSysVarSyncBinlog : public ObIntSysVar { public: ObSysVarSyncBinlog() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SYNC_BINLOG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(371); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(372); } }; class ObSysVarSyncRelayLog : public ObIntSysVar { public: ObSysVarSyncRelayLog() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SYNC_RELAY_LOG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(372); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(373); } }; class ObSysVarSyncRelayLogInfo : public ObIntSysVar { public: ObSysVarSyncRelayLogInfo() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SYNC_RELAY_LOG_INFO; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(373); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(374); } }; class ObSysVarInnodbDeadlockDetect : public ObIntSysVar { public: ObSysVarInnodbDeadlockDetect() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_DEADLOCK_DETECT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(374); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(375); } }; class ObSysVarInnodbLockWaitTimeout : public ObIntSysVar { public: ObSysVarInnodbLockWaitTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOCK_WAIT_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(375); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(376); } }; class ObSysVarInnodbPrintAllDeadlocks : public ObIntSysVar { public: ObSysVarInnodbPrintAllDeadlocks() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_PRINT_ALL_DEADLOCKS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(376); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(377); } }; class ObSysVarInnodbTableLocks : public ObIntSysVar { public: ObSysVarInnodbTableLocks() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_TABLE_LOCKS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(377); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(378); } }; class ObSysVarMaxWriteLockCount : public ObIntSysVar { public: ObSysVarMaxWriteLockCount() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_WRITE_LOCK_COUNT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(378); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(379); } }; class ObSysVarObEnableRoleIds : public ObVarcharSysVar { public: ObSysVarObEnableRoleIds() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR__OB_ENABLE_ROLE_IDS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(379); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(380); } }; class ObSysVarInnodbReadOnly : public ObBoolSysVar { public: ObSysVarInnodbReadOnly() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_READ_ONLY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(380); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(381); } }; class ObSysVarInnodbApiDisableRowlock : public ObBoolSysVar { public: ObSysVarInnodbApiDisableRowlock() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_API_DISABLE_ROWLOCK; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(381); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(382); } }; class ObSysVarInnodbAutoincLockMode : public ObIntSysVar { public: ObSysVarInnodbAutoincLockMode() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_AUTOINC_LOCK_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(382); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(383); } }; class ObSysVarSkipExternalLocking : public ObBoolSysVar { public: ObSysVarSkipExternalLocking() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SKIP_EXTERNAL_LOCKING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(383); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(384); } }; class ObSysVarSuperReadOnly : public ObBoolSysVar { public: ObSysVarSuperReadOnly() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SUPER_READ_ONLY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(384); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(385); } }; class ObSysVarLowPriorityUpdates : public ObBoolSysVar { public: ObSysVarLowPriorityUpdates() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOW_PRIORITY_UPDATES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(385); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(386); } }; class ObSysVarMaxErrorCount : public ObIntSysVar { public: ObSysVarMaxErrorCount() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_ERROR_COUNT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(386); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(387); } }; class ObSysVarMaxInsertDelayedThreads : public ObIntSysVar { public: ObSysVarMaxInsertDelayedThreads() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_INSERT_DELAYED_THREADS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(387); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(388); } }; class ObSysVarFtStopwordFile : public ObVarcharSysVar { public: ObSysVarFtStopwordFile() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_FT_STOPWORD_FILE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(388); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(389); } }; class ObSysVarInnodbFtCacheSize : public ObIntSysVar { public: ObSysVarInnodbFtCacheSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FT_CACHE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(389); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(390); } }; class ObSysVarInnodbFtSortPllDegree : public ObIntSysVar { public: ObSysVarInnodbFtSortPllDegree() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FT_SORT_PLL_DEGREE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(390); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(391); } }; class ObSysVarInnodbFtTotalCacheSize : public ObIntSysVar { public: ObSysVarInnodbFtTotalCacheSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FT_TOTAL_CACHE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(391); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(392); } }; class ObSysVarMecabRcFile : public ObVarcharSysVar { public: ObSysVarMecabRcFile() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MECAB_RC_FILE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(392); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(393); } }; class ObSysVarMetadataLocksCacheSize : public ObIntSysVar { public: ObSysVarMetadataLocksCacheSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_METADATA_LOCKS_CACHE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(393); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(394); } }; class ObSysVarMetadataLocksHashInstances : public ObIntSysVar { public: ObSysVarMetadataLocksHashInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_METADATA_LOCKS_HASH_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(394); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(395); } }; class ObSysVarInnodbTempDataFilePath : public ObVarcharSysVar { public: ObSysVarInnodbTempDataFilePath() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_TEMP_DATA_FILE_PATH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(395); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(396); } }; class ObSysVarInnodbDataFilePath : public ObVarcharSysVar { public: ObSysVarInnodbDataFilePath() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_DATA_FILE_PATH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(396); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(397); } }; class ObSysVarInnodbDataHomeDir : public ObVarcharSysVar { public: ObSysVarInnodbDataHomeDir() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_DATA_HOME_DIR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(397); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(398); } }; class ObSysVarDefaultTmpStorageEngine : public ObEnumSysVar { @@ -2934,63 +2941,63 @@ class ObSysVarDefaultTmpStorageEngine : public ObEnumSysVar public: ObSysVarDefaultTmpStorageEngine() : ObEnumSysVar(DEFAULT_TMP_STORAGE_ENGINE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DEFAULT_TMP_STORAGE_ENGINE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(398); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(399); } }; class ObSysVarInnodbFtEnableDiagPrint : public ObBoolSysVar { public: ObSysVarInnodbFtEnableDiagPrint() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FT_ENABLE_DIAG_PRINT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(399); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(400); } }; class ObSysVarInnodbFtNumWordOptimize : public ObIntSysVar { public: ObSysVarInnodbFtNumWordOptimize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FT_NUM_WORD_OPTIMIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(400); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(401); } }; class ObSysVarInnodbFtResultCacheLimit : public ObIntSysVar { public: ObSysVarInnodbFtResultCacheLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FT_RESULT_CACHE_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(401); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(402); } }; class ObSysVarInnodbFtServerStopwordTable : public ObVarcharSysVar { public: ObSysVarInnodbFtServerStopwordTable() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FT_SERVER_STOPWORD_TABLE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(402); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(403); } }; class ObSysVarInnodbOptimizeFulltextOnly : public ObBoolSysVar { public: ObSysVarInnodbOptimizeFulltextOnly() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_OPTIMIZE_FULLTEXT_ONLY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(403); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(404); } }; class ObSysVarMaxTmpTables : public ObIntSysVar { public: ObSysVarMaxTmpTables() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_TMP_TABLES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(404); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(405); } }; class ObSysVarInnodbTmpdir : public ObVarcharSysVar { public: ObSysVarInnodbTmpdir() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_TMPDIR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(405); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(406); } }; class ObSysVarGroupReplicationGroupSeeds : public ObVarcharSysVar { public: ObSysVarGroupReplicationGroupSeeds() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_GROUP_REPLICATION_GROUP_SEEDS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(406); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(407); } }; class ObSysVarSlaveRowsSearchAlgorithms : public ObEnumSysVar { @@ -2999,7 +3006,7 @@ class ObSysVarSlaveRowsSearchAlgorithms : public ObEnumSysVar public: ObSysVarSlaveRowsSearchAlgorithms() : ObEnumSysVar(SLAVE_ROWS_SEARCH_ALGORITHMS_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_ROWS_SEARCH_ALGORITHMS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(407); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(408); } }; class ObSysVarSlaveTypeConversions : public ObEnumSysVar { @@ -3008,63 +3015,63 @@ class ObSysVarSlaveTypeConversions : public ObEnumSysVar public: ObSysVarSlaveTypeConversions() : ObEnumSysVar(SLAVE_TYPE_CONVERSIONS_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLAVE_TYPE_CONVERSIONS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(408); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(409); } }; class ObSysVarObHnswEfSearch : public ObIntSysVar { public: ObSysVarObHnswEfSearch() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OB_HNSW_EF_SEARCH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(409); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(410); } }; class ObSysVarNdbAllowCopyingAlterTable : public ObBoolSysVar { public: ObSysVarNdbAllowCopyingAlterTable() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_ALLOW_COPYING_ALTER_TABLE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(410); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(411); } }; class ObSysVarNdbAutoincrementPrefetchSz : public ObIntSysVar { public: ObSysVarNdbAutoincrementPrefetchSz() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_AUTOINCREMENT_PREFETCH_SZ; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(411); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(412); } }; class ObSysVarNdbBlobReadBatchBytes : public ObIntSysVar { public: ObSysVarNdbBlobReadBatchBytes() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_BLOB_READ_BATCH_BYTES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(412); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(413); } }; class ObSysVarNdbBlobWriteBatchBytes : public ObIntSysVar { public: ObSysVarNdbBlobWriteBatchBytes() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_BLOB_WRITE_BATCH_BYTES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(413); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(414); } }; class ObSysVarNdbCacheCheckTime : public ObIntSysVar { public: ObSysVarNdbCacheCheckTime() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_CACHE_CHECK_TIME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(414); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(415); } }; class ObSysVarNdbClearApplyStatus : public ObBoolSysVar { public: ObSysVarNdbClearApplyStatus() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_CLEAR_APPLY_STATUS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(415); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(416); } }; class ObSysVarNdbDataNodeNeighbour : public ObIntSysVar { public: ObSysVarNdbDataNodeNeighbour() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_DATA_NODE_NEIGHBOUR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(416); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(417); } }; class ObSysVarNdbDefaultColumnFormat : public ObEnumSysVar { @@ -3073,14 +3080,14 @@ class ObSysVarNdbDefaultColumnFormat : public ObEnumSysVar public: ObSysVarNdbDefaultColumnFormat() : ObEnumSysVar(NDB_DEFAULT_COLUMN_FORMAT_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_DEFAULT_COLUMN_FORMAT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(417); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(418); } }; class ObSysVarNdbDeferredConstraints : public ObIntSysVar { public: ObSysVarNdbDeferredConstraints() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_DEFERRED_CONSTRAINTS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(418); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(419); } }; class ObSysVarNdbDistribution : public ObEnumSysVar { @@ -3089,168 +3096,168 @@ class ObSysVarNdbDistribution : public ObEnumSysVar public: ObSysVarNdbDistribution() : ObEnumSysVar(NDB_DISTRIBUTION_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_DISTRIBUTION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(419); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(420); } }; class ObSysVarNdbEventbufferFreePercent : public ObIntSysVar { public: ObSysVarNdbEventbufferFreePercent() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_EVENTBUFFER_FREE_PERCENT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(420); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(421); } }; class ObSysVarNdbEventbufferMaxAlloc : public ObIntSysVar { public: ObSysVarNdbEventbufferMaxAlloc() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_EVENTBUFFER_MAX_ALLOC; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(421); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(422); } }; class ObSysVarNdbExtraLogging : public ObIntSysVar { public: ObSysVarNdbExtraLogging() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_EXTRA_LOGGING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(422); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(423); } }; class ObSysVarNdbForceSend : public ObBoolSysVar { public: ObSysVarNdbForceSend() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_FORCE_SEND; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(423); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(424); } }; class ObSysVarNdbFullyReplicated : public ObBoolSysVar { public: ObSysVarNdbFullyReplicated() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_FULLY_REPLICATED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(424); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(425); } }; class ObSysVarNdbIndexStatEnable : public ObBoolSysVar { public: ObSysVarNdbIndexStatEnable() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_INDEX_STAT_ENABLE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(425); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(426); } }; class ObSysVarNdbIndexStatOption : public ObVarcharSysVar { public: ObSysVarNdbIndexStatOption() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_INDEX_STAT_OPTION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(426); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(427); } }; class ObSysVarNdbJoinPushdown : public ObBoolSysVar { public: ObSysVarNdbJoinPushdown() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_JOIN_PUSHDOWN; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(427); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(428); } }; class ObSysVarNdbLogBinlogIndex : public ObBoolSysVar { public: ObSysVarNdbLogBinlogIndex() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_BINLOG_INDEX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(428); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(429); } }; class ObSysVarNdbLogEmptyEpochs : public ObBoolSysVar { public: ObSysVarNdbLogEmptyEpochs() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_EMPTY_EPOCHS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(429); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(430); } }; class ObSysVarNdbLogEmptyUpdate : public ObBoolSysVar { public: ObSysVarNdbLogEmptyUpdate() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_EMPTY_UPDATE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(430); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(431); } }; class ObSysVarNdbLogExclusiveReads : public ObBoolSysVar { public: ObSysVarNdbLogExclusiveReads() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_EXCLUSIVE_READS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(431); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(432); } }; class ObSysVarNdbLogUpdateAsWrite : public ObBoolSysVar { public: ObSysVarNdbLogUpdateAsWrite() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_UPDATE_AS_WRITE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(432); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(433); } }; class ObSysVarNdbLogUpdateMinimal : public ObBoolSysVar { public: ObSysVarNdbLogUpdateMinimal() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_UPDATE_MINIMAL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(433); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(434); } }; class ObSysVarNdbLogUpdatedOnly : public ObBoolSysVar { public: ObSysVarNdbLogUpdatedOnly() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_UPDATED_ONLY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(434); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(435); } }; class ObSysVarNdbOptimizationDelay : public ObIntSysVar { public: ObSysVarNdbOptimizationDelay() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_OPTIMIZATION_DELAY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(435); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(436); } }; class ObSysVarNdbReadBackup : public ObBoolSysVar { public: ObSysVarNdbReadBackup() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_READ_BACKUP; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(436); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(437); } }; class ObSysVarNdbRecvThreadActivationThreshold : public ObIntSysVar { public: ObSysVarNdbRecvThreadActivationThreshold() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_RECV_THREAD_ACTIVATION_THRESHOLD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(437); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(438); } }; class ObSysVarNdbRecvThreadCpuMask : public ObVarcharSysVar { public: ObSysVarNdbRecvThreadCpuMask() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_RECV_THREAD_CPU_MASK; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(438); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(439); } }; class ObSysVarNdbReportThreshBinlogEpochSlip : public ObIntSysVar { public: ObSysVarNdbReportThreshBinlogEpochSlip() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_REPORT_THRESH_BINLOG_EPOCH_SLIP; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(439); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(440); } }; class ObSysVarNdbReportThreshBinlogMemUsage : public ObIntSysVar { public: ObSysVarNdbReportThreshBinlogMemUsage() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_REPORT_THRESH_BINLOG_MEM_USAGE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(440); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(441); } }; class ObSysVarNdbRowChecksum : public ObIntSysVar { public: ObSysVarNdbRowChecksum() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_ROW_CHECKSUM; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(441); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(442); } }; class ObSysVarNdbShowForeignKeyMockTables : public ObBoolSysVar { public: ObSysVarNdbShowForeignKeyMockTables() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_SHOW_FOREIGN_KEY_MOCK_TABLES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(442); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(443); } }; class ObSysVarNdbSlaveConflictRole : public ObEnumSysVar { @@ -3259,91 +3266,91 @@ class ObSysVarNdbSlaveConflictRole : public ObEnumSysVar public: ObSysVarNdbSlaveConflictRole() : ObEnumSysVar(NDB_SLAVE_CONFLICT_ROLE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_SLAVE_CONFLICT_ROLE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(443); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(444); } }; class ObSysVarNdbTableNoLogging : public ObBoolSysVar { public: ObSysVarNdbTableNoLogging() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_TABLE_NO_LOGGING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(444); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(445); } }; class ObSysVarNdbTableTemporary : public ObBoolSysVar { public: ObSysVarNdbTableTemporary() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_TABLE_TEMPORARY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(445); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(446); } }; class ObSysVarNdbUseExactCount : public ObBoolSysVar { public: ObSysVarNdbUseExactCount() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_USE_EXACT_COUNT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(446); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(447); } }; class ObSysVarNdbUseTransactions : public ObBoolSysVar { public: ObSysVarNdbUseTransactions() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_USE_TRANSACTIONS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(447); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(448); } }; class ObSysVarNdbinfoMaxBytes : public ObIntSysVar { public: ObSysVarNdbinfoMaxBytes() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDBINFO_MAX_BYTES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(448); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(449); } }; class ObSysVarNdbinfoMaxRows : public ObIntSysVar { public: ObSysVarNdbinfoMaxRows() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDBINFO_MAX_ROWS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(449); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(450); } }; class ObSysVarNdbinfoOffline : public ObBoolSysVar { public: ObSysVarNdbinfoOffline() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDBINFO_OFFLINE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(450); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(451); } }; class ObSysVarNdbinfoShowHidden : public ObBoolSysVar { public: ObSysVarNdbinfoShowHidden() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDBINFO_SHOW_HIDDEN; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(451); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(452); } }; class ObSysVarMyisamDataPointerSize : public ObIntSysVar { public: ObSysVarMyisamDataPointerSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYISAM_DATA_POINTER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(452); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(453); } }; class ObSysVarMyisamMaxSortFileSize : public ObIntSysVar { public: ObSysVarMyisamMaxSortFileSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYISAM_MAX_SORT_FILE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(453); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(454); } }; class ObSysVarMyisamRepairThreads : public ObIntSysVar { public: ObSysVarMyisamRepairThreads() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYISAM_REPAIR_THREADS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(454); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(455); } }; class ObSysVarMyisamSortBufferSize : public ObIntSysVar { public: ObSysVarMyisamSortBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYISAM_SORT_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(455); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(456); } }; class ObSysVarMyisamStatsMethod : public ObEnumSysVar { @@ -3352,161 +3359,161 @@ class ObSysVarMyisamStatsMethod : public ObEnumSysVar public: ObSysVarMyisamStatsMethod() : ObEnumSysVar(MYISAM_STATS_METHOD_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYISAM_STATS_METHOD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(456); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(457); } }; class ObSysVarMyisamUseMmap : public ObBoolSysVar { public: ObSysVarMyisamUseMmap() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYISAM_USE_MMAP; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(457); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(458); } }; class ObSysVarPreloadBufferSize : public ObIntSysVar { public: ObSysVarPreloadBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PRELOAD_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(458); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(459); } }; class ObSysVarReadBufferSize : public ObIntSysVar { public: ObSysVarReadBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_READ_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(459); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(460); } }; class ObSysVarReadRndBufferSize : public ObIntSysVar { public: ObSysVarReadRndBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_READ_RND_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(460); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(461); } }; class ObSysVarSyncFrm : public ObIntSysVar { public: ObSysVarSyncFrm() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SYNC_FRM; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(461); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(462); } }; class ObSysVarSyncMasterInfo : public ObIntSysVar { public: ObSysVarSyncMasterInfo() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SYNC_MASTER_INFO; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(462); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(463); } }; class ObSysVarTableOpenCache : public ObIntSysVar { public: ObSysVarTableOpenCache() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_TABLE_OPEN_CACHE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(463); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(464); } }; class ObSysVarInnodbMonitorDisable : public ObVarcharSysVar { public: ObSysVarInnodbMonitorDisable() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MONITOR_DISABLE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(464); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(465); } }; class ObSysVarInnodbMonitorEnable : public ObVarcharSysVar { public: ObSysVarInnodbMonitorEnable() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MONITOR_ENABLE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(465); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(466); } }; class ObSysVarInnodbMonitorReset : public ObVarcharSysVar { public: ObSysVarInnodbMonitorReset() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MONITOR_RESET; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(466); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(467); } }; class ObSysVarInnodbMonitorResetAll : public ObVarcharSysVar { public: ObSysVarInnodbMonitorResetAll() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_MONITOR_RESET_ALL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(467); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(468); } }; class ObSysVarInnodbOldBlocksPct : public ObIntSysVar { public: ObSysVarInnodbOldBlocksPct() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_OLD_BLOCKS_PCT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(468); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(469); } }; class ObSysVarInnodbOldBlocksTime : public ObIntSysVar { public: ObSysVarInnodbOldBlocksTime() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_OLD_BLOCKS_TIME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(469); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(470); } }; class ObSysVarInnodbPurgeBatchSize : public ObIntSysVar { public: ObSysVarInnodbPurgeBatchSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_PURGE_BATCH_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(470); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(471); } }; class ObSysVarInnodbPurgeRsegTruncateFrequency : public ObIntSysVar { public: ObSysVarInnodbPurgeRsegTruncateFrequency() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_PURGE_RSEG_TRUNCATE_FREQUENCY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(471); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(472); } }; class ObSysVarInnodbRandomReadAhead : public ObBoolSysVar { public: ObSysVarInnodbRandomReadAhead() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_RANDOM_READ_AHEAD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(472); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(473); } }; class ObSysVarInnodbReadAheadThreshold : public ObIntSysVar { public: ObSysVarInnodbReadAheadThreshold() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_READ_AHEAD_THRESHOLD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(473); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(474); } }; class ObSysVarInnodbRollbackSegments : public ObIntSysVar { public: ObSysVarInnodbRollbackSegments() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_ROLLBACK_SEGMENTS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(474); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(475); } }; class ObSysVarInnodbSpinWaitDelay : public ObIntSysVar { public: ObSysVarInnodbSpinWaitDelay() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_SPIN_WAIT_DELAY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(475); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(476); } }; class ObSysVarInnodbStatusOutput : public ObBoolSysVar { public: ObSysVarInnodbStatusOutput() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATUS_OUTPUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(476); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(477); } }; class ObSysVarInnodbStatusOutputLocks : public ObBoolSysVar { public: ObSysVarInnodbStatusOutputLocks() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATUS_OUTPUT_LOCKS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(477); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(478); } }; class ObSysVarInnodbSyncSpinLoops : public ObIntSysVar { public: ObSysVarInnodbSyncSpinLoops() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_SYNC_SPIN_LOOPS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(478); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(479); } }; class ObSysVarInternalTmpDiskStorageEngine : public ObEnumSysVar { @@ -3515,154 +3522,154 @@ class ObSysVarInternalTmpDiskStorageEngine : public ObEnumSysVar public: ObSysVarInternalTmpDiskStorageEngine() : ObEnumSysVar(INTERNAL_TMP_DISK_STORAGE_ENGINE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INTERNAL_TMP_DISK_STORAGE_ENGINE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(479); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(480); } }; class ObSysVarKeepFilesOnCreate : public ObBoolSysVar { public: ObSysVarKeepFilesOnCreate() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_KEEP_FILES_ON_CREATE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(480); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(481); } }; class ObSysVarMaxHeapTableSize : public ObIntSysVar { public: ObSysVarMaxHeapTableSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_HEAP_TABLE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(481); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(482); } }; class ObSysVarBulkInsertBufferSize : public ObIntSysVar { public: ObSysVarBulkInsertBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BULK_INSERT_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(482); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(483); } }; class ObSysVarHostCacheSize : public ObIntSysVar { public: ObSysVarHostCacheSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_HOST_CACHE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(483); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(484); } }; class ObSysVarInitSlave : public ObVarcharSysVar { public: ObSysVarInitSlave() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INIT_SLAVE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(484); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(485); } }; class ObSysVarInnodbFastShutdown : public ObIntSysVar { public: ObSysVarInnodbFastShutdown() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_FAST_SHUTDOWN; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(485); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(486); } }; class ObSysVarInnodbIoCapacity : public ObIntSysVar { public: ObSysVarInnodbIoCapacity() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_IO_CAPACITY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(486); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(487); } }; class ObSysVarInnodbIoCapacityMax : public ObIntSysVar { public: ObSysVarInnodbIoCapacityMax() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_IO_CAPACITY_MAX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(487); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(488); } }; class ObSysVarInnodbThreadConcurrency : public ObIntSysVar { public: ObSysVarInnodbThreadConcurrency() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_THREAD_CONCURRENCY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(488); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(489); } }; class ObSysVarInnodbThreadSleepDelay : public ObIntSysVar { public: ObSysVarInnodbThreadSleepDelay() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_THREAD_SLEEP_DELAY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(489); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(490); } }; class ObSysVarLogErrorVerbosity : public ObIntSysVar { public: ObSysVarLogErrorVerbosity() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_ERROR_VERBOSITY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(490); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(491); } }; class ObSysVarLogOutput : public ObVarcharSysVar { public: ObSysVarLogOutput() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_OUTPUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(491); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(492); } }; class ObSysVarLogQueriesNotUsingIndexes : public ObBoolSysVar { public: ObSysVarLogQueriesNotUsingIndexes() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_QUERIES_NOT_USING_INDEXES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(492); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(493); } }; class ObSysVarLogSlowAdminStatements : public ObBoolSysVar { public: ObSysVarLogSlowAdminStatements() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_SLOW_ADMIN_STATEMENTS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(493); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(494); } }; class ObSysVarLogSlowSlaveStatements : public ObBoolSysVar { public: ObSysVarLogSlowSlaveStatements() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_SLOW_SLAVE_STATEMENTS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(494); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(495); } }; class ObSysVarLogStatementsUnsafeForBinlog : public ObIntSysVar { public: ObSysVarLogStatementsUnsafeForBinlog() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_STATEMENTS_UNSAFE_FOR_BINLOG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(495); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(496); } }; class ObSysVarLogSyslog : public ObBoolSysVar { public: ObSysVarLogSyslog() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_SYSLOG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(496); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(497); } }; class ObSysVarLogSyslogFacility : public ObVarcharSysVar { public: ObSysVarLogSyslogFacility() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_SYSLOG_FACILITY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(497); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(498); } }; class ObSysVarLogSyslogIncludePid : public ObIntSysVar { public: ObSysVarLogSyslogIncludePid() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_SYSLOG_INCLUDE_PID; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(498); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(499); } }; class ObSysVarLogSyslogTag : public ObVarcharSysVar { public: ObSysVarLogSyslogTag() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_SYSLOG_TAG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(499); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(500); } }; class ObSysVarLogThrottleQueriesNotUsingIndexes : public ObIntSysVar { public: ObSysVarLogThrottleQueriesNotUsingIndexes() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_THROTTLE_QUERIES_NOT_USING_INDEXES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(500); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(501); } }; class ObSysVarLogTimestamps : public ObEnumSysVar { @@ -3671,672 +3678,672 @@ class ObSysVarLogTimestamps : public ObEnumSysVar public: ObSysVarLogTimestamps() : ObEnumSysVar(LOG_TIMESTAMPS_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_TIMESTAMPS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(501); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(502); } }; class ObSysVarLogWarnings : public ObIntSysVar { public: ObSysVarLogWarnings() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_WARNINGS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(502); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(503); } }; class ObSysVarMaxDelayedThreads : public ObIntSysVar { public: ObSysVarMaxDelayedThreads() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_DELAYED_THREADS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(503); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(504); } }; class ObSysVarOfflineMode : public ObIntSysVar { public: ObSysVarOfflineMode() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OFFLINE_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(504); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(505); } }; class ObSysVarRequireSecureTransport : public ObBoolSysVar { public: ObSysVarRequireSecureTransport() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_REQUIRE_SECURE_TRANSPORT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(505); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(506); } }; class ObSysVarSlowLaunchTime : public ObIntSysVar { public: ObSysVarSlowLaunchTime() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SLOW_LAUNCH_TIME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(506); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(507); } }; class ObSysVarSqlLogOff : public ObBoolSysVar { public: ObSysVarSqlLogOff() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SQL_LOG_OFF; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(507); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(508); } }; class ObSysVarThreadCacheSize : public ObIntSysVar { public: ObSysVarThreadCacheSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_THREAD_CACHE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(508); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(509); } }; class ObSysVarThreadPoolHighPriorityConnection : public ObIntSysVar { public: ObSysVarThreadPoolHighPriorityConnection() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_THREAD_POOL_HIGH_PRIORITY_CONNECTION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(509); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(510); } }; class ObSysVarThreadPoolMaxUnusedThreads : public ObIntSysVar { public: ObSysVarThreadPoolMaxUnusedThreads() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_THREAD_POOL_MAX_UNUSED_THREADS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(510); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(511); } }; class ObSysVarThreadPoolPrioKickupTimer : public ObIntSysVar { public: ObSysVarThreadPoolPrioKickupTimer() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_THREAD_POOL_PRIO_KICKUP_TIMER; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(511); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(512); } }; class ObSysVarThreadPoolStallLimit : public ObIntSysVar { public: ObSysVarThreadPoolStallLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_THREAD_POOL_STALL_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(512); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(513); } }; class ObSysVarHaveStatementTimeout : public ObBoolSysVar { public: ObSysVarHaveStatementTimeout() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_HAVE_STATEMENT_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(513); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(514); } }; class ObSysVarMysqlxBindAddress : public ObVarcharSysVar { public: ObSysVarMysqlxBindAddress() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_BIND_ADDRESS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(514); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(515); } }; class ObSysVarMysqlxPort : public ObIntSysVar { public: ObSysVarMysqlxPort() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_PORT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(515); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(516); } }; class ObSysVarMysqlxPortOpenTimeout : public ObIntSysVar { public: ObSysVarMysqlxPortOpenTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_PORT_OPEN_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(516); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(517); } }; class ObSysVarMysqlxSocket : public ObVarcharSysVar { public: ObSysVarMysqlxSocket() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_SOCKET; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(517); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(518); } }; class ObSysVarMysqlxSslCa : public ObVarcharSysVar { public: ObSysVarMysqlxSslCa() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_SSL_CA; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(518); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(519); } }; class ObSysVarMysqlxSslCapath : public ObVarcharSysVar { public: ObSysVarMysqlxSslCapath() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_SSL_CAPATH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(519); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(520); } }; class ObSysVarMysqlxSslCert : public ObVarcharSysVar { public: ObSysVarMysqlxSslCert() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_SSL_CERT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(520); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(521); } }; class ObSysVarMysqlxSslCipher : public ObVarcharSysVar { public: ObSysVarMysqlxSslCipher() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_SSL_CIPHER; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(521); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(522); } }; class ObSysVarMysqlxSslCrl : public ObVarcharSysVar { public: ObSysVarMysqlxSslCrl() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_SSL_CRL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(522); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(523); } }; class ObSysVarMysqlxSslCrlpath : public ObVarcharSysVar { public: ObSysVarMysqlxSslCrlpath() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_SSL_CRLPATH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(523); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(524); } }; class ObSysVarMysqlxSslKey : public ObVarcharSysVar { public: ObSysVarMysqlxSslKey() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQLX_SSL_KEY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(524); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(525); } }; class ObSysVarOld : public ObBoolSysVar { public: ObSysVarOld() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OLD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(525); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(526); } }; class ObSysVarPerformanceSchemaAccountsSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaAccountsSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_ACCOUNTS_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(526); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(527); } }; class ObSysVarPerformanceSchemaDigestsSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaDigestsSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_DIGESTS_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(527); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(528); } }; class ObSysVarPerformanceSchemaEventsStagesHistoryLongSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaEventsStagesHistoryLongSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_LONG_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(528); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(529); } }; class ObSysVarPerformanceSchemaEventsStagesHistorySize : public ObIntSysVar { public: ObSysVarPerformanceSchemaEventsStagesHistorySize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STAGES_HISTORY_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(529); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(530); } }; class ObSysVarPerformanceSchemaEventsStatementsHistoryLongSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaEventsStatementsHistoryLongSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_LONG_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(530); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(531); } }; class ObSysVarPerformanceSchemaEventsStatementsHistorySize : public ObIntSysVar { public: ObSysVarPerformanceSchemaEventsStatementsHistorySize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_STATEMENTS_HISTORY_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(531); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(532); } }; class ObSysVarPerformanceSchemaEventsTransactionsHistoryLongSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaEventsTransactionsHistoryLongSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_LONG_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(532); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(533); } }; class ObSysVarPerformanceSchemaEventsTransactionsHistorySize : public ObIntSysVar { public: ObSysVarPerformanceSchemaEventsTransactionsHistorySize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_TRANSACTIONS_HISTORY_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(533); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(534); } }; class ObSysVarPerformanceSchemaEventsWaitsHistoryLongSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaEventsWaitsHistoryLongSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_LONG_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(534); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(535); } }; class ObSysVarPerformanceSchemaEventsWaitsHistorySize : public ObIntSysVar { public: ObSysVarPerformanceSchemaEventsWaitsHistorySize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_EVENTS_WAITS_HISTORY_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(535); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(536); } }; class ObSysVarPerformanceSchemaHostsSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaHostsSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_HOSTS_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(536); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(537); } }; class ObSysVarPerformanceSchemaMaxCondClasses : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxCondClasses() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_CLASSES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(537); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(538); } }; class ObSysVarPerformanceSchemaMaxCondInstances : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxCondInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_COND_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(538); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(539); } }; class ObSysVarPerformanceSchemaMaxDigestLength : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxDigestLength() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_DIGEST_LENGTH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(539); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(540); } }; class ObSysVarPerformanceSchemaMaxFileClasses : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxFileClasses() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_CLASSES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(540); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(541); } }; class ObSysVarPerformanceSchemaMaxFileHandles : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxFileHandles() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_HANDLES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(541); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(542); } }; class ObSysVarPerformanceSchemaMaxFileInstances : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxFileInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_FILE_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(542); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(543); } }; class ObSysVarPerformanceSchemaMaxIndexStat : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxIndexStat() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_INDEX_STAT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(543); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(544); } }; class ObSysVarPerformanceSchemaMaxMemoryClasses : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxMemoryClasses() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_MEMORY_CLASSES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(544); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(545); } }; class ObSysVarPerformanceSchemaMaxMetadataLocks : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxMetadataLocks() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_METADATA_LOCKS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(545); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(546); } }; class ObSysVarPerformanceSchemaMaxMutexClasses : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxMutexClasses() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_CLASSES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(546); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(547); } }; class ObSysVarPerformanceSchemaMaxMutexInstances : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxMutexInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_MUTEX_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(547); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(548); } }; class ObSysVarPerformanceSchemaMaxPreparedStatementsInstances : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxPreparedStatementsInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_PREPARED_STATEMENTS_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(548); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(549); } }; class ObSysVarPerformanceSchemaMaxProgramInstances : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxProgramInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_PROGRAM_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(549); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(550); } }; class ObSysVarPerformanceSchemaMaxRwlockClasses : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxRwlockClasses() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_CLASSES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(550); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(551); } }; class ObSysVarPerformanceSchemaMaxRwlockInstances : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxRwlockInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_RWLOCK_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(551); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(552); } }; class ObSysVarPerformanceSchemaMaxSocketClasses : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxSocketClasses() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_CLASSES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(552); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(553); } }; class ObSysVarPerformanceSchemaMaxSocketInstances : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxSocketInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_SOCKET_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(553); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(554); } }; class ObSysVarPerformanceSchemaMaxSqlTextLength : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxSqlTextLength() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_SQL_TEXT_LENGTH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(554); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(555); } }; class ObSysVarPerformanceSchemaMaxStageClasses : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxStageClasses() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_STAGE_CLASSES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(555); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(556); } }; class ObSysVarPerformanceSchemaMaxStatementClasses : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxStatementClasses() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_CLASSES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(556); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(557); } }; class ObSysVarPerformanceSchemaMaxStatementStack : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxStatementStack() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_STATEMENT_STACK; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(557); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(558); } }; class ObSysVarPerformanceSchemaMaxTableHandles : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxTableHandles() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_HANDLES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(558); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(559); } }; class ObSysVarPerformanceSchemaMaxTableInstances : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxTableInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(559); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(560); } }; class ObSysVarPerformanceSchemaMaxTableLockStat : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxTableLockStat() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_TABLE_LOCK_STAT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(560); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(561); } }; class ObSysVarPerformanceSchemaMaxThreadClasses : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxThreadClasses() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_CLASSES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(561); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(562); } }; class ObSysVarPerformanceSchemaMaxThreadInstances : public ObIntSysVar { public: ObSysVarPerformanceSchemaMaxThreadInstances() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_MAX_THREAD_INSTANCES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(562); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(563); } }; class ObSysVarPerformanceSchemaSessionConnectAttrsSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaSessionConnectAttrsSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_SESSION_CONNECT_ATTRS_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(563); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(564); } }; class ObSysVarPerformanceSchemaSetupActorsSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaSetupActorsSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_SETUP_ACTORS_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(564); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(565); } }; class ObSysVarPerformanceSchemaSetupObjectsSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaSetupObjectsSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_SETUP_OBJECTS_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(565); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(566); } }; class ObSysVarPerformanceSchemaUsersSize : public ObIntSysVar { public: ObSysVarPerformanceSchemaUsersSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PERFORMANCE_SCHEMA_USERS_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(566); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(567); } }; class ObSysVarVersionTokensSessionNumber : public ObIntSysVar { public: ObSysVarVersionTokensSessionNumber() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_VERSION_TOKENS_SESSION_NUMBER; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(567); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(568); } }; class ObSysVarBackLog : public ObIntSysVar { public: ObSysVarBackLog() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BACK_LOG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(568); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(569); } }; class ObSysVarBasedir : public ObVarcharSysVar { public: ObSysVarBasedir() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BASEDIR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(569); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(570); } }; class ObSysVarBindAddress : public ObVarcharSysVar { public: ObSysVarBindAddress() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BIND_ADDRESS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(570); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(571); } }; class ObSysVarCoreFile : public ObBoolSysVar { public: ObSysVarCoreFile() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_CORE_FILE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(571); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(572); } }; class ObSysVarHaveCompress : public ObBoolSysVar { public: ObSysVarHaveCompress() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_HAVE_COMPRESS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(572); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(573); } }; class ObSysVarIgnoreDbDirs : public ObVarcharSysVar { public: ObSysVarIgnoreDbDirs() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_IGNORE_DB_DIRS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(573); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(574); } }; class ObSysVarInitFile : public ObVarcharSysVar { public: ObSysVarInitFile() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INIT_FILE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(574); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(575); } }; class ObSysVarInnodbOpenFiles : public ObIntSysVar { public: ObSysVarInnodbOpenFiles() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_OPEN_FILES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(575); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(576); } }; class ObSysVarInnodbPageCleaners : public ObIntSysVar { public: ObSysVarInnodbPageCleaners() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_PAGE_CLEANERS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(576); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(577); } }; class ObSysVarInnodbPurgeThreads : public ObIntSysVar { public: ObSysVarInnodbPurgeThreads() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_PURGE_THREADS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(577); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(578); } }; class ObSysVarInnodbReadIoThreads : public ObIntSysVar { public: ObSysVarInnodbReadIoThreads() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_READ_IO_THREADS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(578); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(579); } }; class ObSysVarInnodbSyncArraySize : public ObIntSysVar { public: ObSysVarInnodbSyncArraySize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_SYNC_ARRAY_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(579); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(580); } }; class ObSysVarInnodbUseNativeAio : public ObIntSysVar { public: ObSysVarInnodbUseNativeAio() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_USE_NATIVE_AIO; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(580); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(581); } }; class ObSysVarInnodbWriteIoThreads : public ObIntSysVar { public: ObSysVarInnodbWriteIoThreads() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_WRITE_IO_THREADS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(581); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(582); } }; class ObSysVarLargeFilesSupport : public ObIntSysVar { public: ObSysVarLargeFilesSupport() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LARGE_FILES_SUPPORT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(582); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(583); } }; class ObSysVarLockedInMemory : public ObBoolSysVar { public: ObSysVarLockedInMemory() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOCKED_IN_MEMORY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(583); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(584); } }; class ObSysVarLogError : public ObVarcharSysVar { public: ObSysVarLogError() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_ERROR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(584); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(585); } }; class ObSysVarNamedPipe : public ObBoolSysVar { public: ObSysVarNamedPipe() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NAMED_PIPE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(585); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(586); } }; class ObSysVarNamedPipeFullAccessGroup : public ObVarcharSysVar { public: ObSysVarNamedPipeFullAccessGroup() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NAMED_PIPE_FULL_ACCESS_GROUP; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(586); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(587); } }; class ObSysVarOpenFilesLimit : public ObIntSysVar { public: ObSysVarOpenFilesLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OPEN_FILES_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(587); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(588); } }; class ObSysVarReportHost : public ObVarcharSysVar { public: ObSysVarReportHost() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_REPORT_HOST; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(588); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(589); } }; class ObSysVarReportPassword : public ObVarcharSysVar { public: ObSysVarReportPassword() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_REPORT_PASSWORD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(589); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(590); } }; class ObSysVarReportPort : public ObVarcharSysVar { public: ObSysVarReportPort() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_REPORT_PORT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(590); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(591); } }; class ObSysVarReportUser : public ObVarcharSysVar { public: ObSysVarReportUser() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_REPORT_USER; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(591); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(592); } }; class ObSysVarServerIdBits : public ObIntSysVar { public: ObSysVarServerIdBits() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SERVER_ID_BITS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(592); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(593); } }; class ObSysVarSharedMemory : public ObBoolSysVar { public: ObSysVarSharedMemory() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SHARED_MEMORY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(593); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(594); } }; class ObSysVarSharedMemoryBaseName : public ObVarcharSysVar { public: ObSysVarSharedMemoryBaseName() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SHARED_MEMORY_BASE_NAME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(594); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(595); } }; class ObSysVarSkipNameResolve : public ObBoolSysVar { public: ObSysVarSkipNameResolve() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SKIP_NAME_RESOLVE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(595); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(596); } }; class ObSysVarSkipNetworking : public ObBoolSysVar { public: ObSysVarSkipNetworking() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SKIP_NETWORKING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(596); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(597); } }; class ObSysVarThreadHandling : public ObEnumSysVar { @@ -4345,154 +4352,154 @@ class ObSysVarThreadHandling : public ObEnumSysVar public: ObSysVarThreadHandling() : ObEnumSysVar(THREAD_HANDLING_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_THREAD_HANDLING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(597); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(598); } }; class ObSysVarThreadPoolAlgorithm : public ObIntSysVar { public: ObSysVarThreadPoolAlgorithm() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_THREAD_POOL_ALGORITHM; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(598); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(599); } }; class ObSysVarThreadPoolSize : public ObIntSysVar { public: ObSysVarThreadPoolSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_THREAD_POOL_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(599); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(600); } }; class ObSysVarThreadStack : public ObIntSysVar { public: ObSysVarThreadStack() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_THREAD_STACK; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(600); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(601); } }; class ObSysVarBinlogGtidSimpleRecovery : public ObIntSysVar { public: ObSysVarBinlogGtidSimpleRecovery() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BINLOG_GTID_SIMPLE_RECOVERY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(601); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(602); } }; class ObSysVarInnodbApiEnableBinlog : public ObBoolSysVar { public: ObSysVarInnodbApiEnableBinlog() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_API_ENABLE_BINLOG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(602); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(603); } }; class ObSysVarInnodbLocksUnsafeForBinlog : public ObBoolSysVar { public: ObSysVarInnodbLocksUnsafeForBinlog() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOCKS_UNSAFE_FOR_BINLOG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(603); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(604); } }; class ObSysVarInnodbLogBufferSize : public ObIntSysVar { public: ObSysVarInnodbLogBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOG_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(604); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(605); } }; class ObSysVarInnodbLogFilesInGroup : public ObIntSysVar { public: ObSysVarInnodbLogFilesInGroup() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOG_FILES_IN_GROUP; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(605); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(606); } }; class ObSysVarInnodbLogFileSize : public ObIntSysVar { public: ObSysVarInnodbLogFileSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOG_FILE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(606); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(607); } }; class ObSysVarInnodbLogGroupHomeDir : public ObVarcharSysVar { public: ObSysVarInnodbLogGroupHomeDir() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LOG_GROUP_HOME_DIR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(607); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(608); } }; class ObSysVarInnodbUndoDirectory : public ObVarcharSysVar { public: ObSysVarInnodbUndoDirectory() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_UNDO_DIRECTORY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(608); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(609); } }; class ObSysVarInnodbUndoTablespaces : public ObIntSysVar { public: ObSysVarInnodbUndoTablespaces() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_UNDO_TABLESPACES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(609); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(610); } }; class ObSysVarLogBinBasename : public ObVarcharSysVar { public: ObSysVarLogBinBasename() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_BIN_BASENAME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(610); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(611); } }; class ObSysVarLogBinIndex : public ObVarcharSysVar { public: ObSysVarLogBinIndex() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_BIN_INDEX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(611); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(612); } }; class ObSysVarLogSlaveUpdates : public ObBoolSysVar { public: ObSysVarLogSlaveUpdates() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOG_SLAVE_UPDATES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(612); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(613); } }; class ObSysVarRelayLog : public ObVarcharSysVar { public: ObSysVarRelayLog() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RELAY_LOG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(613); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(614); } }; class ObSysVarRelayLogBasename : public ObVarcharSysVar { public: ObSysVarRelayLogBasename() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RELAY_LOG_BASENAME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(614); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(615); } }; class ObSysVarRelayLogIndex : public ObVarcharSysVar { public: ObSysVarRelayLogIndex() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RELAY_LOG_INDEX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(615); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(616); } }; class ObSysVarRelayLogInfoFile : public ObVarcharSysVar { public: ObSysVarRelayLogInfoFile() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RELAY_LOG_INFO_FILE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(616); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(617); } }; class ObSysVarRelayLogRecovery : public ObBoolSysVar { public: ObSysVarRelayLogRecovery() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RELAY_LOG_RECOVERY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(617); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(618); } }; class ObSysVarRelayLogSpaceLimit : public ObIntSysVar { public: ObSysVarRelayLogSpaceLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RELAY_LOG_SPACE_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(618); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(619); } }; class ObSysVarDelayKeyWrite : public ObEnumSysVar { @@ -4501,7 +4508,7 @@ class ObSysVarDelayKeyWrite : public ObEnumSysVar public: ObSysVarDelayKeyWrite() : ObEnumSysVar(DELAY_KEY_WRITE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DELAY_KEY_WRITE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(619); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(620); } }; class ObSysVarInnodbLargePrefix : public ObEnumSysVar { @@ -4510,35 +4517,35 @@ class ObSysVarInnodbLargePrefix : public ObEnumSysVar public: ObSysVarInnodbLargePrefix() : ObEnumSysVar(INNODB_LARGE_PREFIX_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_LARGE_PREFIX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(620); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(621); } }; class ObSysVarKeyBufferSize : public ObIntSysVar { public: ObSysVarKeyBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_KEY_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(621); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(622); } }; class ObSysVarKeyCacheAgeThreshold : public ObIntSysVar { public: ObSysVarKeyCacheAgeThreshold() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_KEY_CACHE_AGE_THRESHOLD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(622); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(623); } }; class ObSysVarKeyCacheDivisionLimit : public ObIntSysVar { public: ObSysVarKeyCacheDivisionLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_KEY_CACHE_DIVISION_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(623); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(624); } }; class ObSysVarMaxSeeksForKey : public ObIntSysVar { public: ObSysVarMaxSeeksForKey() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_SEEKS_FOR_KEY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(624); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(625); } }; class ObSysVarOldAlterTable : public ObEnumSysVar { @@ -4547,308 +4554,308 @@ class ObSysVarOldAlterTable : public ObEnumSysVar public: ObSysVarOldAlterTable() : ObEnumSysVar(OLD_ALTER_TABLE_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OLD_ALTER_TABLE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(625); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(626); } }; class ObSysVarTableDefinitionCache : public ObIntSysVar { public: ObSysVarTableDefinitionCache() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_TABLE_DEFINITION_CACHE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(626); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(627); } }; class ObSysVarInnodbSortBufferSize : public ObIntSysVar { public: ObSysVarInnodbSortBufferSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_SORT_BUFFER_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(627); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(628); } }; class ObSysVarKeyCacheBlockSize : public ObIntSysVar { public: ObSysVarKeyCacheBlockSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_KEY_CACHE_BLOCK_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(628); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(629); } }; class ObSysVarCharacterSetsDir : public ObVarcharSysVar { public: ObSysVarCharacterSetsDir() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_CHARACTER_SETS_DIR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(629); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(630); } }; class ObSysVarDateFormat : public ObVarcharSysVar { public: ObSysVarDateFormat() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DATE_FORMAT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(630); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(631); } }; class ObSysVarDatetimeFormat : public ObVarcharSysVar { public: ObSysVarDatetimeFormat() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DATETIME_FORMAT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(631); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(632); } }; class ObSysVarDisconnectOnExpiredPassword : public ObBoolSysVar { public: ObSysVarDisconnectOnExpiredPassword() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DISCONNECT_ON_EXPIRED_PASSWORD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(632); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(633); } }; class ObSysVarExternalUser : public ObVarcharSysVar { public: ObSysVarExternalUser() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_EXTERNAL_USER; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(633); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(634); } }; class ObSysVarHaveCrypt : public ObVarcharSysVar { public: ObSysVarHaveCrypt() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_HAVE_CRYPT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(634); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(635); } }; class ObSysVarLanguage : public ObVarcharSysVar { public: ObSysVarLanguage() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LANGUAGE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(635); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(636); } }; class ObSysVarLcMessagesDir : public ObVarcharSysVar { public: ObSysVarLcMessagesDir() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LC_MESSAGES_DIR; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(636); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(637); } }; class ObSysVarLowerCaseFileSystem : public ObBoolSysVar { public: ObSysVarLowerCaseFileSystem() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_LOWER_CASE_FILE_SYSTEM; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(637); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(638); } }; class ObSysVarMaxDigestLength : public ObIntSysVar { public: ObSysVarMaxDigestLength() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_DIGEST_LENGTH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(638); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(639); } }; class ObSysVarNdbinfoDatabase : public ObVarcharSysVar { public: ObSysVarNdbinfoDatabase() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDBINFO_DATABASE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(639); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(640); } }; class ObSysVarNdbinfoTablePrefix : public ObVarcharSysVar { public: ObSysVarNdbinfoTablePrefix() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDBINFO_TABLE_PREFIX; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(640); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(641); } }; class ObSysVarNdbinfoVersion : public ObVarcharSysVar { public: ObSysVarNdbinfoVersion() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDBINFO_VERSION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(641); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(642); } }; class ObSysVarNdbBatchSize : public ObIntSysVar { public: ObSysVarNdbBatchSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_BATCH_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(642); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(643); } }; class ObSysVarNdbClusterConnectionPool : public ObIntSysVar { public: ObSysVarNdbClusterConnectionPool() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_CLUSTER_CONNECTION_POOL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(643); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(644); } }; class ObSysVarNdbClusterConnectionPoolNodeids : public ObVarcharSysVar { public: ObSysVarNdbClusterConnectionPoolNodeids() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_CLUSTER_CONNECTION_POOL_NODEIDS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(644); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(645); } }; class ObSysVarNdbLogApplyStatus : public ObBoolSysVar { public: ObSysVarNdbLogApplyStatus() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_APPLY_STATUS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(645); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(646); } }; class ObSysVarNdbLogBin : public ObBoolSysVar { public: ObSysVarNdbLogBin() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_BIN; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(646); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(647); } }; class ObSysVarNdbLogFailTerminate : public ObBoolSysVar { public: ObSysVarNdbLogFailTerminate() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_FAIL_TERMINATE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(647); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(648); } }; class ObSysVarNdbLogOrig : public ObBoolSysVar { public: ObSysVarNdbLogOrig() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_ORIG; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(648); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(649); } }; class ObSysVarNdbLogTransactionId : public ObBoolSysVar { public: ObSysVarNdbLogTransactionId() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_LOG_TRANSACTION_ID; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(649); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(650); } }; class ObSysVarNdbOptimizedNodeSelection : public ObIntSysVar { public: ObSysVarNdbOptimizedNodeSelection() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_OPTIMIZED_NODE_SELECTION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(650); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(651); } }; class ObSysVarNdbSystemName : public ObVarcharSysVar { public: ObSysVarNdbSystemName() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_SYSTEM_NAME; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(651); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(652); } }; class ObSysVarNdbUseCopyingAlterTable : public ObBoolSysVar { public: ObSysVarNdbUseCopyingAlterTable() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_USE_COPYING_ALTER_TABLE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(652); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(653); } }; class ObSysVarNdbVersionString : public ObVarcharSysVar { public: ObSysVarNdbVersionString() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_VERSION_STRING; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(653); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(654); } }; class ObSysVarNdbWaitConnected : public ObIntSysVar { public: ObSysVarNdbWaitConnected() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_WAIT_CONNECTED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(654); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(655); } }; class ObSysVarNdbWaitSetup : public ObIntSysVar { public: ObSysVarNdbWaitSetup() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_WAIT_SETUP; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(655); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(656); } }; class ObSysVarProxyUser : public ObVarcharSysVar { public: ObSysVarProxyUser() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PROXY_USER; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(656); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(657); } }; class ObSysVarSha256PasswordAutoGenerateRsaKeys : public ObBoolSysVar { public: ObSysVarSha256PasswordAutoGenerateRsaKeys() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SHA256_PASSWORD_AUTO_GENERATE_RSA_KEYS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(657); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(658); } }; class ObSysVarSha256PasswordPrivateKeyPath : public ObVarcharSysVar { public: ObSysVarSha256PasswordPrivateKeyPath() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SHA256_PASSWORD_PRIVATE_KEY_PATH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(658); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(659); } }; class ObSysVarSha256PasswordPublicKeyPath : public ObVarcharSysVar { public: ObSysVarSha256PasswordPublicKeyPath() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SHA256_PASSWORD_PUBLIC_KEY_PATH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(659); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(660); } }; class ObSysVarSkipShowDatabase : public ObVarcharSysVar { public: ObSysVarSkipShowDatabase() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SKIP_SHOW_DATABASE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(660); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(661); } }; class ObSysVarBigTables : public ObBoolSysVar { public: ObSysVarBigTables() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_BIG_TABLES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(661); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(662); } }; class ObSysVarCheckProxyUsers : public ObBoolSysVar { public: ObSysVarCheckProxyUsers() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_CHECK_PROXY_USERS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(662); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(663); } }; class ObSysVarDefaultWeekFormat : public ObIntSysVar { public: ObSysVarDefaultWeekFormat() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DEFAULT_WEEK_FORMAT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(663); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(664); } }; class ObSysVarDelayedInsertTimeout : public ObIntSysVar { public: ObSysVarDelayedInsertTimeout() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DELAYED_INSERT_TIMEOUT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(664); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(665); } }; class ObSysVarDelayedQueueSize : public ObIntSysVar { public: ObSysVarDelayedQueueSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DELAYED_QUEUE_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(665); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(666); } }; class ObSysVarEqRangeIndexDiveLimit : public ObIntSysVar { public: ObSysVarEqRangeIndexDiveLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_EQ_RANGE_INDEX_DIVE_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(666); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(667); } }; class ObSysVarInnodbStatsAutoRecalc : public ObBoolSysVar { public: ObSysVarInnodbStatsAutoRecalc() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATS_AUTO_RECALC; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(667); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(668); } }; class ObSysVarInnodbStatsIncludeDeleteMarked : public ObBoolSysVar { public: ObSysVarInnodbStatsIncludeDeleteMarked() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATS_INCLUDE_DELETE_MARKED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(668); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(669); } }; class ObSysVarInnodbStatsMethod : public ObEnumSysVar { @@ -4857,91 +4864,91 @@ class ObSysVarInnodbStatsMethod : public ObEnumSysVar public: ObSysVarInnodbStatsMethod() : ObEnumSysVar(INNODB_STATS_METHOD_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATS_METHOD; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(669); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(670); } }; class ObSysVarInnodbStatsOnMetadata : public ObBoolSysVar { public: ObSysVarInnodbStatsOnMetadata() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATS_ON_METADATA; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(670); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(671); } }; class ObSysVarVersionTokensSession : public ObVarcharSysVar { public: ObSysVarVersionTokensSession() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_VERSION_TOKENS_SESSION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(671); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(672); } }; class ObSysVarInnodbStatsPersistentSamplePages : public ObIntSysVar { public: ObSysVarInnodbStatsPersistentSamplePages() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATS_PERSISTENT_SAMPLE_PAGES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(672); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(673); } }; class ObSysVarInnodbStatsSamplePages : public ObIntSysVar { public: ObSysVarInnodbStatsSamplePages() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATS_SAMPLE_PAGES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(673); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(674); } }; class ObSysVarInnodbStatsTransientSamplePages : public ObIntSysVar { public: ObSysVarInnodbStatsTransientSamplePages() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_INNODB_STATS_TRANSIENT_SAMPLE_PAGES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(674); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(675); } }; class ObSysVarOptimizerSwitch : public ObVarcharSysVar { public: ObSysVarOptimizerSwitch() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OPTIMIZER_SWITCH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(675); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(676); } }; class ObSysVarMaxConnectErrors : public ObIntSysVar { public: ObSysVarMaxConnectErrors() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MAX_CONNECT_ERRORS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(676); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(677); } }; class ObSysVarMysqlFirewallMode : public ObBoolSysVar { public: ObSysVarMysqlFirewallMode() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQL_FIREWALL_MODE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(677); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(678); } }; class ObSysVarMysqlFirewallTrace : public ObBoolSysVar { public: ObSysVarMysqlFirewallTrace() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQL_FIREWALL_TRACE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(678); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(679); } }; class ObSysVarMysqlNativePasswordProxyUsers : public ObBoolSysVar { public: ObSysVarMysqlNativePasswordProxyUsers() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_MYSQL_NATIVE_PASSWORD_PROXY_USERS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(679); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(680); } }; class ObSysVarNetRetryCount : public ObIntSysVar { public: ObSysVarNetRetryCount() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NET_RETRY_COUNT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(680); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(681); } }; class ObSysVarNew : public ObBoolSysVar { public: ObSysVarNew() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NEW; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(681); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(682); } }; class ObSysVarOldPasswords : public ObEnumSysVar { @@ -4950,147 +4957,147 @@ class ObSysVarOldPasswords : public ObEnumSysVar public: ObSysVarOldPasswords() : ObEnumSysVar(OLD_PASSWORDS_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OLD_PASSWORDS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(682); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(683); } }; class ObSysVarOptimizerPruneLevel : public ObIntSysVar { public: ObSysVarOptimizerPruneLevel() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OPTIMIZER_PRUNE_LEVEL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(683); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(684); } }; class ObSysVarOptimizerSearchDepth : public ObIntSysVar { public: ObSysVarOptimizerSearchDepth() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OPTIMIZER_SEARCH_DEPTH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(684); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(685); } }; class ObSysVarOptimizerTrace : public ObVarcharSysVar { public: ObSysVarOptimizerTrace() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OPTIMIZER_TRACE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(685); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(686); } }; class ObSysVarOptimizerTraceFeatures : public ObVarcharSysVar { public: ObSysVarOptimizerTraceFeatures() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OPTIMIZER_TRACE_FEATURES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(686); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(687); } }; class ObSysVarOptimizerTraceLimit : public ObIntSysVar { public: ObSysVarOptimizerTraceLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OPTIMIZER_TRACE_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(687); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(688); } }; class ObSysVarOptimizerTraceMaxMemSize : public ObIntSysVar { public: ObSysVarOptimizerTraceMaxMemSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OPTIMIZER_TRACE_MAX_MEM_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(688); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(689); } }; class ObSysVarOptimizerTraceOffset : public ObIntSysVar { public: ObSysVarOptimizerTraceOffset() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OPTIMIZER_TRACE_OFFSET; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(689); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(690); } }; class ObSysVarParserMaxMemSize : public ObIntSysVar { public: ObSysVarParserMaxMemSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PARSER_MAX_MEM_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(690); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(691); } }; class ObSysVarRandSeed1 : public ObIntSysVar { public: ObSysVarRandSeed1() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RAND_SEED1; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(691); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(692); } }; class ObSysVarRandSeed2 : public ObIntSysVar { public: ObSysVarRandSeed2() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RAND_SEED2; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(692); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(693); } }; class ObSysVarRangeAllocBlockSize : public ObIntSysVar { public: ObSysVarRangeAllocBlockSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RANGE_ALLOC_BLOCK_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(693); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(694); } }; class ObSysVarRangeOptimizerMaxMemSize : public ObIntSysVar { public: ObSysVarRangeOptimizerMaxMemSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RANGE_OPTIMIZER_MAX_MEM_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(694); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(695); } }; class ObSysVarRewriterEnabled : public ObBoolSysVar { public: ObSysVarRewriterEnabled() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_REWRITER_ENABLED; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(695); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(696); } }; class ObSysVarRewriterVerbose : public ObIntSysVar { public: ObSysVarRewriterVerbose() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_REWRITER_VERBOSE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(696); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(697); } }; class ObSysVarSecureAuth : public ObBoolSysVar { public: ObSysVarSecureAuth() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SECURE_AUTH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(697); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(698); } }; class ObSysVarSha256PasswordProxyUsers : public ObBoolSysVar { public: ObSysVarSha256PasswordProxyUsers() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SHA256_PASSWORD_PROXY_USERS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(698); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(699); } }; class ObSysVarShowCompatibility56 : public ObBoolSysVar { public: ObSysVarShowCompatibility56() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SHOW_COMPATIBILITY_56; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(699); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(700); } }; class ObSysVarShowCreateTableVerbosity : public ObBoolSysVar { public: ObSysVarShowCreateTableVerbosity() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SHOW_CREATE_TABLE_VERBOSITY; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(700); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(701); } }; class ObSysVarShowOldTemporals : public ObBoolSysVar { public: ObSysVarShowOldTemporals() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SHOW_OLD_TEMPORALS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(701); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(702); } }; class ObSysVarSqlBigSelects : public ObBoolSysVar { public: ObSysVarSqlBigSelects() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SQL_BIG_SELECTS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(702); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(703); } }; class ObSysVarUpdatableViewsWithLimit : public ObEnumSysVar { @@ -5099,77 +5106,77 @@ class ObSysVarUpdatableViewsWithLimit : public ObEnumSysVar public: ObSysVarUpdatableViewsWithLimit() : ObEnumSysVar(UPDATABLE_VIEWS_WITH_LIMIT_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_UPDATABLE_VIEWS_WITH_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(703); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(704); } }; class ObSysVarValidatePasswordDictionaryFile : public ObVarcharSysVar { public: ObSysVarValidatePasswordDictionaryFile() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_VALIDATE_PASSWORD_DICTIONARY_FILE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(704); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(705); } }; class ObSysVarDelayedInsertLimit : public ObIntSysVar { public: ObSysVarDelayedInsertLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_DELAYED_INSERT_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(705); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(706); } }; class ObSysVarNdbVersion : public ObVarcharSysVar { public: ObSysVarNdbVersion() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_NDB_VERSION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(706); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(707); } }; class ObSysVarAutoGenerateCerts : public ObBoolSysVar { public: ObSysVarAutoGenerateCerts() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_AUTO_GENERATE_CERTS; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(707); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(708); } }; class ObSysVarOptimizerCostBasedTransformation : public ObIntSysVar { public: ObSysVarOptimizerCostBasedTransformation() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR__OPTIMIZER_COST_BASED_TRANSFORMATION; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(708); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(709); } }; class ObSysVarRangeIndexDiveLimit : public ObIntSysVar { public: ObSysVarRangeIndexDiveLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_RANGE_INDEX_DIVE_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(709); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(710); } }; class ObSysVarPartitionIndexDiveLimit : public ObIntSysVar { public: ObSysVarPartitionIndexDiveLimit() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PARTITION_INDEX_DIVE_LIMIT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(710); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(711); } }; class ObSysVarPidFile : public ObVarcharSysVar { public: ObSysVarPidFile() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PID_FILE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(711); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(712); } }; class ObSysVarPort : public ObIntSysVar { public: ObSysVarPort() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_PORT; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(712); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(713); } }; class ObSysVarSocket : public ObVarcharSysVar { public: ObSysVarSocket() : ObVarcharSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_SOCKET; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(713); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(714); } }; class ObSysVarEnableOptimizerRowgoal : public ObEnumSysVar { @@ -5178,35 +5185,35 @@ class ObSysVarEnableOptimizerRowgoal : public ObEnumSysVar public: ObSysVarEnableOptimizerRowgoal() : ObEnumSysVar(ENABLE_OPTIMIZER_ROWGOAL_NAMES, NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_ENABLE_OPTIMIZER_ROWGOAL; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(714); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(715); } }; class ObSysVarObIvfNprobes : public ObIntSysVar { public: ObSysVarObIvfNprobes() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OB_IVF_NPROBES; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(715); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(716); } }; class ObSysVarObHnswExtraInfoMaxSize : public ObIntSysVar { public: ObSysVarObHnswExtraInfoMaxSize() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OB_HNSW_EXTRA_INFO_MAX_SIZE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(716); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(717); } }; class ObSysVarPushJoinPredicate : public ObBoolSysVar { public: ObSysVarPushJoinPredicate() : ObBoolSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR__PUSH_JOIN_PREDICATE; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(717); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(718); } }; class ObSysVarObSparseDropRatioSearch : public ObIntSysVar { public: ObSysVarObSparseDropRatioSearch() : ObIntSysVar(NULL, NULL, NULL, NULL, NULL) {} inline virtual share::ObSysVarClassType get_type() const { return share::SYS_VAR_OB_SPARSE_DROP_RATIO_SEARCH; } - inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(718); } + inline virtual const common::ObObj &get_global_default_value() const { return share::ObSysVariables::get_default_value(719); } }; diff --git a/src/storage/CMakeLists.txt b/src/storage/CMakeLists.txt index 197ced279..6b5cb7399 100644 --- a/src/storage/CMakeLists.txt +++ b/src/storage/CMakeLists.txt @@ -103,6 +103,15 @@ ob_set_subtarget(ob_storage blocksstable_encoding1 blocksstable/encoding/ob_integer_base_diff_decoder.cpp blocksstable/encoding/ob_integer_base_diff_encoder.cpp ) +# Vector-decode explicit-instantiation sites: must be ALONE (own TU), not unity, so the include +# guard does not swallow their definition pass and they remain the sole definers of the symbols. +ob_set_subtarget(ob_storage ALONE + blocksstable/encoding/ob_vector_decode_util.cpp + blocksstable/encoding/ob_vector_decode_util_b.cpp + blocksstable/encoding/ob_vector_decode_util_c.cpp + blocksstable/encoding/ob_vector_decode_util_d.cpp + blocksstable/encoding/ob_vector_decode_util_e.cpp +) ob_set_subtarget(ob_storage blocksstable_encoding2 blocksstable/encoding/ob_inter_column_substring_decoder.cpp blocksstable/encoding/ob_inter_column_substring_encoder.cpp @@ -438,6 +447,7 @@ ob_set_subtarget(ob_storage access access/ob_block_row_store.cpp access/ob_vector_store.cpp access/ob_aggregated_store.cpp + access/ob_aggregated_store_vec.cpp access/ob_scan_merge_loser_tree.cpp access/ob_single_merge.cpp access/ob_sstable_index_filter.cpp @@ -465,6 +475,7 @@ ob_set_subtarget(ob_storage access access/ob_micro_block_handle_mgr.cpp access/ob_aggregate_base.cpp access/ob_pushdown_aggregate.cpp + access/ob_pushdown_aggregate_vec.cpp access/ob_empty_read_bucket.cpp access/ob_global_iterator_pool.cpp access/ob_where_optimizer.cpp diff --git a/src/storage/access/ob_multiple_merge.cpp b/src/storage/access/ob_multiple_merge.cpp index e4f0ab1ec..d0b26a24d 100644 --- a/src/storage/access/ob_multiple_merge.cpp +++ b/src/storage/access/ob_multiple_merge.cpp @@ -19,6 +19,7 @@ #include "ob_multiple_merge.h" #include "share/rc/ob_module_provider.h" #include "ob_aggregated_store.h" +#include "ob_aggregated_store_vec.h" #include "sql/engine/expr/ob_expr_lob_utils.h" #include "storage/tx/ob_tx_ctx.h" #include "storage/tx_storage/ob_ls_service.h" @@ -629,6 +630,9 @@ int ObMultipleMerge::get_next_rows(int64_t &count, int64_t capacity) LOG_WARN("Unexpected access param: null op", K(ret)); } else if (FALSE_IT(eval_ctx = &access_param_->get_op()->get_eval_ctx())) { } else if (FALSE_IT(eval_ctx->reuse(size))) { + } else if (access_param_->get_op()->enable_rich_format_ && + OB_FAIL(init_exprs_uniform_header(access_param_->output_exprs_, *eval_ctx, size))) { + LOG_WARN("Failed to init vector", K(ret), KPC_(access_param)); } else if (OB_FAIL(get_next_row(row))) { if (OB_ITER_END != ret) { LOG_WARN("failed to get single row", K(ret)); @@ -670,6 +674,7 @@ int ObMultipleMerge::get_next_normal_rows(int64_t &count, int64_t capacity) LOG_WARN("fail to refresh table on demand", K(ret), K_(scan_state), K_(is_unprojected_row_valid), K(tables_.count()), K(iters_.count()), KPC_(access_param)); } else { + bool need_init_exprs_uniform_header = true; ObVectorStore *vector_store = reinterpret_cast(block_row_store_); int64_t batch_size = min(capacity, access_param_->get_op()->get_batch_size()); vector_store->reuse_capacity(batch_size); @@ -700,6 +705,7 @@ int ObMultipleMerge::get_next_normal_rows(int64_t &count, int64_t capacity) } else if (!can_batch) { scan_state_ = ScanState::SINGLE_ROW; break; + } else if (FALSE_IT(need_init_exprs_uniform_header = true)) { // `can_batch` must be true } else if (OB_FAIL(pause(do_pause))) { LOG_WARN("Failed to pause"); @@ -742,7 +748,12 @@ int ObMultipleMerge::get_next_normal_rows(int64_t &count, int64_t capacity) } else { // back to normal path ObDatumRow *out_row = nullptr; - if (OB_FAIL(fill_group_idx_if_need(unprojected_row_))) { + if (need_init_exprs_uniform_header && 0 == vector_store->get_row_count() && + access_param_->get_op()->enable_rich_format_ && + OB_FAIL(init_exprs_uniform_header(access_param_->output_exprs_, access_param_->get_op()->get_eval_ctx(), batch_size))) { + LOG_WARN("Failed to init vector", K(ret), KPC_(access_param)); + } else if (FALSE_IT(need_init_exprs_uniform_header = false)) { + } else if (OB_FAIL(fill_group_idx_if_need(unprojected_row_))) { LOG_WARN("Failed to fill iter idx", K(ret), KPC(access_param_), K(unprojected_row_)); } else if (OB_FAIL(process_fuse_row(nullptr == access_param_->output_exprs_, unprojected_row_, out_row))) { LOG_WARN("get row from fuse failed", K(ret), K(unprojected_row_)); @@ -813,6 +824,7 @@ int ObMultipleMerge::get_next_aggregate_row(ObDatumRow *&row) padding_allocator_.reuse(); } reuse_lob_locator(); + bool need_init_expr_header = true; while (OB_SUCC(ret) && !batch_row_store->is_end()) { // clear evaluated flag for every row // all rows will be touched in this loop @@ -832,6 +844,13 @@ int ObMultipleMerge::get_next_aggregate_row(ObDatumRow *&row) } else if (!can_batch) { scan_state_ = ScanState::SINGLE_ROW; break; + } else if (need_init_expr_header && access_param_->get_op()->enable_rich_format_) { + sql::ObEvalCtx &eval_ctx = access_param_->get_op()->get_eval_ctx(); + if (OB_FAIL(init_exprs_vector_header(access_param_->output_exprs_, eval_ctx, eval_ctx.max_batch_size_))) { + LOG_WARN("Failed to init vector", K(ret), K_(eval_ctx.max_batch_size)); + } else { + need_init_expr_header = false; + } } if (OB_FAIL(ret)) { } else if (OB_FAIL(inner_get_next_rows())) { @@ -841,6 +860,8 @@ int ObMultipleMerge::get_next_aggregate_row(ObDatumRow *&row) } else { // OB_ITER_END should use fuse to make sure no greater key in dynamic data ret = OB_SUCCESS; + // pd_agg/pd_groupby not set in cg scanner, need reset expr format + need_init_expr_header = true; scan_state_ = ScanState::SINGLE_ROW; } } @@ -854,6 +875,7 @@ int ObMultipleMerge::get_next_aggregate_row(ObDatumRow *&row) } else if (OB_PUSHDOWN_STATUS_CHANGED == ret) { ret = OB_SUCCESS; scan_state_ = ScanState::BATCH; + need_init_expr_header = true; break; } } else { @@ -865,7 +887,12 @@ int ObMultipleMerge::get_next_aggregate_row(ObDatumRow *&row) LOG_WARN("Fail to handle lobs", K(ret), KP(this)); } else { ObDatumRow *out_row = nullptr; - if (OB_FAIL(process_fuse_row( + if (need_init_expr_header && + access_param_->get_op()->enable_rich_format_ && + OB_FAIL(init_exprs_uniform_header(access_param_->output_exprs_, access_param_->get_op()->get_eval_ctx(), 1))) { + LOG_WARN("Failed to init vector", K(ret), KPC_(access_param)); + } else if (ScanState::SINGLE_ROW == scan_state_ && FALSE_IT(need_init_expr_header = false)) { + } else if (OB_FAIL(process_fuse_row( false, unprojected_row_, out_row))) { @@ -893,7 +920,12 @@ int ObMultipleMerge::get_next_aggregate_row(ObDatumRow *&row) } // first time: aggregated row, ret = OB_SUCCESS if (OB_ITER_END == ret && !batch_row_store->is_end()) { - ObAggStoreBase *agg_store_base = static_cast(batch_row_store); + ObAggStoreBase *agg_store_base = nullptr; + if (access_param_->iter_param_.use_new_format()) { + agg_store_base = static_cast(batch_row_store); + } else { + agg_store_base = static_cast(batch_row_store); + } if (OB_FAIL(agg_store_base->collect_aggregated_result())) { if (OB_UNLIKELY(OB_ITER_END != ret)) { LOG_WARN("fail to collect aggregate row", K(ret)); @@ -1237,14 +1269,27 @@ int ObMultipleMerge::alloc_row_store(ObTableAccessContext &context, const ObTabl ret = OB_ERR_UNEXPECTED; LOG_WARN("Unexpected state, group by can not pushdown in reverse scan", K(ret)); } else if (param.iter_param_.enable_pd_aggregate()) { - if (OB_ISNULL(buf = context.stmt_allocator_->alloc(sizeof(ObAggregatedStore)))) { - ret = common::OB_ALLOCATE_MEMORY_FAILED; - LOG_WARN("fail to alloc aggregated store", K(ret)); + if (param.iter_param_.use_new_format()) { + if (OB_ISNULL(buf = context.stmt_allocator_->alloc(sizeof(ObAggregatedStoreVec)))) { + ret = common::OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("Failed to alloc aggregated store vec", K(ret)); + } else { + block_row_store_ = new (buf) ObAggregatedStoreVec( + param.get_op()->get_batch_size(), + param.get_op()->get_eval_ctx(), + context, + skip_bit_); + } } else { - block_row_store_ = new (buf) ObAggregatedStore( - param.iter_param_.vectorized_enabled_ ? param.get_op()->get_batch_size() : AGGREGATE_STORE_BATCH_SIZE, - param.get_op()->get_eval_ctx(), - context); + if (OB_ISNULL(buf = context.stmt_allocator_->alloc(sizeof(ObAggregatedStore)))) { + ret = common::OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("fail to alloc aggregated store", K(ret)); + } else { + block_row_store_ = new (buf) ObAggregatedStore( + param.iter_param_.vectorized_enabled_ ? param.get_op()->get_batch_size() : AGGREGATE_STORE_BATCH_SIZE, + param.get_op()->get_eval_ctx(), + context); + } } } else if (ObQRIterType::T_SINGLE_GET != get_type()) { if (param.iter_param_.vectorized_enabled_) { diff --git a/src/storage/access/ob_sstable_row_scanner.ipp b/src/storage/access/ob_sstable_row_scanner.ipp index 58fecac4d..829c84981 100644 --- a/src/storage/access/ob_sstable_row_scanner.ipp +++ b/src/storage/access/ob_sstable_row_scanner.ipp @@ -17,6 +17,7 @@ #define USING_LOG_PREFIX STORAGE #include "ob_sstable_row_scanner.h" #include "ob_aggregated_store.h" +#include "ob_aggregated_store_vec.h" #include "storage/blocksstable/ob_micro_block_row_lock_checker.h" namespace oceanbase @@ -157,7 +158,11 @@ inline int ObSSTableRowScanner::inner_open( nullptr != block_row_store_ && iter_param_->enable_skip_index() && !sstable_->is_multi_version_table()) { - prefetcher_.agg_store_ = static_cast(static_cast(block_row_store_)); + if (iter_param_->use_new_format()) { + prefetcher_.agg_store_ = static_cast(static_cast(block_row_store_)); + } else { + prefetcher_.agg_store_ = static_cast(static_cast(block_row_store_)); + } } if (nullptr != sample_executor && sstable_->is_major_sstable() diff --git a/src/storage/access/ob_table_access_param.h b/src/storage/access/ob_table_access_param.h index f3c9783b6..909fba3f6 100644 --- a/src/storage/access/ob_table_access_param.h +++ b/src/storage/access/ob_table_access_param.h @@ -162,6 +162,8 @@ struct ObTableIterParam { pd_storage_flag_.set_use_global_iter_pool(false); } OB_INLINE void set_tablet_handle(const ObTabletHandle *tablet_handle) { tablet_handle_ = tablet_handle; } + OB_INLINE bool use_new_format() const + { return op_->enable_rich_format_; } OB_INLINE int64_t get_io_read_batch_size() const { return table_scan_opt_.io_read_batch_size_; } OB_INLINE int64_t get_io_read_gap_size() const diff --git a/src/storage/access/ob_vector_store.cpp b/src/storage/access/ob_vector_store.cpp index b7497dc68..73091a095 100644 --- a/src/storage/access/ob_vector_store.cpp +++ b/src/storage/access/ob_vector_store.cpp @@ -16,6 +16,7 @@ #define USING_LOG_PREFIX STORAGE #include "ob_vector_store.h" +#include "ob_aggregated_store_vec.h" #include "storage/blocksstable/ob_micro_block_row_scanner.h" #include "storage/access/ob_pushdown_aggregate.h" #include "storage/lob/ob_lob_manager.h" @@ -89,6 +90,7 @@ int ObVectorStore::init(const ObTableAccessParam ¶m, common::hash::ObHashSet const common::ObIArray& out_cols_projector = *param.iter_param_.out_cols_project_; const common::ObIArray *output_sel_mask = param.output_sel_mask_; const common::ObIArray *out_cols_param = param.iter_param_.get_col_params(); + const bool use_new_format = param.iter_param_.use_new_format(); if (OB_FAIL(exprs_.init(expr_count))) { LOG_WARN("Failed to init exprs", K(ret)); } else if (OB_FAIL(default_datums_.init(out_cols_param->count()))) { @@ -120,7 +122,8 @@ int ObVectorStore::init(const ObTableAccessParam ¶m, common::hash::ObHashSet } else if (OB_ISNULL(datums = expr->locate_batch_datums(eval_ctx_))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("Unexpected null datums", K(ret), K(i), KPC(expr)); - } else if (OB_UNLIKELY(!(expr->is_variable_res_buf()) && + } else if (OB_UNLIKELY(!use_new_format && + !(expr->is_variable_res_buf()) && datums->ptr_ != eval_ctx_.frames_[expr->frame_idx_] + expr->res_buf_off_)) { ret = OB_ERR_SYS; LOG_ERROR("Unexpected sql expr datum buffer", K(ret), KP(datums->ptr_), K(eval_ctx_), KPC(expr)); @@ -247,12 +250,22 @@ int ObVectorStore::alloc_group_by_cell(const ObTableAccessParam ¶m) int ret = OB_SUCCESS; if (param.iter_param_.enable_pd_group_by()) { void *buf = nullptr; - if (OB_ISNULL(buf = context_.stmt_allocator_->alloc(sizeof(ObGroupByCell)))) { - ret = common::OB_ALLOCATE_MEMORY_FAILED; - LOG_WARN("Failed to alloc datum buf", K(ret)); - } else if (FALSE_IT(group_by_cell_ = new (buf) ObGroupByCell(batch_size_, *context_.stmt_allocator_))) { - } else if (OB_FAIL(group_by_cell_->init(param, context_, eval_ctx_))) { - LOG_WARN("Failed to init group by cell", K(ret)); + if (param.iter_param_.use_new_format()) { + if (OB_ISNULL(buf = context_.stmt_allocator_->alloc(sizeof(ObGroupByCellVec)))) { + ret = common::OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("Failed to alloc datum buf", K(ret)); + } else if (FALSE_IT(group_by_cell_ = new (buf) ObGroupByCellVec(batch_size_, eval_ctx_, skip_bit_, *context_.stmt_allocator_))) { + } else if (OB_FAIL(group_by_cell_->init(param, context_, eval_ctx_))) { + LOG_WARN("Failed to init group by cell", K(ret)); + } + } else { + if (OB_ISNULL(buf = context_.stmt_allocator_->alloc(sizeof(ObGroupByCell)))) { + ret = common::OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("Failed to alloc datum buf", K(ret)); + } else if (FALSE_IT(group_by_cell_ = new (buf) ObGroupByCell(batch_size_, *context_.stmt_allocator_))) { + } else if (OB_FAIL(group_by_cell_->init(param, context_, eval_ctx_))) { + LOG_WARN("Failed to init group by cell", K(ret)); + } } if (OB_SUCC(ret) && OB_FAIL(check_need_group_by(param))) { LOG_WARN("Failed to check need group by", K(ret), K(param)); @@ -329,11 +342,7 @@ int ObVectorStore::fill_rows( if (OB_UNLIKELY(OB_ITER_END != ret)) { LOG_WARN("Failed to fill output rows", K(ret)); } - // A pushdown filter may reject the whole scan range. There is no row to - // copy into the legacy group-by cells in that case; passing [0, 0) to them - // is treated as OB_INVALID_ARGUMENT. - } else if (nullptr != group_by_cell_ && 0 < count_ - && OB_FAIL(group_by_cell_->copy_output_rows(count_, *iter_param_))) { + } else if (nullptr != group_by_cell_ && OB_FAIL(group_by_cell_->copy_output_rows(count_, *iter_param_))) { LOG_WARN("Failed to copy output rows", K(ret)); } return ret; @@ -345,7 +354,9 @@ int ObVectorStore::fill_output_rows( blocksstable::ObIMicroBlockRowScanner &scanner, int64_t &begin_index, const int64_t end_index, - const ObFilterResult &res) + const ObFilterResult &res, + const bool need_set_end, + const bool need_init_vector) { int ret = OB_SUCCESS; int64_t row_capacity = 0; @@ -362,6 +373,20 @@ int ObVectorStore::fill_output_rows( } } else if (0 == row_capacity) { // skip if no rows selected + } else if (iter_param_->use_new_format()) { + if (OB_FAIL(scanner.get_rows_for_rich_format(cols_projector_, + col_params_, + row_ids_, + row_capacity, + 0, + cell_data_ptrs_, + len_array_, + exprs_, + &default_datums_, + is_pad_char_to_full_length(context_.sql_mode_), + need_init_vector))) { + LOG_WARN("Failed to get rows for rich format", K(ret)); + } } else if (OB_FAIL(scanner.get_rows_for_old_format(cols_projector_, col_params_, row_ids_, @@ -378,7 +403,9 @@ int ObVectorStore::fill_output_rows( count_ = row_capacity; eval_ctx_.set_batch_idx(count_); // todo: support data cross microblocks in vectorized - set_end(); + if (need_set_end) { + set_end(); + } if (OB_FAIL(fill_group_idx(group_idx))) { LOG_WARN("Failed to fill group idx", K(ret)); } else { @@ -531,6 +558,11 @@ int ObVectorStore::do_group_by( } else if (need_do_aggregate) { if (OB_FAIL(group_by_cell_->check_distinct_and_ref_valid())) { LOG_WARN("Failed to check valid", K(ret)); + } else if (iter_param_->use_new_format()) { + if (OB_FAIL(decoder->get_group_by_aggregate_result(*iter_param_, context_, row_ids_, cell_data_ptrs_, row_capacity, + 0, default_datums_, len_array_, eval_ctx_, *static_cast(group_by_cell_)))) { + LOG_WARN("Failed to get aggregate result", K(ret)); + } } else if (OB_FAIL(decoder->get_group_by_aggregate_result(*iter_param_, context_, row_ids_, cell_data_ptrs_, row_capacity, *static_cast(group_by_cell_)))) { LOG_WARN("Failed to get aggregate result", K(ret)); @@ -572,9 +604,13 @@ int ObVectorStore::fill_group_idx(const int64_t group_idx) { int ret = OB_SUCCESS; if (nullptr != group_idx_expr_) { - ObDatum *group_idx_datums = group_idx_expr_->locate_batch_datums(eval_ctx_); - for (int64_t i = 0; i < count_; ++i) { - group_idx_datums[i].set_int(group_idx); + if (iter_param_->op_->enable_rich_format_ && OB_FAIL(init_expr_vector_header(*group_idx_expr_, eval_ctx_, count_))) { + LOG_WARN("Failed to init expr", K(ret)); + } else { + ObDatum *group_idx_datums = group_idx_expr_->locate_batch_datums(eval_ctx_); + for (int64_t i = 0; i < count_; ++i) { + group_idx_datums[i].set_int(group_idx); + } } } return ret; @@ -592,10 +628,23 @@ int64_t ObVectorStore::to_string(char *buf, const int64_t buf_len) const K_(iter_end_flag), K_(eval_ctx)); if (nullptr != iter_param_ && 0 < count_) { - for (int64_t i = 0; i < datum_infos_.count(); i++) { - J_KV(K(i)); - J_COLON(); - J_KV("datums", (ObArrayWrap(datum_infos_.at(i).datum_ptr_, count_))); + if (iter_param_->use_new_format()) { + sql::EvalBound bound(count_, true); + for (int64_t i = 0; i < datum_infos_.count(); i++) { + J_KV(K(i)); + J_COLON(); + J_KV("new format datums", + sql::ToStrVectorHeader(*datum_infos_.at(i).expr_, + iter_param_->op_->get_eval_ctx(), + nullptr, + bound)); + } + } else { + for (int64_t i = 0; i < datum_infos_.count(); i++) { + J_KV(K(i)); + J_COLON(); + J_KV("datums", (ObArrayWrap(datum_infos_.at(i).datum_ptr_, count_))); + } } } J_OBJ_END(); diff --git a/src/storage/blocksstable/ob_micro_block_row_scanner.cpp b/src/storage/blocksstable/ob_micro_block_row_scanner.cpp index e50c08172..99b480f27 100644 --- a/src/storage/blocksstable/ob_micro_block_row_scanner.cpp +++ b/src/storage/blocksstable/ob_micro_block_row_scanner.cpp @@ -536,6 +536,19 @@ int ObIMicroBlockRowScanner::apply_black_filter_batch( row_ids[i] = cur_row_index + i; } if (0 == filter.get_col_count()) { + } else if (param_->use_new_format()) { + if (OB_FAIL(get_rows_for_rich_format(col_offsets, + filter.get_col_params(), + row_ids, + row_cap, + 0, + pd_filter_info.cell_data_ptrs_, + pd_filter_info.len_array_, + filter.get_filter_node().column_exprs_, + &filter.get_default_datums(), + filter.is_padding_mode()))) { + LOG_WARN("Failed to get rows for rich format", K(ret), K(cur_row_index)); + } } else if (OB_FAIL(get_rows_for_old_format(col_offsets, filter.get_col_params(), row_ids, @@ -629,6 +642,76 @@ int ObIMicroBlockRowScanner::get_rows_for_old_format( return ret; } +int ObIMicroBlockRowScanner::get_rows_for_rich_format( + const common::ObIArray &col_offsets, + const common::ObIArray &col_params, + const int32_t *row_ids, + const int64_t row_cap, + const int64_t vector_offset, + const char **cell_datas, + uint32_t *len_array, + sql::ObExprPtrIArray &exprs, + const common::ObIArray *default_datums, + const bool is_padding_mode, + const bool need_init_vector) +{ + int ret = OB_SUCCESS; + sql::ObEvalCtx &eval_ctx = param_->op_->get_eval_ctx(); + if (ObIMicroBlockReader::Reader == reader_->get_type()) { + ObMicroBlockReader *flat_reader = static_cast(reader_); + if (OB_FAIL(flat_reader->get_rows(col_offsets, + col_params, + default_datums, + is_padding_mode, + row_ids, + vector_offset, + row_cap, + row_, + exprs, + eval_ctx, + need_init_vector))) { + LOG_WARN("Failed to copy rows", K(ret), K(row_cap), + "row_ids", common::ObArrayWrap(row_ids, row_cap)); + } + } else if (ObIMicroBlockReader::Decoder == reader_->get_type() || + ObIMicroBlockReader::CSDecoder == reader_->get_type()) { + ObIMicroBlockDecoder *decoder = static_cast(reader_); + if (OB_FAIL(decoder->get_rows(col_offsets, + col_params, + default_datums, + is_padding_mode, + row_ids, + row_cap, + cell_datas, + vector_offset, + len_array, + eval_ctx, + exprs, + need_init_vector))) { + LOG_WARN("Failed to get rows", K(ret), K(row_cap)); + } + } else { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("Unexpected micro block reader", K(ret), K(reader_->get_type())); + } + + if (OB_SUCC(ret) && param_->has_lob_column_out() && reader_->has_lob_out_row()) { + for (int64_t i = 0; OB_SUCC(ret) && i < col_offsets.count(); i++) { + if (nullptr != col_params.at(i) && col_params.at(i)->get_meta_type().is_lob_storage() && + OB_FAIL(fill_exprs_lob_locator(*param_, + *context_, + *col_params.at(i), + *(exprs.at(i)), + eval_ctx, + vector_offset, + row_cap))) { + LOG_WARN("Fail to fill lob locator", K(ret)); + } + } + } + return ret; +} + int ObIMicroBlockRowScanner::filter_pushdown_filter( sql::ObPushdownFilterExecutor *parent, sql::ObPushdownFilterExecutor *filter, @@ -656,6 +739,14 @@ int ObIMicroBlockRowScanner::filter_pushdown_filter( bitmap))) { LOG_WARN("Failed to execute sample pushdown filter", K(ret)); } + // use uniform base currently, support new format later + // TODO(hanling): If the new vectorization format does not start counting from the 0th row, it can be computed in batches. + } else if (can_use_vectorize && + filter->get_op().enable_rich_format_ && + OB_FAIL(init_exprs_uniform_header(filter->get_column_exprs(), + filter->get_op().get_eval_ctx(), + filter->get_op().get_eval_ctx().max_batch_size_))) { + LOG_WARN("Failed to init exprs vector header", K(ret)); } else if (ObIMicroBlockReader::Decoder == reader_->get_type() || ObIMicroBlockReader::CSDecoder == reader_->get_type()) { // change to black filter in below situation @@ -789,6 +880,56 @@ int ObMicroBlockRowDirectScanner::open( } +// ATTENTION only called in cg scanner +// TODO remove useless code +int ObIMicroBlockRowScanner::get_next_rows( + const common::ObIArray &cols_projector, + const common::ObIArray &col_params, + const int32_t *row_ids, + const char **cell_datas, + const int64_t row_cap, + common::ObIArray &datum_infos, + const int64_t datum_offset, + uint32_t *len_array, + const bool is_padding_mode, + const bool need_init_vector) +{ + int ret = OB_SUCCESS; + sql::ObExprPtrIArray &exprs = *(const_cast(param_->output_exprs_)); + if (OB_UNLIKELY(nullptr == row_ids || nullptr == cell_datas || 0 == row_cap)) { + ret = OB_INVALID_ARGUMENT; + LOG_WARN("invalid argument", K(ret), KP(row_ids), KP(cell_datas), + K(row_cap), K(cols_projector.count()), K(datum_infos.count())); + } else if (param_->use_new_format()) { + if (OB_FAIL(get_rows_for_rich_format(cols_projector, + col_params, + row_ids, + row_cap, + datum_offset, + cell_datas, + len_array, + exprs, + nullptr, + is_padding_mode, + need_init_vector))) { + LOG_WARN("Failed to get rows for rich format", K(ret)); + } + // cg scanner use major sstable only, no need default row + } else if (OB_FAIL(get_rows_for_old_format(cols_projector, + col_params, + row_ids, + row_cap, + datum_offset, + cell_datas, + exprs, + datum_infos, + nullptr, + is_padding_mode))) { + LOG_WARN("Failed to get rows for old format", K(ret)); + } + return ret; +} + // start_offset is inclusive, end_offset is exclusive. int ObIMicroBlockRowScanner::advance_to_border( const ObDatumRowkey &rowkey, diff --git a/src/storage/ddl/ob_ddl_common_storage_impl.cpp b/src/storage/ddl/ob_ddl_common_storage_impl.cpp index 4251e7966..37dd5009b 100644 --- a/src/storage/ddl/ob_ddl_common_storage_impl.cpp +++ b/src/storage/ddl/ob_ddl_common_storage_impl.cpp @@ -32,11 +32,6 @@ #include "storage/ddl/ob_ddl_merge_task.h" #include "storage/ddl/ob_ddl_macro_block_writer.h" #include "storage/ddl/ob_lob_macro_block_writer.h" -#include "sql/engine/vector/ob_continuous_base.h" -#include "sql/engine/vector/ob_discrete_format.h" -#include "sql/engine/vector/ob_fixed_length_base.h" -#include "sql/engine/vector/ob_uniform_base.h" -#include "sql/engine/vector/type_traits.h" #include "sql/das/ob_das_utils.h" #include "storage/ddl/ob_ddl_tablet_context.h" diff --git a/src/storage/ddl/ob_direct_load_struct.cpp b/src/storage/ddl/ob_direct_load_struct.cpp index f08e77cdd..7a82513ed 100644 --- a/src/storage/ddl/ob_direct_load_struct.cpp +++ b/src/storage/ddl/ob_direct_load_struct.cpp @@ -18,7 +18,6 @@ #include "ob_direct_load_struct.h" #include "storage/ddl/ob_ddl_storage_util.h" -#include "storage/ddl/ob_ddl_vector_utils.h" #include "share/rc/ob_module_provider.h" #include "share/ob_ddl_error_message_table_operator.h" #include "storage/ob_tablet_autoincrement_service.h" @@ -1320,11 +1319,11 @@ int ObDirectLoadSliceWriter::fill_sstable_slice( } else if (OB_UNLIKELY(i >= column_items.count()) || OB_UNLIKELY(!column_items.at(i).is_valid_)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("column schema is wrong", K(ret), K(i), K(column_items)); - } else if (OB_FAIL(ObDDLVectorUtils::reshape_storage_vector(column_items.at(i).col_type_, - column_items.at(i).col_accuracy_, - arena, - vector, - selector))) { + } else if (OB_FAIL(ObDASUtils::reshape_vector_value(column_items.at(i).col_type_, + column_items.at(i).col_accuracy_, + arena, + vector, + selector))) { LOG_WARN("fail to reshape vector value", K(ret)); } } diff --git a/src/storage/lob/ob_lob_manager.cpp b/src/storage/lob/ob_lob_manager.cpp index a024cca39..4ac01b929 100644 --- a/src/storage/lob/ob_lob_manager.cpp +++ b/src/storage/lob/ob_lob_manager.cpp @@ -158,7 +158,7 @@ int ObLobManager::fill_lob_header(ObIAllocator &allocator, ObString &data, ObStr // Only use for default lob col val. int ObLobManager::fill_lob_header( ObIAllocator &allocator, - blocksstable::ObStorageDatum &datum) + ObStorageDatum &datum) { int ret = OB_SUCCESS; if (datum.is_null() || datum.is_nop_value()) { diff --git a/src/storage/retrieval/ob_text_retrieval_token_iter.cpp b/src/storage/retrieval/ob_text_retrieval_token_iter.cpp index fb3a4795d..a4327df86 100644 --- a/src/storage/retrieval/ob_text_retrieval_token_iter.cpp +++ b/src/storage/retrieval/ob_text_retrieval_token_iter.cpp @@ -448,7 +448,12 @@ int ObTextRetrievalTokenIter::estimate_token_doc_cnt() LOG_WARN("unexpected null total doc cnt expr", K(ret)); } else { int64_t total_doc_cnt = 0; - total_doc_cnt = total_doc_cnt_param_expr->locate_expr_datum(*eval_ctx_, 0).get_int(); + if (total_doc_cnt_param_expr->enable_rich_format() + && is_valid_format(total_doc_cnt_param_expr->get_format(*eval_ctx_))) { + total_doc_cnt = total_doc_cnt_param_expr->get_vector(*eval_ctx_)->get_int(0); + } else { + total_doc_cnt = total_doc_cnt_param_expr->locate_expr_datum(*eval_ctx_, 0).get_int(); + } max_token_relevance_ = sql::ObExprBM25::query_token_weight(token_doc_cnt_, total_doc_cnt); } } diff --git a/tools/deploy/mysql_test/psmalltest.py b/tools/deploy/mysql_test/psmalltest.py index 26f64eff9..158cacd49 100644 --- a/tools/deploy/mysql_test/psmalltest.py +++ b/tools/deploy/mysql_test/psmalltest.py @@ -540,6 +540,7 @@ 'inner_table.all_virtual_trans_scheduler', 'charset.bug57906573', 'pl.pl_bug_50178801_mysql', +'vectorize_2_0.expr_between_vec', 'system_variable.log_slave_updates', 'json.json_depth_mysql', 'pl.pl_bug_05225656_mysql', @@ -769,6 +770,7 @@ 'insert.insert_select_ignore', 'number.type_uint', 'sys_vars.group_concat_max_len_func', +'vectorize_2_0.basic', 'to_char_decode_percentile_sqlqa.to_char_datetime4_mysql', 'groupby.merge_gby_return_prev_gby_col_bug', 'json.json_contains_mysql', @@ -805,6 +807,7 @@ 'union_129', 'alter.alter_table_add_column_mysql', 'histogram.stats_bug_fetch_opt', +'vectorize_2_0.agg_bugs', 'type_date.func_timestamp', 'das.nlj_batch_bug_53676978', 'alloc_op.join_mj', @@ -841,6 +844,7 @@ 'alloc_op.nested_loop_join_right_null_joinon', 'year', 'merge_join.mj_optimizer_bug13058938_mysql', +'vectorize_2_0.vec_agg_bug', 'locale', 'groupby.group_by_asc_desc', 'bug_16964374_mysql', @@ -928,6 +932,8 @@ 'type_demotion.time_column', 'with_clause_mysql.cte_errno_mysql', 'window_function_mysql.window_function_redundancy', +'vectorize_2_0.lob_scan_rows', +'vectorize_2_0.op_name', 'any_value_mysql_sqlqa.any_value_subquery_mysql', 'funcs.datetime_func', 'datatype.datatype_bug30348915', @@ -1154,6 +1160,7 @@ 'information_schema.information_schema_key_column_usage_filteridx', 'vectorize.expr_format_bytes_vec', 'update.dml_update_multi_partition', +'sort_for_vectorize_20.local_merge_sort', 'dbms_xplan.display_active_session_plan', 'stmt_printer.stmt_printer_bug49322284_mysql', 'create_table.tc_column_comment_string', @@ -1200,6 +1207,7 @@ 'trx.jdbc_parallel_trx', 'jdbc_autocommit', 'pdml.delete_with_const_expr_pdml', +'vectorize_2_0.bug_temp_table_access_rescan', 'mysql57_t.signal_demo2', 'sparsevector_mysql_sqlqa.sparse_vector_dml_mysql', 'mysql8_t_1.odbc', @@ -1232,6 +1240,7 @@ 'das.das_batch_nlj_bug_53453708', 'number.type_int', 'hint.parser_2025062300109610167_mysql', +'sort_for_vectorize_20.topn_sort', 'ps_text.ps_name_case_insensitive', 'groupby.bug_52807802', 'create_view', @@ -1342,6 +1351,7 @@ 'update_delete_limit_index', 'static_engine.px_repart', 'update.update_gen_column', +'sort_for_vectorize_20.sort_bug_2025032800107832831', 'resolver.resolver_bug23153969', 'json.json_set_mysql', 'mysql8_t_1.func_aes_misc', @@ -1439,15 +1449,18 @@ 'jp.jp_rpad_sjis', 'show_create_function.show_create_function', 'auto_inc.auto_increment_alter', +'vectorize_2_0.cmp_expr', 'create_table.tc_column_length_zero', 'update.limit_update_delete', 'update.update_limit', 'index_column_case_mismatch_generated_column', +'vectorize_2_0.expr_regexp_replace_vec', 'update_distribute_plan', 'update.multi_update_innodb', 'pdml.distinct_update', 'index.idx_unique_update_type10', 'select.select_into_outfile_gbk', +'vectorize_2_0.hash_distinct_vec_2_0', 'global_index.global_index_with_partition_hint', 'constraint.bug_picker', 'update.update_issue_47504822', @@ -1467,6 +1480,7 @@ 'plan_cache.plan_cache_limit_mysql', 'sort.mix_sort_mysql', 'replace.jdbc_replace_trx', +'vectorize_2_0.aggregate', 'type_date.date_formats', 'gbk_obmysql_sqlqa.obmysql_gbk_other_scene2_mysql', 'with_clause_mysql.cte_with_del_udp_mysql', @@ -1494,6 +1508,7 @@ 'convert_tz_sqlqa.convert_tz_nested_function_mysql', 'type_date.dateformat', 'update_delete_limit_part', +'vectorize_2_0.hash_distinct_material_vec_2_0', 'found_rows_show_stmt_mysql', 'character_octet_length_sqlqa.characterlength_pl_mysql', 'greatest_least', @@ -1542,6 +1557,7 @@ 'stmt_printer.sql_quote_show_create_mysql', 'with_clause_mysql.recursive_join_mysql', 'like_goes_index_misc_dilang', +'sort_for_vectorize_20.sort_basic_all_type_no_addon', 'eliminate_redundant_distinct', 'type_demotion.year_column', 'trx.rr_u_10-19_nolimit', @@ -1570,6 +1586,7 @@ 'type_date.type_varchar', 'lower_case_bug52295979', 'ntlj_mysql_sqlqa.ntlj_partition2_mysql', +'vectorize_2_0.expr_and_or_vec', 'trx.rr_c_stats', 'array.string_to_array_mysql', 'select.select_into_outfile_bug_null', @@ -1591,6 +1608,7 @@ 'vectorize.vec_bug', 'prepare_text_sqlqa.prepare_grammar_mysql', 'vector_comparison_cmp_type', +'vectorize_2_0.bug_56628458', 'delete.delete_bug45361457', 'subplanfilter_mysql_sqlqa.spft_nested_mysql', 'lowercase_table3', @@ -1677,7 +1695,7 @@ 'dcl.priv_dml_with_multi_table', 'decimal_mysql_sqlqa.type_rowtype_decimal_mysql', 'online_use.old_gov_bid', -'groupby.adaptive_groupby_batch', +'groupby.bypass_vec2_bug', 'hint.name_with_quote_mysql', 'jp.jp_rtrim_sjis', 'any_value_mysql_sqlqa.any_value_copy_table_mysql', @@ -1726,6 +1744,7 @@ 'array.array_overlaps_mysql', 'optimizer_dynamic_sampling.dynamic_filter', 'lnnvl_sqlqa.base_mysql', +'sort_for_vectorize_20.sort_basic_all_type', 'global_index.global_index_join_mysql', 'index_21_trx_concu_default', 'with_clause_mysql.basic_mysql', @@ -1781,6 +1800,7 @@ 'set_subquery_mysql_sqlqa.set_subquery_mysql', 'cross_validation.optimizer_bug47600168_mysql', 'avg_mysql_sqlqa.avg_function_type_mysql', +'vectorize_2_0.decimal_int_arithmetics_rich_format', 'error_msg', 'json.json_object_mysql', 'debug_log_level', @@ -1833,6 +1853,8 @@ 'idx_with_const_expr_23_left_join_dilang', 'fts_index.bug56676142', 'ntlj_mysql_sqlqa.ntlj_constraint_mysql', + +'vectorize_2_0.empty_batch', 'reference_role_mysql_sqlqa.role_routine_grants_mysql', 'trx.rr_u_10-19', 'ntlj_mysql_sqlqa.ntlj_datetype2_mysql', @@ -2487,6 +2509,7 @@ 'character_pl_sqlqa.gb18030_pl_3_mysql', 'view.gv_trans_scheduler', 'select.select_into_outfile_bug_56096045', +'vectorize_2_0.approx_count_mgby', 'decimal_mysql_sqlqa.table_index_partition_decimal_mysql', 'csv_diagnosis_sqlqa.warn_limit_integer_mysql', @@ -2568,7 +2591,7 @@ 'exists_sqlqa.exists_plsql_mysql', 'avg_mysql_sqlqa.avg_partition_mysql', 'ascii_tis620_sqlqa.tis620_other_scene_mysql', -'vectorize.expr_lower_upper_rowsets_mysql', +'vectorize.expr_lower_upper_vec_2_0_mysql', 'uservariable_sqlqa.user_variables', 'mysql57_t.index_merge_update', 'mysql57_t.view_alias', @@ -2737,9 +2760,11 @@ 'Shared_HJ_mysql_sqlqa.Shared_HJ_Generate_column_mysql', 'join.hash_join_empty_left_table', 'vectorize.expr_cmp_vec', +'vectorize_2_0.expr_div_vec_rich_format', 'window_function_mysql.window_std_var_optimized', 'error_code.warnings', 'update.update_minimal_bug_2024080100104017969', +'vectorize_2_0.expr_mul_vec_rich_format', 'datatype.many_number_pk_timestamp', 'window_function_mysql.window_functions_big', 'datatype.datatype', @@ -2805,6 +2830,7 @@ 'new_online_use.comment', 'to_char_decode_percentile_sqlqa.to_char_supplement_mysql', 'pl.pl_bugs_05_mysql', +'vectorize_2_0.expr_add_vec_rich_format', 'join.join_bug', 'time_function_mysql_sqlqa.hour_pl_mysql', 'join.join_from_business_sql', @@ -2813,6 +2839,7 @@ 'ps_text.ps_without_parameter_template', 'fts_index.functional_lookup_nobatch', 'hkscs_utf16le_sqlqa.dec8_datatype_mysql', +'vectorize_2_0.expr_minus_vec_rich_format', 'histogram.stats_online_trans', 'subplanfilter_mysql_sqlqa.spft_copytable2_mysql', 'outline.start_with_comment', diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt index f130d8f0e..9c058b303 100644 --- a/unittest/CMakeLists.txt +++ b/unittest/CMakeLists.txt @@ -77,6 +77,8 @@ if(ANDROID) ${ANDROID_ALL_TEST_SOURCES}) # Extra sources required by specific test macros (rs_unittest, aggr_unittest2) target_sources(all_tests PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/sql/engine/test_op_engine.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/sql/engine/ob_fake_table_scan_vec_op.cpp ${CMAKE_CURRENT_SOURCE_DIR}/storage/ob_truncate_info_helper.cpp) # Rename each file's main() so only all_tests_main.cpp provides the real one target_compile_definitions(all_tests PRIVATE main=disabled_main) diff --git a/unittest/share/CMakeLists.txt b/unittest/share/CMakeLists.txt index 5b162d6d9..b33623335 100644 --- a/unittest/share/CMakeLists.txt +++ b/unittest/share/CMakeLists.txt @@ -56,6 +56,7 @@ add_subdirectory(allocator) add_subdirectory(cache) add_subdirectory(deadlock) add_subdirectory(schema) +add_subdirectory(vector) add_subdirectory(vector_index) add_subdirectory(compaction) add_subdirectory(scheduler) diff --git a/unittest/sql/engine/test_op_engine.cpp b/unittest/sql/engine/test_op_engine.cpp new file mode 100644 index 000000000..7a452784c --- /dev/null +++ b/unittest/sql/engine/test_op_engine.cpp @@ -0,0 +1,852 @@ +/* + * Copyright (c) 2025 OceanBase. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// #define USING_LOG_PREFIX SQL_ENGINE +#define USING_LOG_PREFIX COMMON +#include "test_op_engine.h" +#include "ob_fake_table_scan_vec_op.h" +#include "src/share/ob_device_manager.h" +#include "src/storage/meta_store/ob_server_storage_meta_service.h" +#include "src/storage/ob_file_system_router.h" +#include "ob_test_config.h" +#include "share/rc/ob_module_provider.h" +#include "sql/das/ob_data_access_service.h" + +using namespace oceanbase::sql; +namespace test +{ +// Single-tenant module provider for the engine test: exposes the mock +// ObDataAccessService and ObIOService through share::g_mp. +class TestOpEngineModuleProvider : public share::ObIModuleProvider +{ +public: + sql::ObDataAccessService *data_access_service() override { return das_; } + common::ObIOService *io_service() override { return io_mgr_; } + sql::ObDataAccessService *das_ = nullptr; + common::ObIOService *io_mgr_ = nullptr; +}; +TestOpEngine::TestOpEngine() + : runtime_state_(), + old_server_runtime_(nullptr), + old_mp_(nullptr), + test_mp_(nullptr), + io_service_(nullptr), + destroyed_(false), + vec_2_exec_ctx_(vec_2_alloc_) +{ + vec_2_exec_ctx_.set_sql_ctx(&sql_ctx_); +} + +TestOpEngine::~TestOpEngine() +{ + destroy(); +} + +void TestOpEngine::SetUp() +{ + old_server_runtime_ = share::g_server_runtime; + old_mp_ = share::g_mp; + TestOptimizerUtils::SetUp(); + addr_.set_ip_addr("1.1.1.1", 8888); + vec_2_exec_ctx_.set_my_session(&session_info_); + vec_2_exec_ctx_.create_physical_plan_ctx(); + ASSERT_EQ(prepare_io(ObTestOpConfig::get_instance().test_filename_prefix_), OB_SUCCESS); + + // Single-tenant seekdb: low-layer modules are reached through share::g_mp + // (ObIModuleProvider). Publish a test provider exposing the ObDataAccessService + // (used in ObTableScanOp ctor) and the ObIOService. + ASSERT_EQ(runtime_state_.init(), 0); + share::g_server_runtime = &runtime_state_; + static ObDataAccessService das_instance; + ASSERT_EQ(OB_SUCCESS, common::ObIOService::server_module_new(io_service_)); + ASSERT_EQ(OB_SUCCESS, common::ObIOService::server_module_init(io_service_)); + ASSERT_EQ(OB_SUCCESS, io_service_->start()); + static TestOpEngineModuleProvider mp; + mp.das_ = &das_instance; + mp.io_mgr_ = io_service_; + test_mp_ = ∓ + share::g_mp = ∓ + + out_origin_result_stream_.open(ObTestOpConfig::get_instance().test_filename_origin_output_file_, std::ios::out | std::ios::trunc); + out_vec_result_stream_.open(ObTestOpConfig::get_instance().test_filename_vec_output_file_, std::ios::out | std::ios::trunc); +} + +void TestOpEngine::TearDown() +{ + destroy(); +} + +void TestOpEngine::destroy() +{ + if (destroyed_) { + return; + } + destroyed_ = true; + + if (share::g_mp == test_mp_) { + share::g_mp = old_mp_; + } + if (nullptr != test_mp_) { + TestOpEngineModuleProvider *mp = static_cast(test_mp_); + mp->das_ = nullptr; + mp->io_mgr_ = nullptr; + test_mp_ = nullptr; + } + if (nullptr != io_service_) { + io_service_->stop(); + common::ObIOService::server_module_destroy(io_service_); + } + if (share::g_server_runtime == &runtime_state_) { + share::g_server_runtime = old_server_runtime_; + } + runtime_state_.destroy(); + + SERVER_STORAGE_META_SERVICE.destroy(); + OB_STORAGE_OBJECT_MGR.stop(); + OB_STORAGE_OBJECT_MGR.wait(); + OB_STORAGE_OBJECT_MGR.destroy(); + OB_STORE_CACHE.destroy(); + ObIOManager::get_instance().destroy(); + ObKVGlobalCache::get_instance().destroy(); + + // LOCAL_DEVICE_INSTANCE.destroy(); +} + +common::ObIODevice *TestOpEngine::get_device_inner() +{ + int ret = OB_SUCCESS; + common::ObIODevice *device = NULL; + common::ObString storage_type_prefix(OB_LOCAL_PREFIX); + const ObStorageIdMod storage_id_mode(0, ObStorageUsedMod::STORAGE_USED_DATA); + if (OB_FAIL(common::ObDeviceManager::get_local_device(storage_type_prefix, storage_id_mode, device))) { + LOG_WARN("fail to get local device", K(ret)); + } + return device; +} + +// copy from unittest/mtlenv/mock_server_runtime_env.h and unittest/storage/blocksstable/ob_data_file_prepare.h +// refine some code +// call prepare_io() for testing operators that needs to dump intermediate data +int TestOpEngine::prepare_io(const std::string & test_data_name_suffix) +{ + int ret = OB_SUCCESS; + + ObIODOpt iod_opt_array[5]; + ObIODOpts iod_opts; + iod_opts.opts_ = iod_opt_array; + int64_t macro_block_count = 5 * 1024; + int64_t macro_block_size = 64 * 1024; + char cur_dir[OB_MAX_FILE_NAME_LENGTH]; + char test_data_name[OB_MAX_FILE_NAME_LENGTH]; + char data_dir[OB_MAX_FILE_NAME_LENGTH]; + char file_dir[OB_MAX_FILE_NAME_LENGTH]; + char clog_dir[OB_MAX_FILE_NAME_LENGTH]; + char slog_dir[OB_MAX_FILE_NAME_LENGTH]; + if (NULL == getcwd(cur_dir, OB_MAX_FILE_NAME_LENGTH)) { + ret = OB_BUF_NOT_ENOUGH; + STORAGE_LOG(WARN, "cannot get cur dir", K(ret)); + } else if (OB_FAIL(databuff_printf(test_data_name, OB_MAX_FILE_NAME_LENGTH, "%s", test_data_name_suffix.data()))) { + STORAGE_LOG(WARN, "failed to gen test name", K(ret)); + } else if (OB_FAIL(databuff_printf(data_dir, OB_MAX_FILE_NAME_LENGTH, "%s/data_%s", cur_dir, test_data_name))) { + STORAGE_LOG(WARN, "failed to gen data dir", K(ret)); + } else if (OB_FAIL(databuff_printf(file_dir, OB_MAX_FILE_NAME_LENGTH, "%s/sstable/", data_dir))) { + STORAGE_LOG(WARN, "failed to databuff printf", K(ret)); + } else if (OB_FAIL(databuff_printf(slog_dir, OB_MAX_FILE_NAME_LENGTH, "%s/slog/", data_dir))) { + STORAGE_LOG(WARN, "failed to gen slog dir", K(ret)); + } else if (OB_FAIL(databuff_printf(clog_dir, OB_MAX_FILE_NAME_LENGTH, "%s/clog/", data_dir))) { + STORAGE_LOG(WARN, "failed to gen clog dir", K(ret)); + } else if (OB_FAIL(OB_FILE_SYSTEM_ROUTER.get_instance().init(data_dir, clog_dir))) { + STORAGE_LOG(WARN, "failed to init file system router", K(ret)); + } else if (OB_FAIL(ObDeviceManager::get_instance().init_devices_env())) { + LOG_WARN("fail to init device manager", K(ret)); + } + storage_env_.data_dir_ = data_dir; + storage_env_.sstable_dir_ = file_dir; + storage_env_.clog_dir_ = clog_dir; + storage_env_.default_block_size_ = common::OB_DEFAULT_MACRO_BLOCK_SIZE; + storage_env_.data_disk_size_ = macro_block_count * common::OB_DEFAULT_MACRO_BLOCK_SIZE; + storage_env_.data_disk_percentage_ = 0; + storage_env_.log_disk_size_ = 20 * 1024 * 1024 * 1024ll; + share::ObLocalDevice *local_device = static_cast(get_device_inner()); + ObIODeviceWrapper::get_instance().set_local_device(local_device); + iod_opt_array[0].set("data_dir", storage_env_.data_dir_); + iod_opt_array[1].set("sstable_dir", storage_env_.sstable_dir_); + iod_opt_array[2].set("block_size", storage_env_.default_block_size_); + iod_opt_array[3].set("datafile_disk_percentage", storage_env_.data_disk_percentage_); + iod_opt_array[4].set("datafile_size", storage_env_.data_disk_size_); + iod_opts.opt_cnt_ = 5; + ObIOServiceConfig io_config = ObIOServiceConfig::default_instance(); + const int64_t async_io_thread_count = 8; + const int64_t sync_io_thread_count = 2; + const int64_t max_io_depth = 256; + const int64_t bucket_num = 1024L; + const int64_t block_size = common::OB_MALLOC_BIG_BLOCK_SIZE; + + char cmd[OB_MAX_FILE_NAME_LENGTH]; + if (OB_FAIL(ret)) { + // do nothing + } else if (OB_FAIL(databuff_printf(cmd, OB_MAX_FILE_NAME_LENGTH, "rm -rf %s", data_dir))) { + LOG_WARN("failed to gen cmd", K(ret)); + } else if (0 != system(cmd)) { + ret = OB_ERR_SYS; + LOG_WARN("failed to exec cmd", K(ret), K(cmd), K(errno), KERRMSG); + } else if (OB_FAIL(FileDirectoryUtils::create_full_path(slog_dir))) { + LOG_WARN("failed to create slog dir", K(ret), K(slog_dir)); + } else if (OB_FAIL(FileDirectoryUtils::create_full_path(file_dir))) { + LOG_WARN("failed to create file dir", K(ret), K(file_dir)); + } else if (OB_FAIL(LOCAL_DEVICE_INSTANCE.init(iod_opts))) { + LOG_WARN("fail to init io device", K(ret), K_(storage_env)); + } else if (OB_FAIL(ObIOManager::get_instance().init())) { + LOG_WARN("fail to init io manager", K(ret)); + } else if (OB_FAIL(ObIOManager::get_instance().add_device_channel(&LOCAL_DEVICE_INSTANCE, + async_io_thread_count, + sync_io_thread_count, max_io_depth))) { + LOG_WARN("add device channel failed", K(ret)); + } else if (OB_FAIL(SERVER_STORAGE_META_SERVICE.init())) { + LOG_WARN("fail to init storage meta service", K(ret)); + } else if (OB_FAIL(SERVER_STORAGE_META_SERVICE.set_need_reserved_for_test(false))) { + LOG_WARN("fail to set need reserved for test", K(ret)); + } else if (OB_FAIL(OB_STORAGE_OBJECT_MGR.init(storage_env_.default_block_size_))) { + LOG_WARN("init block manager fail", K(ret)); + } else if (OB_FAIL(ObIOManager::get_instance().start())) { + LOG_WARN("fail to start io manager", K(ret)); + } else if (OB_FAIL(FileDirectoryUtils::create_full_path(file_dir))) { + STORAGE_LOG(WARN, "failed to create file dir", K(ret), K(file_dir)); + } else if (OB_FAIL(OB_STORAGE_OBJECT_MGR.start(0/*reserved_size*/))) { + STORAGE_LOG(WARN, "Fail to start storage object mgr", K(ret)); + } else if (OB_FAIL(OB_SERVER_BLOCK_MGR.first_mark_device())) { + STORAGE_LOG(WARN, "Fail to start first mark device", K(ret)); + } else if (OB_FAIL(OB_STORE_CACHE.init())) { + LOG_WARN("fail to init OB_STORE_CACHE, ", K(ret)); + } else { + } + return ret; +} + +int TestOpEngine::do_rewrite(ObStmt *&stmt, ObPhysicalPlan *phy_plan) +{ + int ret = OB_SUCCESS; + + ObSchemaChecker schema_checker; + if (OB_FAIL(schema_checker.init(sql_schema_guard_))) { + LOG_WARN("fail to init schema_checker", K(ret)); + } else { + ObTransformerCtx transformer_ctx; + transformer_ctx.allocator_ = &allocator_; + transformer_ctx.session_info_ = &session_info_; + transformer_ctx.schema_checker_ = &schema_checker; + transformer_ctx.exec_ctx_ = &exec_ctx_; + transformer_ctx.expr_factory_ = &expr_factory_; + transformer_ctx.stmt_factory_ = &stmt_factory_; + // ctx.stat_mgr_ = &stat_manager_; + transformer_ctx.sql_schema_guard_ = &sql_schema_guard_; + transformer_ctx.self_addr_ = &addr_; + transformer_ctx.merged_version_ = OB_MERGED_VERSION_INIT; + + transformer_ctx.phy_plan_ = phy_plan; + + ObTransformerImpl transformer(&transformer_ctx); + ObDMLStmt *sql_stmt = dynamic_cast(stmt); + if (stmt->is_explain_stmt()) { sql_stmt = static_cast(stmt)->get_explain_query_stmt(); } + if (OB_SUCC(ret)) { + if (OB_FAIL(transformer.transform(sql_stmt))) { + LOG_WARN("Failed to transform statement", K(ret)); + } else { + stmt = sql_stmt; + } + } + } + + return ret; +} + +int TestOpEngine::do_optimize(ObStmt *stmt, ObLogPlan *&plan, ObPhyPlanType distr, ObArenaAllocator &allocator, + ObExecContext &exec_ctx) +{ + int ret = OB_SUCCESS; + ObDMLStmt *dml_stmt = dynamic_cast(stmt); + ObOptimizerContext *ctx_ptr = static_cast(allocator.alloc(sizeof(ObOptimizerContext))); + exec_ctx.get_sql_ctx()->session_info_ = &session_info_; + ObOptimizerContext *opt_ctx = new (ctx_ptr) ObOptimizerContext( + &session_info_, &exec_ctx, + // schema_mgr_, // schema manager + &sql_schema_guard_, + //&stat_manager_, // statistics manager + NULL, // statistics manager + static_cast(allocator_), ¶m_store_, addr_, dml_stmt->get_query_ctx()->get_global_hint(), + expr_factory_, dml_stmt, false, stmt_factory_.get_query_ctx()); + opt_ctx->set_opt_stat_manager(&opt_stat_manager_); + opt_ctx->disable_batch_rpc(); + opt_ctx->set_local_server_addr("1.1.1.1", 8888); + opt_ctx->set_use_default_stat(); + ObTableLocation table_location; + ret = opt_ctx->get_table_location_list().push_back(table_location); + ObOptimizer optimizer(*opt_ctx); + if (OB_FAIL(optimizer.optimize(*dml_stmt, plan))) { LOG_WARN("failed to optimize", "SQL", *dml_stmt); } + return ret; +} + +int TestOpEngine::do_code_generate(const ObLogPlan &log_plan, ObCodeGenerator &code_gen, ObPhysicalPlan &phy_plan) +{ + int ret = OB_SUCCESS; + // WARN: may have bug here + log_plan.get_optimizer_context().set_batch_size(ObTestOpConfig::get_instance().batch_size_); + phy_plan.set_batch_size(ObTestOpConfig::get_instance().batch_size_); + + if (OB_FAIL(ret)) { + } else if (OB_FAIL(code_gen.generate_exprs(log_plan, phy_plan))) { + LOG_WARN("fail to get all raw exprs", K(ret)); + } else if (OB_FAIL(code_gen.generate_operators(log_plan, phy_plan))) { + LOG_WARN("fail to generate plan", K(ret)); + } + + return ret; +} + +int TestOpEngine::test_phy_plan(ObPhysicalPlan &plan) +{ + UNUSED(plan); + int ret = OB_SUCCESS; + return ret; +} + +ObOperator *TestOpEngine::subtitude_table_scan_to_fake(ObOperator *root) +{ + for (uint32 i = 0; i < root->get_child_cnt(); i++) { + root->children_[i] = subtitude_table_scan_to_fake(root->children_[i]); + if (i == 0) { + root->left_ = root->children_[i]; + root->left_->parent_ = root; + } + if (i == 1) { + root->right_ = root->children_[i]; + root->right_->parent_ = root; + } + } + + if (root->get_spec().get_type() == PHY_TABLE_SCAN) { + root = new oceanbase::sql::ObFakeTableScanVecOp(root->get_exec_ctx(), root->get_spec(), root->get_input()); + } + return root; +} + +int TestOpEngine::get_tested_op_from_string(const std::string &sql, bool vector_2, ObOperator *&op, + ObExecutor &executor, bool use_old_ctx) +{ + int ret = OB_SUCCESS; + ObStmt *stmt = NULL; + ObLogPlan *log_plan = NULL; + ObPhysicalPlan *phy_plan = NULL; + ObArenaAllocator *p_alloc = NULL; + ObExecContext *p_exec_ctx = NULL; + + if (vector_2 || !use_old_ctx) { + p_alloc = &vec_2_alloc_; + p_exec_ctx = &vec_2_exec_ctx_; + } else { + p_alloc = &allocator_; + p_exec_ctx = &exec_ctx_; + } + // 1.resolve + // 2.rewrite + // 3.optimize + do_resolve(sql.c_str(), stmt, true, JSON_FORMAT, OB_SUCCESS, false); + if (OB_FAIL(do_rewrite(stmt, phy_plan))) { + LOG_ERROR("rewrite failed", K(ret)); + } else if (OB_FAIL(do_optimize(stmt, log_plan, OB_PHY_PLAN_LOCAL, *p_alloc, *p_exec_ctx))) { + LOG_ERROR("optimize failed", K(ret)); + } else if (NULL == log_plan) { + ret = OB_ERR_UNEXPECTED; + LOG_ERROR("log_plan is null"); + } else if (OB_FAIL(ObCacheObjectFactory::alloc(phy_plan))) { + LOG_ERROR("fail to allocate mem to phy_plan", K(ret)); + } else if (NULL == phy_plan) { + ret = OB_ERR_UNEXPECTED; + LOG_ERROR("phy_plan is null"); + } else { + // display explain plan + oceanbase::sql::ObExplainDisplayOpt option; + option.with_tree_line_ = true; + ObSqlPlan sql_plan(log_plan->get_allocator()); + ObSEArray plan_strs; + if (OB_FAIL(sql_plan.print_sql_plan(log_plan->get_plan_root(), EXPLAIN_EXTENDED_NOADDR, option, plan_strs))) { + LOG_WARN("failed to store sql plan", K(ret)); + } else { + LOG_INFO("Generate Logical plan:"); + _OB_LOG(INFO, "%*s", plan_strs.at(0).length(), plan_strs.at(0).ptr()); + } + + // 4.generate physical plan + if (OB_FAIL(generate_physical_plan(log_plan, *phy_plan, *p_exec_ctx, vector_2))) { + LOG_ERROR("generate physical plan failed", K(ret)); + } + + // 5.open and get runtime op + // ObFakeTableScanOp will replace bottom ObTableScanOp here + if (OB_FAIL(open_and_get_op(*p_exec_ctx, executor, *phy_plan, op))) { LOG_ERROR("open operators failed", K(ret)); } + } + + return ret; +} + +std::string TestOpEngine::get_decimal_result_from_datum(ObExpr *expr, const ObDatum &datum) +{ + int ret = OB_SUCCESS; + std::string result; + switch (get_decimalint_type(expr->datum_meta_.precision_)) { + case common::DECIMAL_INT_32: result = std::to_string(datum.get_decimal_int32()); break; + case common::DECIMAL_INT_64: result = std::to_string(datum.get_decimal_int64()); break; + case common::DECIMAL_INT_128: result = std::to_string(datum.get_decimal_int128()); break; + case common::DECIMAL_INT_256: result = std::to_string(datum.get_decimal_int256()); break; + case common::DECIMAL_INT_512: result = std::to_string(datum.get_decimal_int512()); break; + default: LOG_WARN("unexpected precision", K(expr->datum_meta_)); + } + return result; +} + +std::string TestOpEngine::get_decimal_result_from_payload(ObExpr *expr, const char *payload) +{ + int ret = OB_SUCCESS; + std::string result; + switch (get_decimalint_type(expr->datum_meta_.precision_)) { + case common::DECIMAL_INT_32: result = std::to_string(*(int32_t *)payload); break; + case common::DECIMAL_INT_64: result = std::to_string(*(int64_t *)payload); break; + case common::DECIMAL_INT_128: result = std::to_string(*(int128_t *)payload); break; + case common::DECIMAL_INT_256: result = std::to_string(*(int256_t *)payload); break; + case common::DECIMAL_INT_512: result = std::to_string(*(int512_t *)payload); break; + default: LOG_WARN("unexpected precision", K(expr->datum_meta_)); + } + return result; +} + +std::string TestOpEngine::get_data_by_datum_type(const ObOperator *op, ObExpr *expr, ObEvalCtx &eval_ctx, int row) +{ + std::string result_str; + ObIVector *i_vector = NULL; + ObDatum *datums = NULL; + if (expr->enable_rich_format() && op->spec_.get_type() != PHY_EXPR_VALUES) { + i_vector = expr->get_vector(eval_ctx); + if (i_vector->is_null(row)) { result_str = "null"; } + } else { + datums = expr->locate_batch_datums(eval_ctx); + if (datums[row].is_null()) { result_str = "null"; } + } + + if (result_str != "null") { + switch (expr->datum_meta_.get_type()) { + // why expr->datum_meta_.get_type() == ObInt32Type while expr->res_buf_len_ == 8 ????? + case ObInt32Type: + if (i_vector != NULL) { + result_str = std::to_string(i_vector->get_int32(row)); + // str_result = std::to_string(i_vector->get_int(row)); + } else { + result_str = std::to_string(datums[row].get_int32()); + } + break; + case ObIntType: { + if (i_vector != NULL) { + result_str = std::to_string(i_vector->get_int(row)); + } else { + result_str = std::to_string(datums[row].get_int()); + } + break; + } + case ObDoubleType: { + if (i_vector != NULL) { + result_str = std::to_string(i_vector->get_double(row)); + } else { + result_str = std::to_string(datums[row].get_double()); + } + break; + } + case ObNumberType: { + // result type of avg() + if (i_vector != NULL) { + ObNumber ob_num(i_vector->get_number(row)); + char buf[ob_num.get_length()]; + ob_num.to_string(buf, ob_num.get_length()); + result_str = std::string(buf, ob_num.get_length()); + } else { + ObNumber ob_num(datums[row].get_number()); + char buf[ob_num.get_length()]; + ob_num.to_string(buf, ob_num.get_length()); + result_str = std::string(buf, ob_num.get_length()); + } + break; + } + case ObDecimalIntType: { + // result type of sum() + if (i_vector != NULL) { + // TODO: replace this when i_vector have get_decimalXXX() api + result_str = get_decimal_result_from_payload(expr, i_vector->get_payload(row)); + } else { + result_str = get_decimal_result_from_datum(expr, datums[row]); + } + break; + } + case ObVarcharType: + case ObCharType: { + if (i_vector != NULL) { + result_str = std::string(i_vector->get_payload(row), i_vector->get_length(row)); + } else { + // str_result = std::to_string(datums[row].get_int32()); + result_str = std::string(datums[row].ptr_, datums[row].len_); + } + break; + } + default: LOG_INFO("Can not display value so far for: ", K(expr->datum_meta_.get_type())); + } + } + + return result_str; +} + +int TestOpEngine::generate_physical_plan(ObLogPlan *log_plan, ObPhysicalPlan &phy_plan, ObExecContext &exec_ctx, + bool enable_rich_format) +{ + int ret = OB_SUCCESS; + + // begin generate phsical plan + ObPhysicalPlanCtx *pctx = exec_ctx.get_physical_plan_ctx(); + if (NULL == pctx) { + ret = OB_ERR_UNEXPECTED; + LOG_ERROR("pctx is null"); + } else { + ObCodeGenerator code_gen(&(pctx->get_datum_param_store())); + log_plan->get_optimizer_context().get_session_info()->sys_vars_cache_.set_enable_rich_vector_format(enable_rich_format); + log_plan->get_optimizer_context().get_session_info()->init_use_rich_format(); + phy_plan.set_use_rich_format(enable_rich_format); + + if (OB_FAIL(do_code_generate(*log_plan, code_gen, phy_plan))) { + LOG_ERROR("Can not generate physical plan ", K(ret)); + } else { + pctx->set_phy_plan(&phy_plan); + } + } + + return ret; +} + +int TestOpEngine::open_and_get_op(ObExecContext &exec_ctx, ObExecutor &ob_exe, ObPhysicalPlan &phy_plan, + ObOperator *&root) +{ + int ret = OB_SUCCESS; + + ObTaskExecutorCtx &task_exec_ctx = exec_ctx.get_task_exec_ctx(); + ObExecuteResult &exe_result = task_exec_ctx.get_execute_result(); + // ObExecutor ob_exe; + if (OB_FAIL(ob_exe.init(&phy_plan))) { + LOG_WARN("fail init exec ObExecutor", K(ret)); + } else if (OB_FAIL(exec_ctx.init_phy_op(phy_plan.get_phy_operator_size()))) { + LOG_WARN("fail init exec phy op ctx", K(ret)); + } else if (OB_FAIL(exec_ctx.init_expr_op(phy_plan.get_expr_operator_size()))) { + LOG_WARN("fail init exec expr op ctx", K(ret)); + } else if (OB_FAIL(ob_exe.execute_plan(exec_ctx))) { + LOG_ERROR("execute plan fail ", K(ret)); + } else { + // ob_exe.execute_plan(exec_ctx_) will use ObArenaAllocator to allocate memory for original ObTableScanOp + // while *subtitude_table_scan_to_fake()* will directly use *new* to new a ObFakeTableScanVecOp, for simple + exe_result.static_engine_root_ = subtitude_table_scan_to_fake(exe_result.static_engine_root_); + + if (OB_FAIL(exe_result.open(exec_ctx))) { + LOG_ERROR("open plan fail ", K(ret)); + } else { + root = exe_result.static_engine_root_; + } + } + + return ret; +} + +int TestOpEngine::print_and_cmp_final_output(const ObBatchRows *brs, ObOperator *root, bool is_comparing) +{ + int ret = OB_SUCCESS; + std::string output_line; + for (int i = 0; i < brs->size_; i++) { + if (!brs->skip_->exist(i)) { + for (int j = 0; j < root->get_spec().output_.count(); j++) { + ObExpr *output_expr = root->get_spec().output_.at(j); + std::string result_str = get_data_by_datum_type(root, output_expr, root->eval_ctx_, i); + output_line += result_str + " "; + + // compare whether is the same output + // cmp output results + if (is_comparing) { + if (result_str.compare(temp_cmp_data_[i][j]) != 0) { + // different + ret = OB_ERR_UNEXPECTED; + LOG_WARN("Got an different output result in :", K(i), K(j)); + LOG_WARN("Original op output value is :", K(ObString(temp_cmp_data_[i][j].data()))); + LOG_WARN(" New op output value is :", K(ObString(result_str.data()))); + } + } else { + temp_cmp_data_[i].push_back(result_str); + } + } + LOG_INFO(output_line.data()); + output_line.clear(); + } + } + return ret; +} + +// +int TestOpEngine::print_to_file(const ObBatchRows *brs, ObOperator *root, const ExprFixedArray &exprs, bool is_result, + std::ofstream *out_data_stream) +{ + int ret = OB_SUCCESS; + + std::string output_line; + for (int i = 0; i < brs->size_; i++) { + if (!brs->skip_->exist(i)) { + for (int j = 0; j < exprs.count(); j++) { + ObExpr *expr = exprs.at(j); + std::string result_str = get_data_by_datum_type(root, expr, root->eval_ctx_, i); + output_line += result_str; + if (j != exprs.count() - 1) { output_line += ", "; } + } + if (is_result) { + *out_data_stream << output_line << std::endl; + } else { + *out_data_stream << "insert into " << reinterpret_cast(root)->get_tsc_spec().table_name_ + << " values(" << output_line << ");" << std::endl; + } + + output_line.clear(); + } + } + return ret; +} + +int TestOpEngine::basic_random_test(const std::string &test_file) +{ + // run tests + std::ifstream if_tests(test_file); + if (if_tests.is_open() != true) { return -1; } + + int ret = OB_SUCCESS; + std::string line; + + while (std::getline(if_tests, line)) { + // handle query + if (line.size() <= 0) continue; + if (line.at(0) == '#') continue; + + if (ObTestOpConfig::get_instance().output_result_to_file_) { + system(("rm -f " + ObTestOpConfig::get_instance().test_filename_prefix_ + ".log").data()); + system(("rm -f " + ObTestOpConfig::get_instance().test_filename_prefix_ + ".log.*").data()); + system(("cat /dev/null > " + ObTestOpConfig::get_instance().test_filename_origin_output_file_).c_str()); + system(("cat /dev/null > " + ObTestOpConfig::get_instance().test_filename_vec_output_file_).c_str()); + } + + ret = OB_SUCCESS; + ObOperator *original_root = NULL; + ObOperator *vec_2_root = NULL; + ObExecutor original_exector; + ObExecutor vec_2_exector; + if (OB_FAIL(get_tested_op_from_string(line, false, original_root, original_exector))) { + LOG_WARN("generate original tested op fail, sql: ", K(line.data())); + } else if (OB_FAIL(get_tested_op_from_string(line, true, vec_2_root, vec_2_exector))) { + LOG_WARN("generate vectorization 2.0 tested op fail, sql: ", K(line.data())); + } else { + // begin get_next_batch() + // 5.compare two op outputs + int round = 1; + const int64_t max_row_cnt = 256; + const ObBatchRows *original_child_brs = nullptr; + const ObBatchRows *vec_2_child_brs = nullptr; + + LOG_INFO("============== Final output ===============", K(round)); + while (!original_root->brs_.end_ || !vec_2_root->brs_.end_) { + if (OB_FAIL(original_root->get_next_batch(max_row_cnt, original_child_brs))) { + LOG_ERROR("root op fail to get_next_batch data", K(original_root)); + break; + } + + temp_cmp_data_.resize(original_child_brs->size_); + LOG_INFO("============== Original ===============", K(round)); + if (ObTestOpConfig::get_instance().output_result_to_file_) { + if (OB_FAIL(print_to_file(original_child_brs, original_root, original_root->spec_.output_, true, + &out_origin_result_stream_))) { + // break, other error log has already print in inner function + break; + } + } else { + if (OB_FAIL(print_and_cmp_final_output(original_child_brs, original_root, false))) { + // break, other error log has already print in inner function + break; + } + } + + if (OB_FAIL(vec_2_root->get_next_batch(max_row_cnt, vec_2_child_brs))) { + LOG_ERROR("root op fail to get_next_batch data", K(vec_2_root)); + break; + } + + LOG_INFO("============== Vectorization 2.0 ===============", K(round)); + if (ObTestOpConfig::get_instance().output_result_to_file_) { + if (OB_FAIL( + print_to_file(vec_2_child_brs, vec_2_root, vec_2_root->spec_.output_, true, &out_vec_result_stream_))) { + // break, other error log has already print in inner function + break; + } + } else { + if (OB_FAIL(print_and_cmp_final_output(vec_2_child_brs, vec_2_root, true))) { + // break, other error log has already print in inner function + break; + } + } + + if (!ObTestOpConfig::get_instance().output_result_to_file_) { + if (original_child_brs->size_ != vec_2_child_brs->size_) { + LOG_ERROR("Two operator output different [batch size] in", K(round), K(original_child_brs->size_), + K(vec_2_child_brs->size_)); + ret = OB_ERR_UNEXPECTED; + break; + } + if (MEMCMP(original_child_brs->skip_->data_, vec_2_child_brs->skip_->data_, + original_child_brs->skip_->memory_size(original_child_brs->size_)) + != 0) { + LOG_ERROR("Two operator output different [skip size] in", K(round), K(original_child_brs->size_), + K(vec_2_child_brs->size_)); + ret = OB_ERR_UNEXPECTED; + break; + } + } + + round++; + temp_cmp_data_.clear(); + } + + //if output to file, compare data in file at last + if (ObTestOpConfig::get_instance().output_result_to_file_) { + if (original_root->get_spec().get_type() == PHY_HASH_JOIN && original_root->get_spec().get_type() == PHY_VEC_HASH_JOIN) { + system(("sort " + ObTestOpConfig::get_instance().test_filename_origin_output_file_ + " -o " + + ObTestOpConfig::get_instance().test_filename_origin_output_file_) + .c_str()); + system(("sort " + ObTestOpConfig::get_instance().test_filename_vec_output_file_ + " -o " + + ObTestOpConfig::get_instance().test_filename_vec_output_file_) + .c_str()); + } + + int system_ret = system(("diff " + ObTestOpConfig::get_instance().test_filename_origin_output_file_ + " " + ObTestOpConfig::get_instance().test_filename_vec_output_file_ + " > /dev/null").c_str()); + LOG_ERROR("CODE: ", K(system_ret)); + LOG_ERROR("CODE: ", K(WEXITSTATUS(system_ret))); + + if (WEXITSTATUS(system_ret) != 0) { + LOG_ERROR("Two operator output different!"); + // Preserve the site + + uint64_t ms = std::chrono::duration_cast(std::chrono::system_clock::now().time_since_epoch()).count(); + + std::fstream error_output_stream; + std::string error_file_name = "mismatch." + std::to_string(ms); + LOG_ERROR("error_file_name: ", K(error_file_name.data())); + error_output_stream.open(error_file_name, std::fstream::in | std::fstream::out | std::fstream::app); + + error_output_stream << line << std::endl; + system(("cat " + ObTestOpConfig::get_instance().test_filename_prefix_ + ".cfg" + " >> " + error_file_name) + .c_str()); + system(("mv " + ObTestOpConfig::get_instance().test_filename_origin_output_file_ + " " + + ObTestOpConfig::get_instance().test_filename_origin_output_file_ + std::to_string(ms)) + .c_str()); + system(("mv " + ObTestOpConfig::get_instance().test_filename_vec_output_file_ + " " + + ObTestOpConfig::get_instance().test_filename_vec_output_file_ + std::to_string(ms)) + .c_str()); + } + } + } + + exec_ctx_.~ObExecContext(); + new (&exec_ctx_) ObExecContext(allocator_); + exec_ctx_.set_sql_ctx(&sql_ctx_); + exec_ctx_.set_my_session(&session_info_); + exec_ctx_.create_physical_plan_ctx(); + + vec_2_exec_ctx_.~ObExecContext(); + new (&vec_2_exec_ctx_) ObExecContext(allocator_); + vec_2_exec_ctx_.set_sql_ctx(&sql_ctx_); + vec_2_exec_ctx_.set_my_session(&session_info_); + vec_2_exec_ctx_.create_physical_plan_ctx(); + } + + EXPECT_EQ(ret, 0); + if (ret == OB_SUCCESS) { + LOG_INFO(" ======================= "); + LOG_INFO("Test Pass!"); + LOG_INFO("All new operator output is equal to the original one."); + LOG_INFO(" ======================= "); + } else { + LOG_INFO(" ======================= "); + LOG_INFO("Test Fail!"); + LOG_INFO(" ======================= "); + } + return ret; +} + +int TestOpEngine::basic_random_test_output_to_file(const std::string &test_file, bool vector_2) +{ + // run tests + std::ifstream if_tests(test_file); + if (if_tests.is_open() != true) { return -1; } + + int ret = OB_SUCCESS; + std::string line; + + while (std::getline(if_tests, line)) { + // handle query + if (line.size() <= 0) continue; + if (line.at(0) == '#') continue; + + ObOperator *root = NULL; + ObExecutor exector; + if (OB_FAIL(get_tested_op_from_string(line, vector_2, root, exector))) { + LOG_WARN("generate tested op fail, sql: ", K(line.data())); + } else { + int round = 1; + const int64_t max_row_cnt = 256; + const ObBatchRows *child_brs = nullptr; + + LOG_INFO("============== Final output ===============", K(round)); + while (!root->brs_.end_) { + if (OB_FAIL(root->get_next_batch(max_row_cnt, child_brs))) { + LOG_ERROR("root op fail to get_next_batch data", K(root)); + break; + } + + if (OB_FAIL(print_to_file(child_brs, root, root->spec_.output_, true, + vector_2 ? &out_vec_result_stream_ : &out_origin_result_stream_))) { + // break, other error log has already print in inner function + break; + } + + round++; + } + } + + exec_ctx_.~ObExecContext(); + new (&exec_ctx_) ObExecContext(allocator_); + exec_ctx_.set_sql_ctx(&sql_ctx_); + exec_ctx_.set_my_session(&session_info_); + exec_ctx_.create_physical_plan_ctx(); + } + + EXPECT_EQ(ret, 0); + + return ret; +} + +} // namespace test