# ==== 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