Commit 617ea4d6 authored by sven@riska.(none)'s avatar sven@riska.(none)
Browse files

BUG#27779: Slave cannot read old rows log events.

Problem: Replication fails when master is mysql-5.1-wl2325-5.0-drop6 and
slave is mysql-5.1-new-rpl. The reason is that, in
mysql-5.1-wl2325-5.0-drop6, the event type id's were different than in
mysql-5.1-new-rpl.
Fix (in mysql-5.1-new-rpl):
 (1) detect that the server that generated the events uses the old
format, by checking the server version of the format_description_log_event
This patch recognizes mysql-5.1-wl2325-5.0-drop6p13-alpha,
mysql-5.1-wl2325-5.0-drop6, mysql-5.1-wl2325-5.0, mysql-5.1-wl2325-no-dd.
 (2) if the generating server is old, map old event types to new event
types using a permutation array.

I've also added a test case which reads binlogs for four different
versions.
parent fabaa50c
Loading
Loading
Loading
Loading
+61 −0
Original line number Diff line number Diff line
DROP TABLE IF EXISTS t1, t2, t3;
==== Read modern binlog (version 5.1.23) ====
SELECT * FROM t1 ORDER BY a;
a	b
0	last_insert_id
1	one
3	last stm in trx: next event should be xid
4	four
674568	random
SELECT * FROM t2 ORDER BY a;
a	b
3	first stm in trx
SELECT COUNT(*) FROM t3;
COUNT(*)
17920
DROP TABLE t1, t2, t3;
==== Read binlog from version 5.1.17 ====
SELECT * FROM t1 ORDER BY a;
a	b
0	last_insert_id
1	one
3	last stm in trx: next event should be xid
4	four
764247	random
SELECT * FROM t2 ORDER BY a;
a	b
3	first stm in trx
SELECT COUNT(*) FROM t3;
COUNT(*)
17920
DROP TABLE t1, t2, t3;
==== Read binlog from alcatel tree (mysql-5.1-wl2325-5.0-drop6) ====
SELECT * FROM t1 ORDER BY a;
a	b
0	last_insert_id
1	one
3	last stm in trx: next event should be xid
4	four
781729	random
SELECT * FROM t2 ORDER BY a;
a	b
3	first stm in trx
SELECT COUNT(*) FROM t3;
COUNT(*)
17920
DROP TABLE t1, t2, t3;
==== Read binlog from ndb tree (mysql-5.1-telco-6.1) ====
SELECT * FROM t1 ORDER BY a;
a	b
0	last_insert_id
1	one
3	last stm in trx: next event should be xid
4	four
703356	random
SELECT * FROM t2 ORDER BY a;
a	b
3	first stm in trx
SELECT COUNT(*) FROM t3;
COUNT(*)
17920
DROP TABLE t1, t2, t3;
+147 KiB

File added.

No diff preview for this file type.

+705 B

File added.

No diff preview for this file type.

+146 KiB

File added.

No diff preview for this file type.

+147 KiB

File added.

No diff preview for this file type.

Loading