mirror of
https://github.com/MariaDB/server.git
synced 2025-11-16 20:23:18 +03:00
Fix replication for multi-update
new test - rpl_multi_update2
sql/mysql_priv.h:
Bug#7011
New function mysql_multi_update_lock()
sql/sql_parse.cc:
Bug#7011
New function check_multi_update_lock()
For multi-update on slave, perform an early open&lock
sql/sql_update.cc:
Bug#7011
Split out multi-update locking into its own function,
mysql_multi_update_lock()
43 lines
764 B
Plaintext
43 lines
764 B
Plaintext
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;
|
|
CREATE TABLE t1 (
|
|
a int unsigned not null auto_increment primary key,
|
|
b int unsigned
|
|
) TYPE=MyISAM;
|
|
CREATE TABLE t2 (
|
|
a int unsigned not null auto_increment primary key,
|
|
b int unsigned
|
|
) TYPE=MyISAM;
|
|
INSERT INTO t1 VALUES (NULL, 0);
|
|
INSERT INTO t1 SELECT NULL, 0 FROM t1;
|
|
INSERT INTO t2 VALUES (NULL, 0), (NULL,1);
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
1 0
|
|
2 0
|
|
SELECT * FROM t2 ORDER BY a;
|
|
a b
|
|
1 0
|
|
2 1
|
|
UPDATE t1, t2 SET t1.b = (t2.b+4) WHERE t1.a = t2.a;
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
1 4
|
|
2 5
|
|
SELECT * FROM t2 ORDER BY a;
|
|
a b
|
|
1 0
|
|
2 1
|
|
SELECT * FROM t1 ORDER BY a;
|
|
a b
|
|
1 4
|
|
2 5
|
|
SELECT * FROM t2 ORDER BY a;
|
|
a b
|
|
1 0
|
|
2 1
|