summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/rpl/t/rpl_cross_version.test
blob: 94c9f0432ce4232a41b1fb928b895214c7803df2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# ==== Purpose ====
#
# Verify cross-version replication from an old master to the up-to-date slave
#
# ==== Implementation ====
#
# Feed to the slave server a binlog recorded on an old version master 
# via setting up slave-to-slave replication. The latter is done by means of
# the opt file and include/setup_fake_relay_log.inc.
# The master's binlog is treated as a relay log that the SQL thread executes.
#

--source include/master-slave.inc

#
# Bug#31240 load data infile replication between (4.0 or 4.1) and 5.1 fails
#

--echo ==== Initialize ====
--connection slave

--disable_query_log
# The binlog contains the function RAND which is unsafe.
CALL mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
--enable_query_log

--source include/stop_slave.inc
RESET SLAVE;

# the relay log contains create t1, t3 tables and load data infile
--let $fake_relay_log = $MYSQL_TEST_DIR/suite/binlog/std_data/binlog_old_version_4_1.000001
--source include/setup_fake_relay_log.inc

--echo ==== Test ====
start slave sql_thread;
--let $slave_param = Exec_Master_Log_Pos
# end_log_pos of the last event of the relay log
--let $slave_param_value = 149436
--source include/wait_for_slave_param.inc
--echo ==== a prove that the fake has been processed successfully ====
SELECT COUNT(*) - 17920 as zero FROM t3;

--echo ==== Clean up ====
--source include/stop_slave_sql.inc
--source include/cleanup_fake_relay_log.inc
drop table t1, t3;
--let $rpl_only_running_threads= 1
--source include/rpl_end.inc