From bd4c6d9b8ccf5f8a3f8f743dde1c882506e08c7c Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Fri, 30 May 2008 13:21:45 +0300 Subject: [PATCH 1/2] Bug#37069: Make federated disabled by default The federated storage engine is now disabled by default. mysql-test-run.pl is updated to enable it whenever it's required and available. --- mysql-test/lib/mtr_cases.pl | 9 +++++++++ sql/sql_plugin.cc | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/mysql-test/lib/mtr_cases.pl b/mysql-test/lib/mtr_cases.pl index 2ca2669eb7f..4b0fad0f818 100644 --- a/mysql-test/lib/mtr_cases.pl +++ b/mysql-test/lib/mtr_cases.pl @@ -773,6 +773,13 @@ sub collect_one_test_case($$$$$$$$$) { if ( $::used_default_engine =~ /^innodb/i ); } + #enable federated for this test + if ($tinfo->{'federated_test'}) + { + push(@{$tinfo->{'master_opt'}}, "--loose-federated"); + push(@{$tinfo->{'slave_opt'}}, "--loose-federated"); + } + if ( $tinfo->{'big_test'} and ! $::opt_big_test ) { $tinfo->{'skip'}= 1; @@ -891,6 +898,8 @@ our @tags= ["include/have_ndb_extra.inc", "ndb_extra", 1], ["include/ndb_master-slave.inc", "ndb_test", 1], ["require_manager", "require_manager", 1], + ["include/federated.inc", "federated_test", 1], + ["include/have_federated_db.inc", "federated_test", 1], ); sub mtr_options_from_test_file($$) { diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc index 811b82ebe05..0fe79a8945d 100644 --- a/sql/sql_plugin.cc +++ b/sql/sql_plugin.cc @@ -1137,9 +1137,10 @@ int plugin_init(int *argc, char **argv, int flags) { for (plugin= *builtins; plugin->info; plugin++) { - /* by default, only ndbcluster is disabled */ + /* by default, ndbcluster and federated are disabled */ def_enabled= - my_strcasecmp(&my_charset_latin1, plugin->name, "NDBCLUSTER") != 0; + my_strcasecmp(&my_charset_latin1, plugin->name, "NDBCLUSTER") != 0 && + my_strcasecmp(&my_charset_latin1, plugin->name, "FEDERATED") != 0; bzero(&tmp, sizeof(tmp)); tmp.plugin= plugin; tmp.name.str= (char *)plugin->name; From 9bc98e8df2a96e1324092cf65e8c6300c9a9ad1e Mon Sep 17 00:00:00 2001 From: Georgi Kodinov Date: Tue, 3 Jun 2008 13:12:37 +0300 Subject: [PATCH 2/2] Bug#37069 (5.0): implement --skip-federated --- mysql-test/r/federated_disabled.result | 0 mysql-test/t/federated_disabled-master.opt | 1 + mysql-test/t/federated_disabled.test | 3 +++ sql/mysqld.cc | 16 ++++++++++++++-- 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 mysql-test/r/federated_disabled.result create mode 100644 mysql-test/t/federated_disabled-master.opt create mode 100644 mysql-test/t/federated_disabled.test diff --git a/mysql-test/r/federated_disabled.result b/mysql-test/r/federated_disabled.result new file mode 100644 index 00000000000..e69de29bb2d diff --git a/mysql-test/t/federated_disabled-master.opt b/mysql-test/t/federated_disabled-master.opt new file mode 100644 index 00000000000..4f2df1dd301 --- /dev/null +++ b/mysql-test/t/federated_disabled-master.opt @@ -0,0 +1 @@ +--skip-federated diff --git a/mysql-test/t/federated_disabled.test b/mysql-test/t/federated_disabled.test new file mode 100644 index 00000000000..99fcad76828 --- /dev/null +++ b/mysql-test/t/federated_disabled.test @@ -0,0 +1,3 @@ +source include/federated.inc; + +SHOW VARIABLES LIKE 'have_federated_engine'; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index c239530f2fc..cdae94f0a61 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -328,7 +328,7 @@ static bool lower_case_table_names_used= 0; static bool volatile select_thread_in_use, signal_thread_in_use; static bool volatile ready_to_exit; static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0; -static my_bool opt_bdb, opt_isam, opt_ndbcluster, opt_merge; +static my_bool opt_bdb, opt_isam, opt_ndbcluster, opt_merge, opt_federated; static my_bool opt_short_log_format= 0; static uint kill_cached_threads, wake_thread; static ulong killed_threads, thread_created; @@ -4989,7 +4989,8 @@ enum options_mysqld OPT_INNODB_ROLLBACK_ON_TIMEOUT, OPT_SECURE_FILE_PRIV, OPT_KEEP_FILES_ON_CREATE, - OPT_INNODB_ADAPTIVE_HASH_INDEX + OPT_INNODB_ADAPTIVE_HASH_INDEX, + OPT_FEDERATED }; @@ -5175,6 +5176,9 @@ Disable with --skip-external-locking.", 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, {"flush", OPT_FLUSH, "Flush tables to disk between SQL commands.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, + {"federated", OPT_FEDERATED, "Enable Federated storage engine. Disable with \ +--skip-federated.", + (gptr*) &opt_federated, (gptr*) &opt_federated, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0}, /* We must always support the next option to make scripts like mysqltest easier to do */ {"gdb", OPT_DEBUGGING, @@ -7322,6 +7326,14 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), else have_merge_db= SHOW_OPTION_DISABLED; break; +#ifdef HAVE_FEDERATED_DB + case OPT_FEDERATED: + if (opt_federated) + have_federated_db= SHOW_OPTION_YES; + else + have_federated_db= SHOW_OPTION_DISABLED; + break; +#endif #ifdef HAVE_BERKELEY_DB case OPT_BDB_NOSYNC: /* Deprecated option */