mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
a7923b37c4
The --skip-write-binlog message was confusing that it only had an effect if the galera was enabled. There are uses beyond galera so we apply SET SESSION SQL_LOG_BIN=0 as implied by the option without being conditional on the wsrep status. Remove wsrep.mysql_tzinfo_to_sql_symlink{,_skip} tests as they offered no additional coverage beyond main.mysql_tzinfo_to_sql_symlink as no server testing was done. Introduced a variant of the galera.mariadb_tzinfo_to_sql as galera.mysql_tzinfo_to_sql, which does testing using the mysql client rather than directly importing into the server via mysqltest. Update man page and mysql_tzinfo_to_sql to having a --skip-write-binlog option. merge notes: 10.4: - conflicts in tztime.cc can revert to this version of --help text. - tztime.cc - merge execute immediate @prep1, and leave %s%s trunc_tables, lock_tables after that. 10.6: - Need to remove the not_embedded.inc in mysql_tzinfo_to_sql.test and replace it with no_protocol.inc - leave both mysql_tzinfo_to_sql.test and mariadb_tzinfo_to_sql.sql tests. - sql/tztime.cc - keep entirely 10.6 version.
202 lines
7.9 KiB
Text
202 lines
7.9 KiB
Text
#
|
|
# MDEV-5226 mysql_tzinfo_to_sql errors with tzdata 2013f and above
|
|
#
|
|
# Verbose run
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
|
|
END IF|
|
|
\d ;
|
|
TRUNCATE TABLE time_zone;
|
|
TRUNCATE TABLE time_zone_name;
|
|
TRUNCATE TABLE time_zone_transition;
|
|
TRUNCATE TABLE time_zone_transition_type;
|
|
START TRANSACTION;
|
|
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
|
SET @time_zone_id= LAST_INSERT_ID();
|
|
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id);
|
|
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
|
(@time_zone_id, 0, 0, 0, 'GMT')
|
|
;
|
|
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it.
|
|
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/ignored.tab' as time zone. Skipping it.
|
|
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
|
SET @time_zone_id= LAST_INSERT_ID();
|
|
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id);
|
|
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
|
(@time_zone_id, 0, 0, 0, 'GMT')
|
|
;
|
|
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it.
|
|
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/ignored.tab' as time zone. Skipping it.
|
|
Warning: Skipping directory 'MYSQLTEST_VARDIR/zoneinfo/posix/posix': to avoid infinite symlink recursion.
|
|
COMMIT;
|
|
ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
|
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition_type ENGINE=MyISAM;
|
|
END IF|
|
|
\d ;
|
|
# Silent run
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
|
|
END IF|
|
|
\d ;
|
|
TRUNCATE TABLE time_zone;
|
|
TRUNCATE TABLE time_zone_name;
|
|
TRUNCATE TABLE time_zone_transition;
|
|
TRUNCATE TABLE time_zone_transition_type;
|
|
START TRANSACTION;
|
|
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
|
SET @time_zone_id= LAST_INSERT_ID();
|
|
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('GMT', @time_zone_id);
|
|
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
|
(@time_zone_id, 0, 0, 0, 'GMT')
|
|
;
|
|
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/garbage' as time zone. Skipping it.
|
|
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
|
SET @time_zone_id= LAST_INSERT_ID();
|
|
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('posix/GMT', @time_zone_id);
|
|
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
|
(@time_zone_id, 0, 0, 0, 'GMT')
|
|
;
|
|
Warning: Unable to load 'MYSQLTEST_VARDIR/zoneinfo/posix/garbage' as time zone. Skipping it.
|
|
COMMIT;
|
|
ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
|
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition_type ENGINE=MyISAM;
|
|
END IF|
|
|
\d ;
|
|
#
|
|
# Testing with explicit timezonefile
|
|
#
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
|
|
END IF|
|
|
\d ;
|
|
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
|
SET @time_zone_id= LAST_INSERT_ID();
|
|
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id);
|
|
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
|
(@time_zone_id, 0, 0, 0, 'GMT')
|
|
;
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition_type ENGINE=MyISAM;
|
|
END IF|
|
|
\d ;
|
|
#
|
|
# Testing --leap
|
|
#
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
|
|
END IF|
|
|
\d ;
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone_leap_second ENGINE=InnoDB;
|
|
END IF|
|
|
\d ;
|
|
TRUNCATE TABLE time_zone_leap_second;
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone_leap_second ENGINE=MyISAM;
|
|
END IF|
|
|
\d ;
|
|
ALTER TABLE time_zone_leap_second ORDER BY Transition_time;
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition_type ENGINE=MyISAM;
|
|
END IF|
|
|
\d ;
|
|
#
|
|
# MDEV-28263: mariadb-tzinfo-to-sql improve wsrep and binlog cases
|
|
#
|
|
#
|
|
# Testing --skip-write-binlog
|
|
#
|
|
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION WSREP_ON=OFF', 'do 0');
|
|
SET SESSION SQL_LOG_BIN=0;
|
|
execute immediate @prep1;
|
|
INSERT INTO time_zone (Use_leap_seconds) VALUES ('N');
|
|
SET @time_zone_id= LAST_INSERT_ID();
|
|
INSERT INTO time_zone_name (Name, Time_zone_id) VALUES ('XXX', @time_zone_id);
|
|
INSERT INTO time_zone_transition_type (Time_zone_id, Transition_type_id, Offset, Is_DST, Abbreviation) VALUES
|
|
(@time_zone_id, 0, 0, 0, 'GMT')
|
|
;
|
|
set @prep1=if((select count(*) from information_schema.global_variables where variable_name='wsrep_on' and variable_value='ON'), 'SET SESSION WSREP_ON=OFF', 'do 0');
|
|
SET SESSION SQL_LOG_BIN=0;
|
|
execute immediate @prep1;
|
|
TRUNCATE TABLE time_zone_leap_second;
|
|
ALTER TABLE time_zone_leap_second ORDER BY Transition_time;
|
|
#
|
|
# End of 10.2 tests
|
|
#
|
|
#
|
|
# MDEV-6236 - [PATCH] mysql_tzinfo_to_sql may produce invalid SQL
|
|
#
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_name ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition ENGINE=InnoDB;
|
|
ALTER TABLE time_zone_transition_type ENGINE=InnoDB;
|
|
END IF|
|
|
\d ;
|
|
TRUNCATE TABLE time_zone;
|
|
TRUNCATE TABLE time_zone_name;
|
|
TRUNCATE TABLE time_zone_transition;
|
|
TRUNCATE TABLE time_zone_transition_type;
|
|
START TRANSACTION;
|
|
COMMIT;
|
|
ALTER TABLE time_zone_transition ORDER BY Time_zone_id, Transition_time;
|
|
ALTER TABLE time_zone_transition_type ORDER BY Time_zone_id, Transition_type_id;
|
|
\d |
|
|
IF (select count(*) from information_schema.global_variables where
|
|
variable_name='wsrep_on' and variable_value='ON') = 1 THEN
|
|
ALTER TABLE time_zone ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_name ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition ENGINE=MyISAM;
|
|
ALTER TABLE time_zone_transition_type ENGINE=MyISAM;
|
|
END IF|
|
|
\d ;
|