1 drop table if exists t1, t2;
2 create table t1 (a int) engine=innodb;
3 create table t2 (a int) engine=myisam;
6 insert into t1 values(1);
7 insert into t2 select * from t1;
9 show binlog events from <binlog_start>;
10 Log_name Pos Event_type Server_id End_log_pos Info
11 master-bin.000001 # Query # # BEGIN
12 master-bin.000001 # Table_map # # table_id: # (test.t1)
13 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
14 master-bin.000001 # Table_map # # table_id: # (test.t2)
15 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
16 master-bin.000001 # Xid # # COMMIT /* XID */
21 insert into t1 values(2);
22 insert into t2 select * from t1;
25 Warning 1196 Some non-transactional changed tables couldn't be rolled back
26 show binlog events from <binlog_start>;
27 Log_name Pos Event_type Server_id End_log_pos Info
28 master-bin.000001 # Query # # BEGIN
29 master-bin.000001 # Table_map # # table_id: # (test.t1)
30 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
31 master-bin.000001 # Table_map # # table_id: # (test.t2)
32 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
33 master-bin.000001 # Query # # ROLLBACK
38 insert into t1 values(3);
39 savepoint my_savepoint;
40 insert into t1 values(4);
41 insert into t2 select * from t1;
42 rollback to savepoint my_savepoint;
44 Warning 1196 Some non-transactional changed tables couldn't be rolled back
46 show binlog events from <binlog_start>;
47 Log_name Pos Event_type Server_id End_log_pos Info
48 master-bin.000001 # Query # # BEGIN
49 master-bin.000001 # Table_map # # table_id: # (test.t1)
50 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
51 master-bin.000001 # Query # # SAVEPOINT `my_savepoint`
52 master-bin.000001 # Table_map # # table_id: # (test.t1)
53 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
54 master-bin.000001 # Table_map # # table_id: # (test.t2)
55 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
56 master-bin.000001 # Query # # ROLLBACK TO `my_savepoint`
57 master-bin.000001 # Xid # # COMMIT /* XID */
62 insert into t1 values(5);
63 savepoint my_savepoint;
64 insert into t1 values(6);
65 insert into t2 select * from t1;
66 rollback to savepoint my_savepoint;
68 Warning 1196 Some non-transactional changed tables couldn't be rolled back
69 insert into t1 values(7);
71 select a from t1 order by a;
75 show binlog events from <binlog_start>;
76 Log_name Pos Event_type Server_id End_log_pos Info
77 master-bin.000001 # Query # # BEGIN
78 master-bin.000001 # Table_map # # table_id: # (test.t1)
79 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
80 master-bin.000001 # Query # # SAVEPOINT `my_savepoint`
81 master-bin.000001 # Table_map # # table_id: # (test.t1)
82 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
83 master-bin.000001 # Table_map # # table_id: # (test.t2)
84 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
85 master-bin.000001 # Query # # ROLLBACK TO `my_savepoint`
86 master-bin.000001 # Table_map # # table_id: # (test.t1)
87 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
88 master-bin.000001 # Xid # # COMMIT /* XID */
92 select get_lock("a",10);
96 insert into t1 values(8);
97 insert into t2 select * from t1;
98 select get_lock("a",10);
101 show binlog events from <binlog_start>;
102 Log_name Pos Event_type Server_id End_log_pos Info
103 master-bin.000001 # Query # # BEGIN
104 master-bin.000001 # Table_map # # table_id: # (test.t1)
105 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
106 master-bin.000001 # Table_map # # table_id: # (test.t2)
107 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
108 master-bin.000001 # Query # # ROLLBACK
112 insert into t1 values(9);
113 insert into t2 select * from t1;
114 show binlog events from <binlog_start>;
115 Log_name Pos Event_type Server_id End_log_pos Info
116 master-bin.000001 # Query # # BEGIN
117 master-bin.000001 # Table_map # # table_id: # (test.t1)
118 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
119 master-bin.000001 # Xid # # COMMIT /* XID */
120 master-bin.000001 # Query # # BEGIN
121 master-bin.000001 # Table_map # # table_id: # (test.t2)
122 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
123 master-bin.000001 # Query # # COMMIT
127 insert into t1 values(10);
129 insert into t2 select * from t1;
130 show binlog events from <binlog_start>;
131 Log_name Pos Event_type Server_id End_log_pos Info
132 master-bin.000001 # Query # # BEGIN
133 master-bin.000001 # Table_map # # table_id: # (test.t1)
134 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
135 master-bin.000001 # Xid # # COMMIT /* XID */
136 master-bin.000001 # Query # # BEGIN
137 master-bin.000001 # Table_map # # table_id: # (test.t2)
138 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
139 master-bin.000001 # Query # # COMMIT
140 insert into t1 values(11);
142 show binlog events from <binlog_start>;
143 Log_name Pos Event_type Server_id End_log_pos Info
144 master-bin.000001 # Query # # BEGIN
145 master-bin.000001 # Table_map # # table_id: # (test.t1)
146 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
147 master-bin.000001 # Xid # # COMMIT /* XID */
148 master-bin.000001 # Query # # BEGIN
149 master-bin.000001 # Table_map # # table_id: # (test.t2)
150 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
151 master-bin.000001 # Query # # COMMIT
152 master-bin.000001 # Query # # BEGIN
153 master-bin.000001 # Table_map # # table_id: # (test.t1)
154 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
155 master-bin.000001 # Xid # # COMMIT /* XID */
156 alter table t2 engine=INNODB;
161 insert into t1 values(12);
162 insert into t2 select * from t1;
164 show binlog events from <binlog_start>;
165 Log_name Pos Event_type Server_id End_log_pos Info
166 master-bin.000001 # Query # # BEGIN
167 master-bin.000001 # Table_map # # table_id: # (test.t1)
168 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
169 master-bin.000001 # Table_map # # table_id: # (test.t2)
170 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
171 master-bin.000001 # Xid # # COMMIT /* XID */
176 insert into t1 values(13);
177 insert into t2 select * from t1;
179 show binlog events from <binlog_start>;
180 Log_name Pos Event_type Server_id End_log_pos Info
185 insert into t1 values(14);
186 savepoint my_savepoint;
187 insert into t1 values(15);
188 insert into t2 select * from t1;
189 rollback to savepoint my_savepoint;
191 show binlog events from <binlog_start>;
192 Log_name Pos Event_type Server_id End_log_pos Info
193 master-bin.000001 # Query # # BEGIN
194 master-bin.000001 # Table_map # # table_id: # (test.t1)
195 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
196 master-bin.000001 # Xid # # COMMIT /* XID */
201 insert into t1 values(16);
202 savepoint my_savepoint;
203 insert into t1 values(17);
204 insert into t2 select * from t1;
205 rollback to savepoint my_savepoint;
206 insert into t1 values(18);
208 select a from t1 order by a;
212 show binlog events from <binlog_start>;
213 Log_name Pos Event_type Server_id End_log_pos Info
214 master-bin.000001 # Query # # BEGIN
215 master-bin.000001 # Table_map # # table_id: # (test.t1)
216 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
217 master-bin.000001 # Table_map # # table_id: # (test.t1)
218 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
219 master-bin.000001 # Xid # # COMMIT /* XID */
222 alter table t2 engine=MyISAM;
223 insert into t1 values (1);
225 select * from t1 for update;
228 select (@before:=unix_timestamp())*0;
229 (@before:=unix_timestamp())*0
232 select * from t1 for update;
233 insert into t2 values (20);
234 ERROR HY000: Lock wait timeout exceeded; try restarting transaction
235 select (@after:=unix_timestamp())*0;
236 (@after:=unix_timestamp())*0
238 select (@after-@before) >= 2;
239 (@after-@before) >= 2
244 create temporary table ti (a int) engine=innodb;
246 insert into ti values(1);
248 create temporary table t1 (a int) engine=myisam;
250 insert t1 values (1);
253 Warning 1196 Some non-transactional changed tables couldn't be rolled back
254 create table t0 (n int);
255 insert t0 select * from t1;
257 insert into t0 select GET_LOCK("lock1",null);
259 create table t2 (n int) engine=innodb;
260 insert into t2 values (3);
261 select get_lock("lock1",60);
264 show binlog events from <binlog_start>;
265 Log_name Pos Event_type Server_id End_log_pos Info
266 master-bin.000001 # Query # # BEGIN
267 master-bin.000001 # Table_map # # table_id: # (test.t1)
268 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
269 master-bin.000001 # Table_map # # table_id: # (test.t1)
270 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
271 master-bin.000001 # Xid # # COMMIT /* XID */
272 master-bin.000001 # Query # # BEGIN
273 master-bin.000001 # Table_map # # table_id: # (test.t1)
274 master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F
275 master-bin.000001 # Xid # # COMMIT /* XID */
276 master-bin.000001 # Query # # use `test`; alter table t2 engine=MyISAM
277 master-bin.000001 # Query # # BEGIN
278 master-bin.000001 # Table_map # # table_id: # (test.t1)
279 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
280 master-bin.000001 # Xid # # COMMIT /* XID */
281 master-bin.000001 # Query # # BEGIN
282 master-bin.000001 # Table_map # # table_id: # (test.t2)
283 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
284 master-bin.000001 # Query # # COMMIT
285 master-bin.000001 # Query # # use `test`; drop table t1,t2
286 master-bin.000001 # Query # # use `test`; create table t0 (n int)
287 master-bin.000001 # Query # # BEGIN
288 master-bin.000001 # Table_map # # table_id: # (test.t0)
289 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
290 master-bin.000001 # Query # # COMMIT
291 master-bin.000001 # Query # # BEGIN
292 master-bin.000001 # Table_map # # table_id: # (test.t0)
293 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
294 master-bin.000001 # Query # # COMMIT
295 master-bin.000001 # Query # # use `test`; create table t2 (n int) engine=innodb
296 do release_lock("lock1");
299 CREATE TABLE t1 (a int, b int) engine=myisam;
301 INSERT INTO t1 values (1,1),(1,2);
302 CREATE TABLE t2 (primary key (a)) engine=innodb select * from t1;
303 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
304 DROP TABLE if exists t2;
306 Note 1051 Unknown table 't2'
307 INSERT INTO t1 values (3,3);
308 CREATE TEMPORARY TABLE t2 (primary key (a)) engine=innodb select * from t1;
309 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
312 Warning 1196 Some non-transactional changed tables couldn't be rolled back
313 DROP TABLE IF EXISTS t2;
315 Note 1051 Unknown table 't2'
316 CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb;
317 INSERT INTO t1 VALUES (4,4);
318 CREATE TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1;
319 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
323 INSERT INTO t1 VALUES (5,5);
324 INSERT INTO t2 select * from t1;
325 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
329 INSERT INTO t1 values (6,6);
330 CREATE TEMPORARY TABLE t2 (a int, b int, primary key (a)) engine=innodb ;
331 INSERT INTO t1 values (7,7);
334 Warning 1196 Some non-transactional changed tables couldn't be rolled back
335 INSERT INTO t1 values (8,8);
336 CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1;
337 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
339 INSERT INTO t1 values (9,9);
340 CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1;
341 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
344 Warning 1196 Some non-transactional changed tables couldn't be rolled back
348 INSERT INTO t1 values (10,10);
349 INSERT INTO t2 select * from t1;
350 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
363 INSERT INTO t2 values (100,100);
364 CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1;
365 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
367 INSERT INTO t2 values (101,101);
368 CREATE TEMPORARY TABLE IF NOT EXISTS t2 (primary key (a)) engine=innodb select * from t1;
369 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
375 show binlog events from <binlog_start>;
376 Log_name Pos Event_type Server_id End_log_pos Info
377 master-bin.000001 # Query # # BEGIN
378 master-bin.000001 # Table_map # # table_id: # (test.t1)
379 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
380 master-bin.000001 # Query # # COMMIT
381 master-bin.000001 # Query # # use `test`; DROP TABLE if exists t2
382 master-bin.000001 # Query # # BEGIN
383 master-bin.000001 # Table_map # # table_id: # (test.t1)
384 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
385 master-bin.000001 # Query # # COMMIT
386 master-bin.000001 # Query # # use `test`; DROP TABLE IF EXISTS t2
387 master-bin.000001 # Query # # use `test`; CREATE TABLE t2 (a int, b int, primary key (a)) engine=innodb
388 master-bin.000001 # Query # # BEGIN
389 master-bin.000001 # Table_map # # table_id: # (test.t1)
390 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
391 master-bin.000001 # Query # # COMMIT
392 master-bin.000001 # Query # # BEGIN
393 master-bin.000001 # Query # # use `test`; TRUNCATE table t2
394 master-bin.000001 # Xid # # COMMIT /* XID */
395 master-bin.000001 # Query # # BEGIN
396 master-bin.000001 # Table_map # # table_id: # (test.t1)
397 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
398 master-bin.000001 # Query # # COMMIT
399 master-bin.000001 # Query # # use `test`; DROP TABLE t2
400 master-bin.000001 # Query # # BEGIN
401 master-bin.000001 # Table_map # # table_id: # (test.t1)
402 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
403 master-bin.000001 # Query # # COMMIT
404 master-bin.000001 # Query # # BEGIN
405 master-bin.000001 # Table_map # # table_id: # (test.t1)
406 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
407 master-bin.000001 # Query # # COMMIT
408 master-bin.000001 # Query # # BEGIN
409 master-bin.000001 # Table_map # # table_id: # (test.t1)
410 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
411 master-bin.000001 # Query # # COMMIT
412 master-bin.000001 # Query # # BEGIN
413 master-bin.000001 # Table_map # # table_id: # (test.t1)
414 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
415 master-bin.000001 # Query # # COMMIT
416 master-bin.000001 # Query # # BEGIN
417 master-bin.000001 # Table_map # # table_id: # (test.t1)
418 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
419 master-bin.000001 # Query # # COMMIT
420 master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
422 create table t1 (a int) engine=innodb;
423 create table t2 (a int) engine=myisam;
424 select get_lock("a",10);
428 insert into t1 values(8);
429 insert into t2 select * from t1;
430 select get_lock("a",10);
435 (@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
437 (@a:=load_file("MYSQLTEST_VARDIR/tmp/mix_innodb_myisam_binlog.output"))
441 @a like "%#%error_code=0%ROLLBACK\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR
442 @a like "%#%error_code=0%ROLLBACK\r\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%",
443 @a not like "%#%error_code=%error_code=%";
444 @a like "%#%error_code=0%ROLLBACK\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" OR
445 @a like "%#%error_code=0%ROLLBACK\r\n/*!*/;%ROLLBACK /* added by mysqlbinlog */;%" @a not like "%#%error_code=%error_code=%"
448 create temporary table tt (a int unique);
449 create table ti (a int) engine=innodb;
452 insert into ti values (1);
453 insert into ti values (2) ;
454 insert into tt select * from ti;
457 Warning 1196 Some non-transactional changed tables couldn't be rolled back
458 select count(*) from tt /* 2 */;
461 show binlog events from <binlog_start>;
462 Log_name Pos Event_type Server_id End_log_pos Info
463 master-bin.000001 # Query # # BEGIN
464 master-bin.000001 # Table_map # # table_id: # (test.ti)
465 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
466 master-bin.000001 # Table_map # # table_id: # (test.ti)
467 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
468 master-bin.000001 # Query # # ROLLBACK
469 select count(*) from ti /* zero */;
472 insert into ti select * from tt;
473 select * from ti /* that is what slave would miss - a bug */;
478 delete from tt where a=1;
481 insert into ti values (1);
482 insert into ti values (2) /* to make the dup error in the following */;
483 insert into tt select * from ti /* one affected and error */;
484 ERROR 23000: Duplicate entry '2' for key 'a'
486 show binlog events from <binlog_start>;
487 Log_name Pos Event_type Server_id End_log_pos Info
488 select count(*) from ti /* zero */;
491 insert into ti select * from tt;
492 select * from tt /* that is what otherwise slave missed - the bug */;
497 drop function if exists bug27417;
498 drop table if exists t1,t2;
499 CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM;
500 CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a));
501 create function bug27417(n int)
504 insert into t1 values (null);
508 insert into t2 values (bug27417(1));
509 insert into t2 select bug27417(2);
511 insert into t2 values (bug27417(2));
512 ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
513 show binlog events from <binlog_start>;
514 Log_name Pos Event_type Server_id End_log_pos Info
515 master-bin.000001 # Query # # BEGIN
516 master-bin.000001 # Table_map # # table_id: # (test.t2)
517 master-bin.000001 # Table_map # # table_id: # (test.t1)
518 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
519 master-bin.000001 # Query # # ROLLBACK
520 /* only (!) with fixes for #23333 will show there is the query */;
521 select count(*) from t1 /* must be 3 */;
525 select count(*) from t2;
528 delete from t2 where a=bug27417(3);
529 select count(*) from t2 /* nothing got deleted */;
532 show binlog events from <binlog_start>;
533 Log_name Pos Event_type Server_id End_log_pos Info
534 master-bin.000001 # Query # # BEGIN
535 master-bin.000001 # Table_map # # table_id: # (test.t2)
536 master-bin.000001 # Table_map # # table_id: # (test.t1)
537 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
538 master-bin.000001 # Query # # COMMIT
539 /* the query must be in regardless of #23333 */;
540 select count(*) from t1 /* must be 5 */;
543 delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */;
545 select count(*) from t1 /* must be 7 */;
549 CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM;
550 CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
551 CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM;
552 CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb;
553 CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
554 insert into t2 values (1);
556 insert into t2 values (bug27417(1));
557 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
558 show binlog events from <binlog_start>;
559 Log_name Pos Event_type Server_id End_log_pos Info
560 master-bin.000001 # Query # # BEGIN
561 master-bin.000001 # Table_map # # table_id: # (test.t2)
562 master-bin.000001 # Table_map # # table_id: # (test.t1)
563 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
564 master-bin.000001 # Query # # ROLLBACK
565 /* the output must denote there is the query */;
566 select count(*) from t1 /* must be 1 */;
571 insert into t2 values (2);
573 insert into t2 select bug27417(1) union select bug27417(2);
574 ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
575 show binlog events from <binlog_start>;
576 Log_name Pos Event_type Server_id End_log_pos Info
577 master-bin.000001 # Query # # BEGIN
578 master-bin.000001 # Table_map # # table_id: # (test.t2)
579 master-bin.000001 # Table_map # # table_id: # (test.t1)
580 master-bin.000001 # Write_rows # # table_id: #
581 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
582 master-bin.000001 # Query # # ROLLBACK
583 /* the output must denote there is the query */;
584 select count(*) from t1 /* must be 2 */;
588 insert into t3 values (1,1),(2,3),(3,4);
590 update t3 set b=b+bug27417(1);
591 ERROR 23000: Duplicate entry '4' for key 'b'
592 show binlog events from <binlog_start>;
593 Log_name Pos Event_type Server_id End_log_pos Info
594 master-bin.000001 # Query # # BEGIN
595 master-bin.000001 # Table_map # # table_id: # (test.t3)
596 master-bin.000001 # Table_map # # table_id: # (test.t1)
597 master-bin.000001 # Write_rows # # table_id: #
598 master-bin.000001 # Update_rows # # table_id: #
599 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
600 master-bin.000001 # Query # # ROLLBACK
601 /* the output must denote there is the query */;
602 select count(*) from t1 /* must be 2 */;
607 insert into t3 values (1,1);
608 insert into t4 values (1,1),(2,2);
610 UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */;
611 ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
612 show binlog events from <binlog_start>;
613 Log_name Pos Event_type Server_id End_log_pos Info
614 master-bin.000001 # Query # # BEGIN
615 master-bin.000001 # Table_map # # table_id: # (test.t4)
616 master-bin.000001 # Table_map # # table_id: # (test.t1)
617 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
618 master-bin.000001 # Query # # ROLLBACK
619 /* the output must denote there is the query */;
620 select count(*) from t1 /* must be 4 */;
626 insert into t3 values (1,1),(2,2);
627 insert into t4 values (1,1),(2,2);
629 UPDATE t3,t4 SET t3.a=t4.a + bug27417(1);
630 ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
631 select count(*) from t1 /* must be 1 */;
638 insert into t2 values (1);
639 insert into t3 values (1,1);
640 create trigger trg_del before delete on t2 for each row
641 insert into t3 values (bug27417(1), 2);
644 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
645 show binlog events from <binlog_start>;
646 Log_name Pos Event_type Server_id End_log_pos Info
647 master-bin.000001 # Query # # BEGIN
648 master-bin.000001 # Table_map # # table_id: # (test.t2)
649 master-bin.000001 # Table_map # # table_id: # (test.t3)
650 master-bin.000001 # Table_map # # table_id: # (test.t1)
651 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
652 master-bin.000001 # Query # # ROLLBACK
653 /* the output must denote there is the query */;
654 select count(*) from t1 /* must be 1 */;
657 drop trigger trg_del;
661 create trigger trg_del_t2 after delete on t2 for each row
662 insert into t1 values (1);
663 insert into t2 values (2),(3);
664 insert into t5 values (1),(2);
666 delete t2.* from t2,t5 where t2.a=t5.a + 1;
667 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
668 show binlog events from <binlog_start>;
669 Log_name Pos Event_type Server_id End_log_pos Info
670 master-bin.000001 # Query # # BEGIN
671 master-bin.000001 # Table_map # # table_id: # (test.t2)
672 master-bin.000001 # Table_map # # table_id: # (test.t1)
673 master-bin.000001 # Delete_rows # # table_id: #
674 master-bin.000001 # Write_rows # # table_id: #
675 master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F
676 master-bin.000001 # Query # # ROLLBACK
677 /* the output must denote there is the query */;
678 select count(*) from t1 /* must be 1 */;
682 create table t4 (a int default 0, b int primary key) engine=innodb;
683 insert into t4 values (0, 17);
685 load data infile '../../std_data/rpl_loaddata.dat' into table t4 (a, @b) set b= @b + bug27417(2);
686 ERROR 23000: Duplicate entry '17' for key 'PRIMARY'
690 select count(*) from t1 /* must be 2 */;
693 show binlog events from <binlog_start>;
694 Log_name Pos Event_type Server_id End_log_pos Info
695 master-bin.000001 # Query # # BEGIN
696 master-bin.000001 # Table_map # # table_id: # (test.t4)
697 master-bin.000001 # Table_map # # table_id: # (test.t1)
698 master-bin.000001 # Write_rows # # table_id: #
699 master-bin.000001 # Write_rows # # table_id: #
700 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
701 master-bin.000001 # Query # # ROLLBACK
702 /* the output must denote there is the query */;
703 drop trigger trg_del_t2;
704 drop table t1,t2,t3,t4,t5;
705 drop function bug27417;
707 create temporary table tt (a int unique);
708 create table ti (a int) engine=innodb;
711 insert into ti values (1);
712 insert into ti values (2) ;
713 insert into tt select * from ti;
716 Warning 1196 Some non-transactional changed tables couldn't be rolled back
717 select count(*) from tt /* 2 */;
720 show binlog events from <binlog_start>;
721 Log_name Pos Event_type Server_id End_log_pos Info
722 master-bin.000001 # Query # # BEGIN
723 master-bin.000001 # Table_map # # table_id: # (test.ti)
724 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
725 master-bin.000001 # Table_map # # table_id: # (test.ti)
726 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
727 master-bin.000001 # Query # # ROLLBACK
728 select count(*) from ti /* zero */;
731 insert into ti select * from tt;
732 select * from ti /* that is what slave would miss - bug#28960 */;
737 delete from tt where a=1;
740 insert into ti values (1);
741 insert into ti values (2) /* to make the dup error in the following */;
742 insert into tt select * from ti /* one affected and error */;
743 ERROR 23000: Duplicate entry '2' for key 'a'
745 show binlog events from <binlog_start>;
746 Log_name Pos Event_type Server_id End_log_pos Info
747 select count(*) from ti /* zero */;
750 insert into ti select * from tt;
751 select * from tt /* that is what otherwise slave missed - the bug */;
756 drop function if exists bug27417;
757 drop table if exists t1,t2;
758 CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM;
759 CREATE TABLE t2 (a int NOT NULL auto_increment, PRIMARY KEY (a));
760 create function bug27417(n int)
763 insert into t1 values (null);
767 insert into t2 values (bug27417(1));
768 insert into t2 select bug27417(2);
770 insert into t2 values (bug27417(2));
771 ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
772 show binlog events from <binlog_start>;
773 Log_name Pos Event_type Server_id End_log_pos Info
774 master-bin.000001 # Query # # BEGIN
775 master-bin.000001 # Table_map # # table_id: # (test.t2)
776 master-bin.000001 # Table_map # # table_id: # (test.t1)
777 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
778 master-bin.000001 # Query # # ROLLBACK
779 select count(*) from t1 /* must be 3 */;
783 select count(*) from t2;
786 delete from t2 where a=bug27417(3);
787 select count(*) from t2 /* nothing got deleted */;
790 show binlog events from <binlog_start>;
791 Log_name Pos Event_type Server_id End_log_pos Info
792 master-bin.000001 # Query # # BEGIN
793 master-bin.000001 # Table_map # # table_id: # (test.t2)
794 master-bin.000001 # Table_map # # table_id: # (test.t1)
795 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
796 master-bin.000001 # Query # # COMMIT
797 select count(*) from t1 /* must be 5 */;
800 delete t2 from t2 where t2.a=bug27417(100) /* must not affect t2 */;
802 select count(*) from t1 /* must be 7 */;
806 CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM;
807 CREATE TABLE t2 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
808 CREATE TABLE t3 (a int, PRIMARY KEY (a), b int unique) ENGINE=MyISAM;
809 CREATE TABLE t4 (a int, PRIMARY KEY (a), b int unique) ENGINE=Innodb;
810 CREATE TABLE t5 (a int, PRIMARY KEY (a)) ENGINE=InnoDB;
811 insert into t2 values (1);
813 insert into t2 values (bug27417(1));
814 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
815 show binlog events from <binlog_start>;
816 Log_name Pos Event_type Server_id End_log_pos Info
817 master-bin.000001 # Query # # BEGIN
818 master-bin.000001 # Table_map # # table_id: # (test.t2)
819 master-bin.000001 # Table_map # # table_id: # (test.t1)
820 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
821 master-bin.000001 # Query # # ROLLBACK
822 select count(*) from t1 /* must be 1 */;
827 insert into t2 values (2);
829 insert into t2 select bug27417(1) union select bug27417(2);
830 ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
831 show binlog events from <binlog_start>;
832 Log_name Pos Event_type Server_id End_log_pos Info
833 master-bin.000001 # Query # # BEGIN
834 master-bin.000001 # Table_map # # table_id: # (test.t2)
835 master-bin.000001 # Table_map # # table_id: # (test.t1)
836 master-bin.000001 # Write_rows # # table_id: #
837 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
838 master-bin.000001 # Query # # ROLLBACK
839 select count(*) from t1 /* must be 2 */;
843 insert into t3 values (1,1),(2,3),(3,4);
845 update t3 set b=b+bug27417(1);
846 ERROR 23000: Duplicate entry '4' for key 'b'
847 show binlog events from <binlog_start>;
848 Log_name Pos Event_type Server_id End_log_pos Info
849 master-bin.000001 # Query # # BEGIN
850 master-bin.000001 # Table_map # # table_id: # (test.t3)
851 master-bin.000001 # Table_map # # table_id: # (test.t1)
852 master-bin.000001 # Write_rows # # table_id: #
853 master-bin.000001 # Update_rows # # table_id: #
854 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
855 master-bin.000001 # Query # # ROLLBACK
856 select count(*) from t1 /* must be 2 */;
861 insert into t3 values (1,1);
862 insert into t4 values (1,1),(2,2);
864 UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */;
865 ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
866 show binlog events from <binlog_start>;
867 Log_name Pos Event_type Server_id End_log_pos Info
868 master-bin.000001 # Query # # BEGIN
869 master-bin.000001 # Table_map # # table_id: # (test.t4)
870 master-bin.000001 # Table_map # # table_id: # (test.t1)
871 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
872 master-bin.000001 # Query # # ROLLBACK
873 select count(*) from t1 /* must be 4 */;
879 insert into t3 values (1,1),(2,2);
880 insert into t4 values (1,1),(2,2);
882 UPDATE t3,t4 SET t3.a = t4.a + bug27417(1) where t3.a = 1;
883 ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
884 select count(*) from t1 /* must be 1 */;
891 insert into t2 values (1);
892 insert into t3 values (1,1);
893 create trigger trg_del before delete on t2 for each row
894 insert into t3 values (bug27417(1), 2);
897 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
898 show binlog events from <binlog_start>;
899 Log_name Pos Event_type Server_id End_log_pos Info
900 master-bin.000001 # Query # # BEGIN
901 master-bin.000001 # Table_map # # table_id: # (test.t2)
902 master-bin.000001 # Table_map # # table_id: # (test.t3)
903 master-bin.000001 # Table_map # # table_id: # (test.t1)
904 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
905 master-bin.000001 # Query # # ROLLBACK
906 select count(*) from t1 /* must be 1 */;
909 drop trigger trg_del;
913 create trigger trg_del_t2 after delete on t2 for each row
914 insert into t1 values (1);
915 insert into t2 values (2),(3);
916 insert into t5 values (1),(2);
918 delete t2.* from t2,t5 where t2.a=t5.a + 1;
919 ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
920 show binlog events from <binlog_start>;
921 Log_name Pos Event_type Server_id End_log_pos Info
922 master-bin.000001 # Query # # BEGIN
923 master-bin.000001 # Table_map # # table_id: # (test.t2)
924 master-bin.000001 # Table_map # # table_id: # (test.t1)
925 master-bin.000001 # Delete_rows # # table_id: #
926 master-bin.000001 # Write_rows # # table_id: #
927 master-bin.000001 # Delete_rows # # table_id: # flags: STMT_END_F
928 master-bin.000001 # Query # # ROLLBACK
929 select count(*) from t1 /* must be 1 */;
933 create table t4 (a int default 0, b int primary key) engine=innodb;
934 insert into t4 values (0, 17);
936 load data infile '../../std_data/rpl_loaddata.dat' into table t4 (a, @b) set b= @b + bug27417(2);
937 ERROR 23000: Duplicate entry '17' for key 'PRIMARY'
941 select count(*) from t1 /* must be 2 */;
944 show binlog events from <binlog_start>;
945 Log_name Pos Event_type Server_id End_log_pos Info
946 master-bin.000001 # Query # # BEGIN
947 master-bin.000001 # Table_map # # table_id: # (test.t4)
948 master-bin.000001 # Table_map # # table_id: # (test.t1)
949 master-bin.000001 # Write_rows # # table_id: #
950 master-bin.000001 # Write_rows # # table_id: #
951 master-bin.000001 # Write_rows # # table_id: # flags: STMT_END_F
952 master-bin.000001 # Query # # ROLLBACK
953 drop trigger trg_del_t2;
954 drop table t1,t2,t3,t4,t5;
955 drop function bug27417;