Commit 6c1aab92 authored by Igor Babaev's avatar Igor Babaev

MWL#248: added the option skip-stat-tables.

parent d0dc6e07
...@@ -2237,6 +2237,7 @@ extern char* opt_secure_file_priv; ...@@ -2237,6 +2237,7 @@ extern char* opt_secure_file_priv;
extern my_bool opt_log_slow_admin_statements, opt_log_slow_slave_statements; extern my_bool opt_log_slow_admin_statements, opt_log_slow_slave_statements;
extern my_bool opt_query_cache_strip_comments; extern my_bool opt_query_cache_strip_comments;
extern my_bool sp_automatic_privileges, opt_noacl; extern my_bool sp_automatic_privileges, opt_noacl;
extern my_bool opt_no_stat_tables;
extern my_bool opt_old_style_user_limits, trust_function_creators; extern my_bool opt_old_style_user_limits, trust_function_creators;
extern uint opt_crash_binlog_innodb; extern uint opt_crash_binlog_innodb;
extern char *shared_memory_base_name, *mysqld_unix_port; extern char *shared_memory_base_name, *mysqld_unix_port;
......
...@@ -626,6 +626,7 @@ my_bool opt_old_style_user_limits= 0, trust_function_creators= 0; ...@@ -626,6 +626,7 @@ my_bool opt_old_style_user_limits= 0, trust_function_creators= 0;
*/ */
volatile bool mqh_used = 0; volatile bool mqh_used = 0;
my_bool opt_noacl; my_bool opt_noacl;
my_bool opt_no_stat_tables;
my_bool sp_automatic_privileges= 1; my_bool sp_automatic_privileges= 1;
ulong opt_binlog_rows_event_max_size; ulong opt_binlog_rows_event_max_size;
...@@ -6191,7 +6192,8 @@ enum options_mysqld ...@@ -6191,7 +6192,8 @@ enum options_mysqld
OPT_MAX_LONG_DATA_SIZE, OPT_MAX_LONG_DATA_SIZE,
OPT_MASTER_VERIFY_CHECKSUM, OPT_MASTER_VERIFY_CHECKSUM,
OPT_SLAVE_SQL_VERIFY_CHECKSUM, OPT_SLAVE_SQL_VERIFY_CHECKSUM,
OPT_QUERY_CACHE_STRIP_COMMENTS OPT_QUERY_CACHE_STRIP_COMMENTS,
OPT_SKIP_STAT_TABLES
}; };
...@@ -7018,6 +7020,11 @@ each time the SQL thread starts.", ...@@ -7018,6 +7020,11 @@ each time the SQL thread starts.",
&opt_noacl, &opt_noacl, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, &opt_noacl, &opt_noacl, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
0}, 0},
#endif #endif
{"skip-stat-tables", OPT_SKIP_STAT_TABLES,
"Start without statistical tables. Statistical data on table cardinalities, "
"columns and indexes from these tables become unavailable",
&opt_no_stat_tables, &opt_no_stat_tables, 0, GET_BOOL, NO_ARG,
0, 0, 0, 0, 0, 0},
{"skip-host-cache", OPT_SKIP_HOST_CACHE, "Don't cache host names.", 0, 0, 0, {"skip-host-cache", OPT_SKIP_HOST_CACHE, "Don't cache host names.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"skip-locking", OPT_SKIP_LOCK, {"skip-locking", OPT_SKIP_LOCK,
...@@ -9220,6 +9227,7 @@ mysqld_get_one_option(int optid, ...@@ -9220,6 +9227,7 @@ mysqld_get_one_option(int optid,
break; break;
case OPT_BOOTSTRAP: case OPT_BOOTSTRAP:
opt_noacl=opt_bootstrap=1; opt_noacl=opt_bootstrap=1;
opt_no_stat_tables= 1;
break; break;
case OPT_LOG_SLOW_FILTER: case OPT_LOG_SLOW_FILTER:
global_system_variables.log_slow_filter= global_system_variables.log_slow_filter=
......
...@@ -4855,7 +4855,7 @@ int open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags) ...@@ -4855,7 +4855,7 @@ int open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags)
parent_l->next_global= *parent_l->table->child_last_l; parent_l->next_global= *parent_l->table->child_last_l;
} }
if (thd->variables.optimizer_use_stat_tables > 0) if (!opt_no_stat_tables && thd->variables.optimizer_use_stat_tables > 0)
{ {
if (tables->table && tables->table->s && if (tables->table && tables->table->s &&
tables->table->s->table_category != TABLE_CATEGORY_SYSTEM) tables->table->s->table_category != TABLE_CATEGORY_SYSTEM)
......
...@@ -4956,7 +4956,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables, ...@@ -4956,7 +4956,7 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
DBUG_PRINT("admin", ("operator_func returned: %d", result_code)); DBUG_PRINT("admin", ("operator_func returned: %d", result_code));
} }
if (operator_func == &handler::ha_analyze && if (operator_func == &handler::ha_analyze && !opt_no_stat_tables &&
thd->variables.optimizer_use_stat_tables > 0) thd->variables.optimizer_use_stat_tables > 0)
{ {
if (!(compl_result_code= if (!(compl_result_code=
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment