1include/master-slave.inc
2[connection master]
3
4*** Preparing data ***
5connection master;
6CREATE TABLE t1 (a INT NOT NULL, b VARCHAR(10)) ENGINE=MyISAM;
7CREATE TABLE t2 LIKE t1;
8CREATE TABLE t3 LIKE t1;
9CREATE TRIGGER tr1 BEFORE UPDATE ON t1
10FOR EACH ROW BEGIN
11UPDATE t2 SET b='YY' WHERE a=NEW.a;
12END|
13CREATE TRIGGER tr2 AFTER UPDATE ON t1
14FOR EACH ROW BEGIN
15UPDATE t3 SET b='ZZ' WHERE a=NEW.a;
16END|
17
18*** Test non-transactional group w/o PK ***
19connection master;
20INSERT INTO t3 VALUES(1, 'AA');
21INSERT INTO t2 VALUES(1, 'AA');
22INSERT INTO t1 VALUES(1, 'AA');
23connection slave;
24RENAME TABLE t3 TO t3_bak;
25connection master;
26UPDATE t1 SET b = 'XX' WHERE a = 1;
27SELECT * FROM t1 ORDER BY a;
28a	b
291	XX
30SELECT * FROM t2 ORDER BY a;
31a	b
321	YY
33SELECT * FROM t3 ORDER BY a;
34a	b
351	ZZ
36connection slave;
37call mtr.add_suppression("Slave SQL.*Table .test.t3. doesn.t exist.* error.* 1146");
38call mtr.add_suppression("At line *");
39include/wait_for_slave_sql_error.inc [errno=1146]
40SHOW TABLES LIKE 't%';
41Tables_in_test (t%)
42t1
43t2
44t3_bak
45SELECT * FROM t1 ORDER BY a;
46a	b
471	AA_for_row_or_XX_for_stmt_mixed
48SELECT * FROM t2 ORDER BY a;
49a	b
501	AA_for_row_or_YY_for_stmt_mixed
51include/stop_slave_io.inc
52RENAME TABLE t3_bak TO t3;
53include/start_slave.inc
54connection master;
55TRUNCATE t1;
56TRUNCATE t2;
57TRUNCATE t3;
58connection slave;
59
60*** Test non-transactional group w/ PK ***
61connection master;
62ALTER TABLE t1 ADD PRIMARY KEY (a);
63ALTER TABLE t2 ADD PRIMARY KEY (a);
64ALTER TABLE t3 ADD PRIMARY KEY (a);
65connection slave;
66RENAME TABLE t3 TO t3_bak;
67connection master;
68INSERT INTO t3 VALUES(2, 'B');
69INSERT INTO t2 VALUES(2, 'B');
70INSERT INTO t1 VALUES(2, 'B');
71UPDATE t1 SET b = 'X' WHERE a = 2;
72connection slave;
73include/wait_for_slave_sql_error.inc [errno=1146]
74connection master;
75SELECT * FROM t1 ORDER BY a;
76a	b
772	X
78SELECT * FROM t2 ORDER BY a;
79a	b
802	YY
81SELECT * FROM t3 ORDER BY a;
82a	b
832	ZZ
84connection slave;
85SHOW TABLES LIKE 't%';
86Tables_in_test (t%)
87t1
88t2
89t3_bak
90SELECT * FROM t1 ORDER BY a;
91a	b
92SELECT * FROM t2 ORDER BY a;
93a	b
94include/stop_slave_io.inc
95RENAME TABLE t3_bak TO t3;
96include/start_slave.inc
97connection master;
98TRUNCATE t1;
99TRUNCATE t2;
100TRUNCATE t3;
101connection slave;
102
103*** Test transactional group w/ PK ***
104connection master;
105ALTER TABLE t1 ENGINE=InnoDB;
106ALTER TABLE t2 ENGINE=InnoDB;
107ALTER TABLE t3 ENGINE=InnoDB;
108connection slave;
109RENAME TABLE t3 TO t3_bak;
110connection master;
111BEGIN;
112INSERT INTO t1 VALUES (3, 'C'), (4, 'D');
113INSERT INTO t2 VALUES (3, 'C'), (4, 'D');
114INSERT INTO t3 VALUES (3, 'C'), (4, 'D');
115COMMIT;
116connection slave;
117include/wait_for_slave_sql_error.inc [errno=1146]
118connection master;
119SELECT * FROM t1 ORDER BY a;
120a	b
1213	C
1224	D
123SELECT * FROM t2 ORDER BY a;
124a	b
1253	C
1264	D
127SELECT * FROM t3 ORDER BY a;
128a	b
1293	C
1304	D
131connection slave;
132SHOW TABLES LIKE 't%';
133Tables_in_test (t%)
134t1
135t2
136t3_bak
137SELECT * FROM t1 ORDER BY a;
138a	b
139SELECT * FROM t2 ORDER BY a;
140a	b
141include/stop_slave_io.inc
142RENAME TABLE t3_bak TO t3;
143include/start_slave.inc
144*** Clean up ***
145connection master;
146DROP TABLE t1,t2,t3;
147connection slave;
148include/rpl_end.inc
149