diff options
author | unknown <monty@mysql.com> | 2004-10-20 11:25:46 +0300 |
---|---|---|
committer | unknown <monty@mysql.com> | 2004-10-20 11:25:46 +0300 |
commit | 95f0e39a38435e0451e77c919ce21697eaccd334 (patch) | |
tree | c21f43f19b7e410011d90316a1266b6e5fd80efb /mysql-test | |
parent | 0e0c9af593367797d844058bfff0534b53c7fe12 (diff) | |
parent | ed8ec2cf1613e1bb57705698b8962e767fd89320 (diff) | |
download | mariadb-git-95f0e39a38435e0451e77c919ce21697eaccd334.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0
libmysql/libmysql.c:
Auto merged
Diffstat (limited to 'mysql-test')
-rw-r--r-- | mysql-test/r/innodb-lock.result | 26 | ||||
-rw-r--r-- | mysql-test/t/innodb-lock.test | 46 |
2 files changed, 71 insertions, 1 deletions
diff --git a/mysql-test/r/innodb-lock.result b/mysql-test/r/innodb-lock.result index cf00adb30ae..f87f221ea66 100644 --- a/mysql-test/r/innodb-lock.result +++ b/mysql-test/r/innodb-lock.result @@ -1,4 +1,30 @@ drop table if exists t1; +select @@innodb_table_locks; +@@innodb_table_locks +0 +set @@innodb_table_locks=1; +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 +set autocommit=0; +lock table t1 write; +update t1 set x=1 where id = 0; +select * from t1; +id x +0 1 +commit; +update t1 set x=2 where id = 0; +commit; +unlock tables; +select * from t1; +id x +0 2 +commit; +drop table t1; +set @@innodb_table_locks=0; create table t1 (id integer, x integer) engine=INNODB; insert into t1 values(0, 0); set autocommit=0; diff --git a/mysql-test/t/innodb-lock.test b/mysql-test/t/innodb-lock.test index 43a175508b4..11395b301c4 100644 --- a/mysql-test/t/innodb-lock.test +++ b/mysql-test/t/innodb-lock.test @@ -5,10 +5,54 @@ connect (con2,localhost,root,,); drop table if exists t1; # -# Testing of explicit table locks +# Check and select innodb lock type # +select @@innodb_table_locks; + +# +# Testing of explicit table locks with enforced table locks +# + +set @@innodb_table_locks=1; + +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; + +connection con2; +set autocommit=0; + +# The following statement should hang because con1 is locking the page +--send +lock table t1 write; +--sleep 2; + connection con1; +update t1 set x=1 where id = 0; +select * from t1; +commit; + +connection con2; +reap; +update t1 set x=2 where id = 0; +commit; +unlock tables; + +connection con1; +select * from t1; +commit; + +drop table t1; + +# +# Try with old lock method (where LOCK TABLE is ignored) +# + +set @@innodb_table_locks=0; + create table t1 (id integer, x integer) engine=INNODB; insert into t1 values(0, 0); set autocommit=0; |