From f5dab36a63c4eda2a0492f33a56f195af1199ea4 Mon Sep 17 00:00:00 2001 From: "bell@sanja.is.com.ua" <> Date: Mon, 25 Nov 2002 18:34:24 +0200 Subject: [PATCH] merging tests --- mysql-test/r/innodb-deadlock.result | 77 +++++++++++++++++++++++++++ mysql-test/r/innodb-non-simple.result | 76 -------------------------- mysql-test/t/innodb-deadlock.test | 73 +++++++++++++++++++++++++ mysql-test/t/innodb-non-simple.test | 76 -------------------------- 4 files changed, 150 insertions(+), 152 deletions(-) delete mode 100644 mysql-test/r/innodb-non-simple.result delete mode 100644 mysql-test/t/innodb-non-simple.test diff --git a/mysql-test/r/innodb-deadlock.result b/mysql-test/r/innodb-deadlock.result index 121bfa8c6cb..db7155f14fb 100644 --- a/mysql-test/r/innodb-deadlock.result +++ b/mysql-test/r/innodb-deadlock.result @@ -18,3 +18,80 @@ id x 0 2 commit; drop table t1; +drop table if exists t1, t2; +create table t1 (id integer, x integer) type=INNODB; +create table t2 (b integer, a integer) type=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 +set autocommit=0; +update t1 set x=2 where id = 0; +update t1 set x=1 where id = 0; +select * from t1; +id x +0 1 +300 300 +commit; +commit; +select * from t1; +id x +0 2 +300 300 +commit; +drop table t1, t2; +create table t1 (id integer, x integer) type=INNODB; +create table t2 (b integer, a integer) type=INNODB; +insert into t1 values(0, 0), (300, 300); +insert into t2 values(0, 0), (1, 20), (2, 30); +commit; +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 +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; +update t1 set x=1 where id = 0; +select * from t1; +id x +0 1 +300 300 +commit; +commit; +select * from t1; +id x +0 2 +300 300 +commit; +drop table t1, t2; diff --git a/mysql-test/r/innodb-non-simple.result b/mysql-test/r/innodb-non-simple.result deleted file mode 100644 index 8461b9d8d4d..00000000000 --- a/mysql-test/r/innodb-non-simple.result +++ /dev/null @@ -1,76 +0,0 @@ -drop table if exists t1, t2; -create table t1 (id integer, x integer) type=INNODB; -create table t2 (b integer, a integer) type=INNODB; -insert into t1 values(0, 0), (300, 300); -insert into t2 values(0, 10), (1, 20), (2, 30); -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 -set autocommit=0; -update t1 set x=2 where id = 0; -update t1 set x=1 where id = 0; -select * from t1; -id x -0 1 -300 300 -commit; -commit; -select * from t1; -id x -0 2 -300 300 -commit; -drop table t1, t2; -create table t1 (id integer, x integer) type=INNODB; -create table t2 (b integer, a integer) type=INNODB; -insert into t1 values(0, 0), (300, 300); -insert into t2 values(0, 0), (1, 20), (2, 30); -commit; -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 -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; -update t1 set x=1 where id = 0; -select * from t1; -id x -0 1 -300 300 -commit; -commit; -select * from t1; -id x -0 2 -300 300 -commit; -drop table t1, t2; diff --git a/mysql-test/t/innodb-deadlock.test b/mysql-test/t/innodb-deadlock.test index bc2839bfb3a..2648d6cdf9c 100644 --- a/mysql-test/t/innodb-deadlock.test +++ b/mysql-test/t/innodb-deadlock.test @@ -36,3 +36,76 @@ select * from t1; commit; drop table t1; +drop table if exists t1, t2; +# +# Testing of FOR UPDATE +# + +connection con1; +create table t1 (id integer, x integer) type=INNODB; +create table t2 (b integer, a integer) type=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; +update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE); +select * from t2; +select * from t1; + +connection con2; +set autocommit=0; + +# The following query should hang because con1 is locking the page +--send +update t1 set x=2 where id = 0; +--sleep 2; + +connection con1; +update t1 set x=1 where id = 0; +select * from t1; +commit; + +connection con2; +reap; +commit; + +connection con1; +select * from t1; +commit; + +drop table t1, t2; +create table t1 (id integer, x integer) type=INNODB; +create table t2 (b integer, a integer) type=INNODB; +insert into t1 values(0, 0), (300, 300); +insert into t2 values(0, 0), (1, 20), (2, 30); +commit; + +connection con1; +select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE; +select * from t2; +select * from t1; + +connection con2; + +# The following query should hang because con1 is locking the page +update t2 set a=2 where b = 0; +select * from t2; +--send +update t1 set x=2 where id = 0; +--sleep 2; + +connection con1; +update t1 set x=1 where id = 0; +select * from t1; +commit; + +connection con2; +reap; +commit; + +connection con1; +select * from t1; +commit; + +drop table t1, t2; diff --git a/mysql-test/t/innodb-non-simple.test b/mysql-test/t/innodb-non-simple.test deleted file mode 100644 index 1d890896d3f..00000000000 --- a/mysql-test/t/innodb-non-simple.test +++ /dev/null @@ -1,76 +0,0 @@ --- source include/have_innodb.inc - -connect (con1,localhost,root,,); -connect (con2,localhost,root,,); -drop table if exists t1, t2; -# -# Testing of FOR UPDATE -# - -connection con1; -create table t1 (id integer, x integer) type=INNODB; -create table t2 (b integer, a integer) type=INNODB; -insert into t1 values(0, 0), (300, 300); -insert into t2 values(0, 10), (1, 20), (2, 30); -set autocommit=0; -select * from t2; -update t2 set a=100 where b=(SELECT x from t1 where id = b FOR UPDATE); -select * from t2; -select * from t1; - -connection con2; -set autocommit=0; - -# The following query should hang because con1 is locking the page ---send -update t1 set x=2 where id = 0; ---sleep 2; - -connection con1; -update t1 set x=1 where id = 0; -select * from t1; -commit; - -connection con2; -reap; -commit; - -connection con1; -select * from t1; -commit; - -drop table t1, t2; -create table t1 (id integer, x integer) type=INNODB; -create table t2 (b integer, a integer) type=INNODB; -insert into t1 values(0, 0), (300, 300); -insert into t2 values(0, 0), (1, 20), (2, 30); -commit; - -connection con1; -select a,b from t2 UNION SELECT id, x from t1 FOR UPDATE; -select * from t2; -select * from t1; - -connection con2; - -# The following query should hang because con1 is locking the page -update t2 set a=2 where b = 0; -select * from t2; ---send -update t1 set x=2 where id = 0; ---sleep 2; - -connection con1; -update t1 set x=1 where id = 0; -select * from t1; -commit; - -connection con2; -reap; -commit; - -connection con1; -select * from t1; -commit; - -drop table t1, t2; \ No newline at end of file