diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2020-08-07 09:06:13 +0300 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2020-08-07 09:06:13 +0300 |
commit | 1dec60c79508f338572a69ef5e21b0535a13d064 (patch) | |
tree | 2120e4a18d475fe5ea2b6bb81ec1f22395f2fa3c /sql | |
parent | caa474f8e3139b1d8d00be7bedf337af7fd304a3 (diff) | |
download | mariadb-git-1dec60c79508f338572a69ef5e21b0535a13d064.tar.gz |
MDEV-22626: mysql_tzinfo_to_sql not replicates timezone to galeranodes if only 1 timezone will be loaded.
Move alter to InnoDB earlier to more correct place to handle
also if only a one timezone file is loaded.
Diffstat (limited to 'sql')
-rw-r--r-- | sql/tztime.cc | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/sql/tztime.cc b/sql/tztime.cc index f58801bf4b7..35e18f47629 100644 --- a/sql/tztime.cc +++ b/sql/tztime.cc @@ -2713,6 +2713,7 @@ main(int argc, char **argv) } if (opt_skip_write_binlog) + { /* If skip_write_binlog is set and wsrep is compiled in we disable sql_log_bin and wsrep_on to avoid Galera replicating below truncate table clauses. This will allow user to set different @@ -2720,15 +2721,9 @@ main(int argc, char **argv) printf("set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION SQL_LOG_BIN=?, WSREP_ON=OFF;', 'do ?');\n" "prepare set_wsrep_write_binlog from @prep1;\n" "set @toggle=0; execute set_wsrep_write_binlog using @toggle;\n"); - - if (argc == 1 && !opt_leap) + } + else { - /* Argument is timezonedir */ - - root_name_end= strmake_buf(fullname, argv[0]); - - if(!opt_skip_write_binlog) - { // Alter time zone tables to InnoDB if wsrep_on is enabled // to allow changes to them to replicate with Galera printf("\\d |\n" @@ -2740,7 +2735,13 @@ main(int argc, char **argv) "ALTER TABLE time_zone_transition_type ENGINE=InnoDB;\n" "END IF|\n" "\\d ;\n"); - } + } + + if (argc == 1 && !opt_leap) + { + /* Argument is timezonedir */ + + root_name_end= strmake_buf(fullname, argv[0]); printf("TRUNCATE TABLE time_zone;\n"); printf("TRUNCATE TABLE time_zone_name;\n"); |