summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorSergey Glukhov <gluh@mysql.com>2009-02-09 19:03:52 +0400
committerSergey Glukhov <gluh@mysql.com>2009-02-09 19:03:52 +0400
commit4d0557a2e6e2f79e3662d3f10ea17656cf69ca12 (patch)
treee1a70de16466fc1105587d75908a1b3c3811044c /sql
parent461cad77b4e068ecc2534150170a029e6f425407 (diff)
downloadmariadb-git-4d0557a2e6e2f79e3662d3f10ea17656cf69ca12.tar.gz
Bug#42610 Dynamic plugin broken in 5.1.31
added ignore-builtin-innodb option which disabled initialization of builtin InnoDB plugin mysql-test/r/innodb_ignore_builtin.result: test case mysql-test/t/innodb_ignore_builtin-master.opt: test case mysql-test/t/innodb_ignore_builtin.test: test case sql/mysql_priv.h: added ignore-builtin-innodb option which disabled initialization of builtin InnoDB plugin sql/mysqld.cc: added ignore-builtin-innodb option which disabled initialization of builtin InnoDB plugin sql/set_var.cc: added ignore-builtin-innodb option which disabled initialization of builtin InnoDB plugin sql/sql_plugin.cc: added ignore-builtin-innodb option which disabled initialization of builtin InnoDB plugin
Diffstat (limited to 'sql')
-rw-r--r--sql/mysql_priv.h1
-rw-r--r--sql/mysqld.cc12
-rw-r--r--sql/set_var.cc5
-rw-r--r--sql/sql_plugin.cc3
4 files changed, 19 insertions, 2 deletions
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 9ce8077249c..015128cda1f 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -1953,6 +1953,7 @@ extern my_bool opt_log, opt_slow_log;
extern ulong log_output_options;
extern my_bool opt_log_queries_not_using_indexes;
extern bool opt_disable_networking, opt_skip_show_db;
+extern bool opt_ignore_builtin_innodb;
extern my_bool opt_character_set_client_handshake;
extern bool volatile abort_loop, shutdown_in_progress;
extern uint volatile thread_count, thread_running, global_read_lock;
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index a2ccbc42e77..0213eea889b 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -378,7 +378,7 @@ static pthread_cond_t COND_thread_cache, COND_flush_thread_cache;
/* Global variables */
-bool opt_update_log, opt_bin_log;
+bool opt_update_log, opt_bin_log, opt_ignore_builtin_innodb= 0;
my_bool opt_log, opt_slow_log;
ulong log_output_options;
my_bool opt_log_queries_not_using_indexes= 0;
@@ -5585,7 +5585,8 @@ enum options_mysqld
OPT_OLD_MODE,
OPT_SLAVE_EXEC_MODE,
OPT_GENERAL_LOG_FILE,
- OPT_SLOW_QUERY_LOG_FILE
+ OPT_SLOW_QUERY_LOG_FILE,
+ OPT_IGNORE_BUILTIN_INNODB
};
@@ -5791,6 +5792,9 @@ Disable with --skip-large-pages.",
(uchar**) &opt_large_pages, (uchar**) &opt_large_pages, 0, GET_BOOL, NO_ARG, 0, 0, 0,
0, 0, 0},
#endif
+ {"ignore-builtin-innodb", OPT_IGNORE_BUILTIN_INNODB ,
+ "Disable initialization of builtin InnoDB plugin",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"init-connect", OPT_INIT_CONNECT, "Command(s) that are executed for each new connection",
(uchar**) &opt_init_connect, (uchar**) &opt_init_connect, 0, GET_STR_ALLOC,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@@ -7484,6 +7488,7 @@ static int mysql_init_variables(void)
log_output_options= find_bit_type(log_output_str, &log_output_typelib);
opt_bin_log= 0;
opt_disable_networking= opt_skip_show_db=0;
+ opt_ignore_builtin_innodb= 0;
opt_logname= opt_update_logname= opt_binlog_index_name= opt_slow_logname= 0;
opt_tc_log_file= (char *)"tc.log"; // no hostname in tc_log file name !
opt_secure_auth= 0;
@@ -7781,6 +7786,9 @@ mysqld_get_one_option(int optid,
case (int) OPT_BIG_TABLES:
thd_startup_options|=OPTION_BIG_TABLES;
break;
+ case (int) OPT_IGNORE_BUILTIN_INNODB:
+ opt_ignore_builtin_innodb= 1;
+ break;
case (int) OPT_ISAM_LOG:
opt_myisam_log=1;
break;
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 07e1528d483..f14068fcfcb 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -275,6 +275,11 @@ static sys_var_const sys_ft_query_expansion_limit(&vars,
static sys_var_const sys_ft_stopword_file(&vars, "ft_stopword_file",
OPT_GLOBAL, SHOW_CHAR_PTR,
(uchar*) &ft_stopword_file);
+
+static sys_var_const sys_ignore_builtin_innodb(&vars, "ignore_builtin_innodb",
+ OPT_GLOBAL, SHOW_BOOL,
+ (uchar*) &opt_ignore_builtin_innodb);
+
sys_var_str sys_init_connect(&vars, "init_connect", 0,
sys_update_init_connect,
sys_default_init_connect,0);
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index 0df1631294b..60f205ec8e8 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -1138,6 +1138,9 @@ int plugin_init(int *argc, char **argv, int flags)
{
for (plugin= *builtins; plugin->info; plugin++)
{
+ if (opt_ignore_builtin_innodb &&
+ !my_strcasecmp(&my_charset_latin1, plugin->name, "InnoDB"))
+ continue;
/* by default, ndbcluster and federated are disabled */
def_enabled=
my_strcasecmp(&my_charset_latin1, plugin->name, "NDBCLUSTER") != 0 &&