1
SET SESSION STORAGE_ENGINE = InnoDB;
2
DROP TABLE IF EXISTS t1, t2, t3, t4;
3
CREATE TABLE t1 (id INTEGER) ENGINE=MyISAM;
4
CREATE TABLE t2 (id INTEGER PRIMARY KEY);
5
CREATE TABLE t3 (a CHAR(32) PRIMARY KEY,id INTEGER);
6
CREATE TABLE t4 (a CHAR(32) PRIMARY KEY,id INTEGER) ENGINE=MyISAM;
7
INSERT INTO t1 (id) VALUES (1);
8
INSERT INTO t1 SELECT id+1 FROM t1;
9
INSERT INTO t1 SELECT id+2 FROM t1;
10
INSERT INTO t1 SELECT id+4 FROM t1;
11
INSERT INTO t1 SELECT id+8 FROM t1;
12
INSERT INTO t1 SELECT id+16 FROM t1;
13
INSERT INTO t1 SELECT id+32 FROM t1;
14
INSERT INTO t1 SELECT id+64 FROM t1;
15
INSERT INTO t1 SELECT id+128 FROM t1;
16
INSERT INTO t1 SELECT id+256 FROM t1;
17
INSERT INTO t1 SELECT id+512 FROM t1;
18
INSERT INTO t1 SELECT id+1024 FROM t1;
19
INSERT INTO t1 SELECT id+2048 FROM t1;
20
INSERT INTO t1 SELECT id+4096 FROM t1;
21
INSERT INTO t1 SELECT id+8192 FROM t1;
22
INSERT INTO t1 SELECT id+16384 FROM t1;
23
INSERT INTO t1 SELECT id+32768 FROM t1;
24
INSERT INTO t1 SELECT id+65536 FROM t1;
25
INSERT INTO t1 SELECT id+131072 FROM t1;
26
INSERT INTO t1 SELECT id+262144 FROM t1;
27
INSERT INTO t1 SELECT id+524288 FROM t1;
28
INSERT INTO t1 SELECT id+1048576 FROM t1;
29
INSERT INTO t2 SELECT * FROM t1;
30
INSERT INTO t3 SELECT CONCAT(id),id FROM t2 ORDER BY -id;
31
INSERT INTO t4 SELECT * FROM t3 ORDER BY CONCAT(a);
32
SELECT SUM(id) FROM t3;
35
DROP TABLE t1,t2,t3,t4;
36
CREATE TABLE t1 (f1 int NOT NULL) ENGINE=InnoDB;
37
CREATE TABLE t2 (f2 int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT) ENGINE=InnoDB;
38
CREATE TRIGGER t1_bi before INSERT
41
DECLARE CONTINUE HANDLER FOR SQLSTATE '40001' SET @a:= 'deadlock';
42
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
43
INSERT INTO t2 (f2) VALUES (1);
44
DELETE FROM t2 WHERE f2 = 1;
46
CREATE PROCEDURE proc24989()
48
DECLARE CONTINUE HANDLER FOR SQLSTATE '40001' SET @b:= 'deadlock';
49
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET @a:= 'exception';
50
INSERT INTO t2 (f2) VALUES (1);
51
DELETE FROM t2 WHERE f2 = 1;
53
create procedure proc24989_2()
56
declare continue handler for sqlexception
57
select 'Outer handler' as 'exception';
58
insert into t1 values(1);
62
insert into t1 values(1);
64
insert into t2 values(123);
65
insert into t1 values(1);
66
insert into t1 values(1);
67
ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
75
insert into t1 values(1);
77
insert into t2 values(123);
79
insert into t1 values(1);
87
insert into t1 values(1);
89
insert into t2 values(123);
91
insert into t1 values(1);
99
drop procedure proc24989;
100
drop procedure proc24989_2;