diff options
author | Sergey Vojtovich <svoj@mariadb.org> | 2013-06-06 19:27:17 +0400 |
---|---|---|
committer | Sergey Vojtovich <svoj@mariadb.org> | 2013-06-06 19:27:17 +0400 |
commit | eec66e2f655bc976377db7620a884b97acf9618c (patch) | |
tree | de32f1db13a1ef9533f45bc00349cc431f891c1f | |
parent | 7f58eb4f79f3b856258b4e1d1203b6e7f27aa3de (diff) | |
download | mariadb-git-eec66e2f655bc976377db7620a884b97acf9618c.tar.gz |
MDEV-4594 - CREATE SERVER crashes embedded
mysql-test/r/servers.result:
Added test case for MDEV-4594.
mysql-test/t/servers.test:
Added test case for MDEV-4594.
sql/mysqld.cc:
Move servers_init() call to init_server_components(), so it is called
for embedded as well.
Call servers_free() even if NO_EMBEDDED_ACCESS_CHECKS defined (because
we call servers_init() anyway).
-rw-r--r-- | mysql-test/r/servers.result | 8 | ||||
-rw-r--r-- | mysql-test/t/servers.test | 8 | ||||
-rw-r--r-- | sql/mysqld.cc | 7 |
3 files changed, 19 insertions, 4 deletions
diff --git a/mysql-test/r/servers.result b/mysql-test/r/servers.result new file mode 100644 index 00000000000..c9d82c9cfcc --- /dev/null +++ b/mysql-test/r/servers.result @@ -0,0 +1,8 @@ +# +# MDEV-4594 - CREATE SERVER crashes embedded +# +CREATE SERVER s1 FOREIGN DATA WRAPPER mysql OPTIONS(HOST 'localhost'); +SELECT * FROM mysql.servers; +Server_name Host Db Username Password Port Socket Wrapper Owner +s1 localhost 0 mysql +DROP SERVER s1; diff --git a/mysql-test/t/servers.test b/mysql-test/t/servers.test new file mode 100644 index 00000000000..ee0fa637b87 --- /dev/null +++ b/mysql-test/t/servers.test @@ -0,0 +1,8 @@ +# Generic tests for servers (do not require FEDERATED) + +--echo # +--echo # MDEV-4594 - CREATE SERVER crashes embedded +--echo # +CREATE SERVER s1 FOREIGN DATA WRAPPER mysql OPTIONS(HOST 'localhost'); +SELECT * FROM mysql.servers; +DROP SERVER s1; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index eb102696f64..6e762fd6516 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1847,8 +1847,8 @@ void clean_up(bool print_message) my_tz_free(); my_dboptions_cache_free(); ignore_db_dirs_free(); -#ifndef NO_EMBEDDED_ACCESS_CHECKS servers_free(1); +#ifndef NO_EMBEDDED_ACCESS_CHECKS acl_free(1); grant_free(); #endif @@ -4668,6 +4668,8 @@ a file name for --log-bin-index option", opt_binlog_index_name); init_update_queries(); init_global_user_stats(); init_global_client_stats(); + if (!opt_bootstrap) + servers_init(0); DBUG_RETURN(0); } @@ -5074,9 +5076,6 @@ int mysqld_main(int argc, char **argv) if (!opt_noacl) (void) grant_init(); - if (!opt_bootstrap) - servers_init(0); - if (!opt_noacl) { #ifdef HAVE_DLOPEN |