diff options
author | unknown <marko@hundin.mysql.fi> | 2004-04-29 16:42:33 +0300 |
---|---|---|
committer | unknown <marko@hundin.mysql.fi> | 2004-04-29 16:42:33 +0300 |
commit | 3594adb165279605c0cf6519f5c3a5b5378f3d91 (patch) | |
tree | 5013e7c0279115014b75320a87795fe461ac1285 /mysql-test/t/innodb-lock.test | |
parent | b7468a97a2fd4a5500edbbf9884d548f78cbf57c (diff) | |
download | mariadb-git-3594adb165279605c0cf6519f5c3a5b5378f3d91.tar.gz |
InnoDB: implement LOCK TABLE (Bug #3299)
innobase/include/lock0lock.h:
Add lock_table_unlock() and lock_release_tables_off_kernel()
Add LOCK_TABLE_EXP
innobase/include/row0mysql.h:
Add row_unlock_table_for_mysql() and row_lock_table_for_mysql()
innobase/include/trx0trx.h:
Add n_tables_locked
innobase/lock/lock0lock.c:
Add LOCK_TABLE_EXP for explicit LOCK TABLE commands
Add lock_table_unlock()
Add lock_release_tables_off_kernel()
innobase/row/row0mysql.c:
Add row_unlock_table_for_mysql() and row_lock_table_for_mysql()
innobase/trx/trx0trx.c:
Add n_tables_locked
mysql-test/r/innodb.result:
Updated handling of auto_inc columns
sql/ha_innodb.cc:
Call row_lock_table_for_mysql() and row_unlock_table_for_mysql()
Diffstat (limited to 'mysql-test/t/innodb-lock.test')
-rw-r--r-- | mysql-test/t/innodb-lock.test | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/mysql-test/t/innodb-lock.test b/mysql-test/t/innodb-lock.test new file mode 100644 index 00000000000..43a175508b4 --- /dev/null +++ b/mysql-test/t/innodb-lock.test @@ -0,0 +1,40 @@ +-- source include/have_innodb.inc + +connect (con1,localhost,root,,); +connect (con2,localhost,root,,); +drop table if exists t1; + +# +# Testing of explicit table locks +# + +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; |