diff options
author | Monty <monty@mariadb.org> | 2019-06-02 11:47:36 +0300 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2019-06-03 15:06:51 +0300 |
commit | 76f14be10f5e6cebf44a93e48673930fdeb50442 (patch) | |
tree | 56403d7cd7bc309f6c121476021318c1d3961607 | |
parent | 2d89a70facaf9c9f71bad1c805c44b625b0f607d (diff) | |
download | mariadb-git-76f14be10f5e6cebf44a93e48673930fdeb50442.tar.gz |
Ensure that tests and programs can restore variables
- --default-character-set can now be disabled in mysqldump
- --skip-resolve can be be disabled in mysqld
- mysql_client_test now resets global variables it changes
- mtr couldn't handle [mysqldump] in config files (wrong regexp used)
-rw-r--r-- | client/mysqldump.c | 4 | ||||
-rw-r--r-- | mysql-test/lib/My/ConfigFactory.pm | 6 | ||||
-rw-r--r-- | sql/mysqld.cc | 6 | ||||
-rw-r--r-- | tests/mysql_client_test.c | 30 |
4 files changed, 35 insertions, 11 deletions
diff --git a/client/mysqldump.c b/client/mysqldump.c index 2195786e7ea..b9ff8caed8c 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -967,6 +967,10 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), exit(1); } break; + case (int) OPT_DEFAULT_CHARSET: + if (default_charset == disabled_my_option) + default_charset= (char *)mysql_universal_client_charset; + break; } return 0; } diff --git a/mysql-test/lib/My/ConfigFactory.pm b/mysql-test/lib/My/ConfigFactory.pm index cae2c8c33e5..6d4c7f43390 100644 --- a/mysql-test/lib/My/ConfigFactory.pm +++ b/mysql-test/lib/My/ConfigFactory.pm @@ -311,7 +311,7 @@ sub post_check_client_groups { $first_mysqld->name()); # Then generate [client.<suffix>] for each [mysqld.<suffix>] - foreach my $mysqld ( $config->like('mysqld.') ) { + foreach my $mysqld ( $config->like('mysqld\.') ) { $self->post_check_client_group($config, 'client'.$mysqld->after('mysqld'), $mysqld->name()) @@ -333,7 +333,7 @@ sub post_check_embedded_group { my $mysqld= $config->group('mysqld') or croak "Can't run with embedded, config has no default mysqld section"; - my $first_mysqld= $config->first_like('mysqld.') or + my $first_mysqld= $config->first_like('mysqld\.') or croak "Can't run with embedded, config has no mysqld"; my %no_copy = map { $_ => 1 } @@ -457,7 +457,7 @@ sub new_config { } $self->run_section_rules($config, - 'mysqld.', + 'mysqld\.', @mysqld_rules); # [mysqlbinlog] need additional settings diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 263a9b4645a..60dce5a7ff3 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -9254,8 +9254,10 @@ mysqld_get_one_option(int optid, const struct my_option *opt, char *argument) opt_specialflag|= SPECIAL_NO_HOST_CACHE; break; case (int) OPT_SKIP_RESOLVE: - opt_skip_name_resolve= 1; - opt_specialflag|=SPECIAL_NO_RESOLVE; + if ((opt_skip_name_resolve= (argument != disabled_my_option))) + opt_specialflag|= SPECIAL_NO_RESOLVE; + else + opt_specialflag&= ~SPECIAL_NO_RESOLVE; break; case (int) OPT_WANT_CORE: test_flags |= TEST_CORE_ON_SIGNAL; diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 04717f1946b..c544e20f2fe 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -2341,6 +2341,12 @@ static void test_ps_query_cache() "(2, 'hh', 'hh'), (1, 'ii', 'ii'), (2, 'ii', 'ii')"); myquery(rc); + rc= mysql_query(mysql, + "set @save_query_cache_type=" + "@@global.query_cache_type," + "@save_query_cache_size=" + "@@global.query_cache_size"); + myquery(rc); rc= mysql_query(lmysql, "set global query_cache_type=ON"); myquery(rc); rc= mysql_query(lmysql, "set local query_cache_type=ON"); @@ -2497,9 +2503,9 @@ static void test_ps_query_cache() if (lmysql != mysql) mysql_close(lmysql); - rc= mysql_query(mysql, "set global query_cache_size=default"); + rc= mysql_query(mysql, "set global query_cache_size=@save_query_cache_size"); myquery(rc); - rc= mysql_query(mysql, "set global query_cache_type=default"); + rc= mysql_query(mysql, "set global query_cache_type=@save_query_cache_type"); myquery(rc); } @@ -13364,6 +13370,12 @@ static void test_open_cursor_prepared_statement_query_cache() return; } + rc= mysql_query(mysql, + "set @save_query_cache_type=" + "@@global.query_cache_type," + "@save_query_cache_size=" + "@@global.query_cache_size"); + myquery(rc); rc= mysql_query(mysql, "set global query_cache_type=ON"); myquery(rc); rc= mysql_query(mysql, "set local query_cache_type=ON"); @@ -13390,9 +13402,9 @@ static void test_open_cursor_prepared_statement_query_cache() check_execute(stmt, rc); mysql_stmt_close(stmt); - rc= mysql_query(mysql, "set global query_cache_type=default"); + rc= mysql_query(mysql, "set global query_cache_type=@save_query_cache_type"); myquery(rc); - rc= mysql_query(mysql, "set global query_cache_size=default"); + rc= mysql_query(mysql, "set global query_cache_size=@save_query_cache_size"); myquery(rc); } @@ -18177,6 +18189,12 @@ static void test_bug36326() myquery(rc); rc= mysql_query(mysql, "INSERT INTO t1 VALUES (1)"); myquery(rc); + rc= mysql_query(mysql, + "set @save_query_cache_type=" + "@@global.query_cache_type," + "@save_query_cache_size=" + "@@global.query_cache_size"); + myquery(rc); rc= mysql_query(mysql, "SET GLOBAL query_cache_type = 1"); myquery(rc); rc= mysql_query(mysql, "SET LOCAL query_cache_type = 1"); @@ -18204,8 +18222,8 @@ static void test_bug36326() DIE_UNLESS(rc == 1); rc= mysql_query(mysql, "DROP TABLE t1"); myquery(rc); - rc= mysql_query(mysql, "SET GLOBAL query_cache_size = default"); - rc= mysql_query(mysql, "SET GLOBAL query_cache_type = default"); + rc= mysql_query(mysql, "SET GLOBAL query_cache_size = @save_query_cache_size"); + rc= mysql_query(mysql, "SET GLOBAL query_cache_type = @save_query_cache_type"); myquery(rc); DBUG_VOID_RETURN; |