Yesterday I was going through the locks related code; and found that in 5.0; when you have a global read lock; then the SHOW TABLE STATUS actually gets blocked when it had its own read lock on the new session; and this is not the case with MySQL 5.1
For example; lets execute the following set of statements in two sessions with MySQL 5.0 (latest bazaar version with InnoDB enabled):
Session 1:
mysql> use test; Database changed mysql> drop table if exists t1; Query OK, 0 rows affected (0.07 sec) mysql> create table test.t1(c1 int)Engine=InnoDB; Query OK, 0 rows affected (0.00 sec) mysql> flush tables with read lock; Query OK, 0 rows affected (0.00 sec) |
Session 2:
mysql> use test Database changed mysql> lock table t1 read; Query OK, 0 rows affected (0.01 sec) mysql> show … |