summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorJan Lindström <jan.lindstrom@mariadb.com>2020-08-07 09:06:13 +0300
committerJan Lindström <jan.lindstrom@mariadb.com>2020-08-07 09:06:13 +0300
commit1dec60c79508f338572a69ef5e21b0535a13d064 (patch)
tree2120e4a18d475fe5ea2b6bb81ec1f22395f2fa3c /sql
parentcaa474f8e3139b1d8d00be7bedf337af7fd304a3 (diff)
downloadmariadb-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.cc19
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");