diff --git a/dbcon/mysql/ha_mcs.cpp b/dbcon/mysql/ha_mcs.cpp index 9e7edbd88..cfbac01c6 100644 --- a/dbcon/mysql/ha_mcs.cpp +++ b/dbcon/mysql/ha_mcs.cpp @@ -1808,7 +1808,7 @@ static handler* ha_mcs_cache_create_handler(handlerton* hton, TABLE_SHARE* table return new (mem_root) ha_mcs_cache(hton, table, mem_root); } -bool get_innodb_queries_uses_mcs(THD* thd); +bool get_innodb_queries_uses_mcs(); /****************************************************************************** ha_mcs Plugin code @@ -1860,7 +1860,7 @@ static int columnstore_init_func(void* p) mcs_hton->create_unit = create_columnstore_unit_handler; mcs_hton->db_type = DB_TYPE_AUTOASSIGN; - if (get_innodb_queries_uses_mcs(current_thd)) + if (get_innodb_queries_uses_mcs()) { auto* innodb_hton = plugin_hton(plugin_innodb); int error = innodb_hton == nullptr; // Engine must exists! diff --git a/dbcon/mysql/ha_mcs_sysvars.cpp b/dbcon/mysql/ha_mcs_sysvars.cpp index 029dae8a0..04fdbdaed 100644 --- a/dbcon/mysql/ha_mcs_sysvars.cpp +++ b/dbcon/mysql/ha_mcs_sysvars.cpp @@ -220,51 +220,54 @@ static MYSQL_THDVAR_ULONG(max_allowed_in_values, PLUGIN_VAR_RQCMDARG, "The maximum length of the entries in the IN query clause.", NULL, NULL, 6000, 1, ~0U, 1); -static MYSQL_THDVAR_BOOL(innodb_queries_uses_mcs, PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_READONLY, - "Direct all InnoDB-only queries into MCS via Select Handler.", NULL, NULL, 0); - -st_mysql_sys_var* mcs_system_variables[] = {MYSQL_SYSVAR(compression_type), - MYSQL_SYSVAR(fe_conn_info_ptr), - MYSQL_SYSVAR(original_optimizer_flags), - MYSQL_SYSVAR(original_option_bits), - MYSQL_SYSVAR(select_handler), - MYSQL_SYSVAR(derived_handler), - MYSQL_SYSVAR(select_handler_in_stored_procedures), - MYSQL_SYSVAR(orderby_threads), - MYSQL_SYSVAR(decimal_scale), - MYSQL_SYSVAR(use_decimal_scale), - MYSQL_SYSVAR(ordered_only), - MYSQL_SYSVAR(string_scan_threshold), - MYSQL_SYSVAR(stringtable_threshold), - MYSQL_SYSVAR(diskjoin_smallsidelimit), - MYSQL_SYSVAR(diskjoin_largesidelimit), - MYSQL_SYSVAR(diskjoin_bucketsize), - MYSQL_SYSVAR(diskjoin_max_partition_tree_depth), - MYSQL_SYSVAR(diskjoin_force_run), - MYSQL_SYSVAR(max_pm_join_result_count), - MYSQL_SYSVAR(um_mem_limit), - MYSQL_SYSVAR(double_for_decimal_math), - MYSQL_SYSVAR(decimal_overflow_check), - MYSQL_SYSVAR(local_query), - MYSQL_SYSVAR(use_import_for_batchinsert), - MYSQL_SYSVAR(import_for_batchinsert_delimiter), - MYSQL_SYSVAR(import_for_batchinsert_enclosed_by), - MYSQL_SYSVAR(varbin_always_hex), - MYSQL_SYSVAR(replication_slave), - MYSQL_SYSVAR(cache_inserts), - MYSQL_SYSVAR(cache_use_import), - MYSQL_SYSVAR(cache_flush_threshold), - MYSQL_SYSVAR(cmapi_host), - MYSQL_SYSVAR(cmapi_port), - MYSQL_SYSVAR(cmapi_version), - MYSQL_SYSVAR(cmapi_key), - MYSQL_SYSVAR(s3_key), - MYSQL_SYSVAR(s3_secret), - MYSQL_SYSVAR(s3_region), - MYSQL_SYSVAR(pron), - MYSQL_SYSVAR(max_allowed_in_values), - MYSQL_SYSVAR(innodb_queries_uses_mcs), - NULL}; +static my_bool innodb_queries_use_mcs; +static MYSQL_SYSVAR_BOOL(innodb_queries_use_mcs, innodb_queries_use_mcs, + PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_READONLY, + "Direct all InnoDB-only queries into MCS via Select Handler.", NULL, NULL, FALSE); + +st_mysql_sys_var* mcs_system_variables[] = { + MYSQL_SYSVAR(compression_type), + MYSQL_SYSVAR(fe_conn_info_ptr), + MYSQL_SYSVAR(original_optimizer_flags), + MYSQL_SYSVAR(original_option_bits), + MYSQL_SYSVAR(select_handler), + MYSQL_SYSVAR(derived_handler), + MYSQL_SYSVAR(select_handler_in_stored_procedures), + MYSQL_SYSVAR(orderby_threads), + MYSQL_SYSVAR(decimal_scale), + MYSQL_SYSVAR(use_decimal_scale), + MYSQL_SYSVAR(ordered_only), + MYSQL_SYSVAR(string_scan_threshold), + MYSQL_SYSVAR(stringtable_threshold), + MYSQL_SYSVAR(diskjoin_smallsidelimit), + MYSQL_SYSVAR(diskjoin_largesidelimit), + MYSQL_SYSVAR(diskjoin_bucketsize), + MYSQL_SYSVAR(diskjoin_max_partition_tree_depth), + MYSQL_SYSVAR(diskjoin_force_run), + MYSQL_SYSVAR(max_pm_join_result_count), + MYSQL_SYSVAR(um_mem_limit), + MYSQL_SYSVAR(double_for_decimal_math), + MYSQL_SYSVAR(decimal_overflow_check), + MYSQL_SYSVAR(local_query), + MYSQL_SYSVAR(use_import_for_batchinsert), + MYSQL_SYSVAR(import_for_batchinsert_delimiter), + MYSQL_SYSVAR(import_for_batchinsert_enclosed_by), + MYSQL_SYSVAR(varbin_always_hex), + MYSQL_SYSVAR(replication_slave), + MYSQL_SYSVAR(cache_inserts), + MYSQL_SYSVAR(cache_use_import), + MYSQL_SYSVAR(cache_flush_threshold), + MYSQL_SYSVAR(cmapi_host), + MYSQL_SYSVAR(cmapi_port), + MYSQL_SYSVAR(cmapi_version), + MYSQL_SYSVAR(cmapi_key), + MYSQL_SYSVAR(s3_key), + MYSQL_SYSVAR(s3_secret), + MYSQL_SYSVAR(s3_region), + MYSQL_SYSVAR(pron), + MYSQL_SYSVAR(max_allowed_in_values), + MYSQL_SYSVAR(innodb_queries_use_mcs), + NULL}; st_mysql_show_var mcs_status_variables[] = {{"columnstore_version", (char*)&cs_version, SHOW_CHAR}, {"columnstore_commit_hash", (char*)&cs_commit_hash, SHOW_CHAR}, @@ -660,12 +663,7 @@ void set_max_allowed_in_values(THD* thd, ulong value) THDVAR(thd, max_allowed_in_values) = value; } -bool get_innodb_queries_uses_mcs(THD* thd) +bool get_innodb_queries_uses_mcs() { - return THDVAR(thd, innodb_queries_uses_mcs); -} - -void set_innodb_queries_uses_mcs(THD* thd, bool value) -{ - THDVAR(thd, innodb_queries_uses_mcs) = value; + return SYSVAR(innodb_queries_use_mcs); }