summaryrefslogtreecommitdiff
path: root/mysql-test/r/deadlock_innodb.result
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/r/deadlock_innodb.result')
-rw-r--r--mysql-test/r/deadlock_innodb.result114
1 files changed, 114 insertions, 0 deletions
diff --git a/mysql-test/r/deadlock_innodb.result b/mysql-test/r/deadlock_innodb.result
new file mode 100644
index 00000000000..a0686d1c844
--- /dev/null
+++ b/mysql-test/r/deadlock_innodb.result
@@ -0,0 +1,114 @@
+# Establish connection con1 (user=root)
+# Establish connection con2 (user=root)
+drop table if exists t1,t2;
+# Switch to connection con1
+create table t1 (id integer, x integer) engine = InnoDB;
+insert into t1 values(0, 0);
+set autocommit=0;
+SELECT * from t1 where id = 0 FOR UPDATE;
+id x
+0 0
+# Switch to connection con2
+set autocommit=0;
+update t1 set x=2 where id = 0;
+# Switch to connection con1
+update t1 set x=1 where id = 0;
+select * from t1;
+id x
+0 1
+commit;
+# Switch to connection con2
+commit;
+# Switch to connection con1
+select * from t1;
+id x
+0 2
+commit;
+drop table t1;
+# Switch to connection con1
+create table t1 (id integer, x integer) engine = InnoDB;
+create table t2 (b integer, a integer) engine = InnoDB;
+insert into t1 values(0, 0), (300, 300);
+insert into t2 values(0, 10), (1, 20), (2, 30);
+commit;
+set autocommit=0;
+select * from t2;
+b a
+0 10
+1 20
+2 30
+update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE);
+select * from t2;
+b a
+0 100
+1 20
+2 30
+select * from t1;
+id x
+0 0
+300 300
+# Switch to connection con2
+set autocommit=0;
+update t1 set x=2 where id = 0;
+# Switch to connection con1
+update t1 set x=1 where id = 0;
+select * from t1;
+id x
+0 1
+300 300
+commit;
+# Switch to connection con2
+commit;
+# Switch to connection con1
+select * from t1;
+id x
+0 2
+300 300
+commit;
+drop table t1, t2;
+create table t1 (id integer, x integer) engine = InnoDB;
+create table t2 (b integer, a integer) engine = InnoDB;
+insert into t1 values(0, 0), (300, 300);
+insert into t2 values(0, 0), (1, 20), (2, 30);
+commit;
+# Switch to connection con1
+select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE;
+a b
+0 0
+20 1
+30 2
+300 300
+select * from t2;
+b a
+0 0
+1 20
+2 30
+select * from t1;
+id x
+0 0
+300 300
+# Switch to connection con2
+update t2 set a=2 where b = 0;
+select * from t2;
+b a
+0 2
+1 20
+2 30
+update t1 set x=2 where id = 0;
+# Switch to connection con1
+update t1 set x=1 where id = 0;
+select * from t1;
+id x
+0 1
+300 300
+commit;
+# Switch to connection con2
+commit;
+# Switch to connection con1
+select * from t1;
+id x
+0 2
+300 300
+commit;
+# Switch to connection default + disconnect con1 and con2
+drop table t1, t2;