mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
59d0872aa0
"If 2 master threads with same-name temp table, slave makes bad binlog" and (two birds with one stone) for BUG#1240 "slave of slave breaks when STOP SLAVE was issud on parent slave and temp tables". Here is the design change: in a slave running with --log-slave-updates, events are now logged with the thread id they had on the master. So no more id conflicts between master threads, but introduces id conflicts between one master thread and one normal client thread connected to the slave. This is solved by storing the server id in the temp table's name. New test which requires mysql-test-run to be run with --manager, otherwise it will be skipped. Undoing a Monty's change (hum, a chill runs down my spine ;) which was "Cleanup temporary tables when slave ends" in ChangeSet 1.1572.1.1.
30 lines
785 B
Text
30 lines
785 B
Text
slave stop;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
reset master;
|
|
reset slave;
|
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
|
slave start;
|
|
reset master;
|
|
change master to master_host='127.0.0.1',master_port=9307, master_user='root';
|
|
start slave;
|
|
create temporary table t1 (a int);
|
|
create temporary table t1 (a int);
|
|
show status like 'slave_open_temp_tables';
|
|
Variable_name Value
|
|
Slave_open_temp_tables 2
|
|
create temporary table t1 (a int);
|
|
create temporary table t1 (a int);
|
|
show status like 'slave_open_temp_tables';
|
|
Variable_name Value
|
|
Slave_open_temp_tables 4
|
|
stop slave;
|
|
insert into t1 values(1);
|
|
create table t2 as select * from t1;
|
|
start slave;
|
|
show status like 'slave_open_temp_tables';
|
|
Variable_name Value
|
|
Slave_open_temp_tables 4
|
|
select * from t2;
|
|
a
|
|
1
|
|
drop table t2;
|