# # Auxiliary file which is used to test BUG#56118 # # Slave should apply all statements in the transaction before stop if any # temporary table is created or dropped. # # USEAGE: # --let $tmp_table_stm= a SQL statement # --source suite/rpl/include/rpl_stop_slave.test # if (!$tmp_table_stm) { --echo \$tmp_table_stm is NULL --die $tmp_table_stm is NULL } connection master; BEGIN; DELETE FROM t1; eval $tmp_table_stm; INSERT INTO t1 VALUES (1); DROP TEMPORARY TABLE tt1; COMMIT; connection slave; # To check if slave SQL thread is applying INSERT statement let $show_statement= SHOW PROCESSLIST; let $field= Info; let $condition= LIKE 'INSERT%'; source include/wait_show_condition.inc; send STOP SLAVE SQL_THREAD; connection slave1; --echo # To resume slave SQL thread SET DEBUG_SYNC= 'now SIGNAL signal.continue'; SET DEBUG_SYNC= 'now WAIT_FOR signal.continued'; SET DEBUG_SYNC= 'RESET'; connection slave; reap; source include/wait_for_slave_sql_to_stop.inc; --echo # Slave should stop after the transaction has committed. --echo # So t1 on master is same to t1 on slave. --let $diff_tables= master:t1, slave:t1 --source include/diff_tables.inc connection slave; START SLAVE SQL_THREAD; source include/wait_for_slave_sql_to_start.inc; connection master; sync_slave_with_master;