# BUG#33029 5.0 to 5.1 replication fails on dup key when inserting # using a trig in SP # For all 5.0 up to 5.0.58 exclusive, and 5.1 up to 5.1.12 exclusive, # if one statement in a SP generated AUTO_INCREMENT value by the top # statement, all statements after it would be considered generated # AUTO_INCREMENT value by the top statement, and a erroneous INSERT_ID # value might be associated with these statement, which could cause # duplicate entry error and stop the slave. # Test if the slave can replicate from such a buggy master # The bug33029-slave-relay-bin.000001 file is the # slave-replay-bin.000003 file generated by run the # rpl_auto_increment_bug33029.test with clean up statements at the end # of the test case removed on a buggy 5.0 server source include/have_log_bin.inc; let $MYSQLD_DATADIR= `select @@datadir`; copy_file $MYSQL_TEST_DIR/std_data/bug33029-slave-relay-bin.000001 $MYSQLD_DATADIR/slave-relay-bin.000001; write_file $MYSQLD_DATADIR/slave-relay-bin.index; slave-relay-bin.000001 EOF change master to MASTER_HOST='dummy.localdomain', RELAY_LOG_FILE='slave-relay-bin.000001', RELAY_LOG_POS=4; start slave sql_thread; disable_result_log; select MASTER_POS_WAIT('master-bin.000001', 3776); enable_result_log; echo # Result on slave; SELECT * FROM t1; SELECT * FROM t2; # clean up disable_warnings; DROP TABLE IF EXISTS t1, t2; DROP PROCEDURE IF EXISTS p1; DROP PROCEDURE IF EXISTS p2; DROP FUNCTION IF EXISTS f1; DROP TRIGGER IF EXISTS tr1; enable_warnings; remove_file $MYSQLD_DATADIR/slave-relay-bin.000001; remove_file $MYSQLD_DATADIR/slave-relay-bin.index; stop slave sql_thread; let $keep_connection=1; source include/wait_for_slave_sql_to_stop.inc;