summaryrefslogtreecommitdiff
path: root/mysql-test/t/innodb-lock.test
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2004-10-20 11:24:08 +0300
committerunknown <monty@mysql.com>2004-10-20 11:24:08 +0300
commited8ec2cf1613e1bb57705698b8962e767fd89320 (patch)
tree5012e0497271e138067e54c110bf06958ba1f520 /mysql-test/t/innodb-lock.test
parent2428fb5c2b01aba74fb3cb49bca9d690c203b715 (diff)
downloadmariadb-git-ed8ec2cf1613e1bb57705698b8962e767fd89320.tar.gz
Code cleanups (done during review of new code)
Rename innodb_table_locks_old_behavior -> innodb_table_locks Set innodb_table_locks to off by default to get same behaviour as in MySQL 4.0.20 (This means that Innodb ignore table locks by default, which makes it easier to combine MyISAM and InnoDB to simulate a transaction) libmysql/libmysql.c: Use ulong instead of unsigned long Reuse _dig_vec() myisam/myisampack.c: Simplify code mysql-test/r/innodb-lock.result: new test case mysql-test/t/innodb-lock.test: new test case sql/ha_innodb.cc: Rename innodb_table_locks_old_behavior -> innodb_table_locks sql/mysqld.cc: Rename innodb_table_locks_old_behavior -> innodb_table_locks Set this off by default to get same behaviour as in MySQL 4.0.20 sql/set_var.cc: Rename innodb_table_locks_old_behavior -> innodb_table_locks sql/sql_class.h: Rename innodb_table_locks_old_behavior -> innodb_table_locks
Diffstat (limited to 'mysql-test/t/innodb-lock.test')
-rw-r--r--mysql-test/t/innodb-lock.test46
1 files changed, 45 insertions, 1 deletions
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;