mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
BUG#9998 MySQL client hangs on "USE database"
Use open_normal_and_derived_tables instead of open_and_lock_tables when reading metadata for a table. Add two test cases, one for "USE database" and one for "SHOW COLUMNS FROM table" mysql-test/r/lock_multi.result: Updated test results for test case for bug9998 mysql-test/r/mysql.result: Updated results for test case for bug9998 mysql-test/t/lock_multi.test: Test that "show columsn from t1" is not locked by another thread having a write lock on t1 mysql-test/t/mysql.test: Add test case for BUG9998 - lock table t1 for write from mysql-test, then execute 'mysql' and call "USE test". This will test exactly what caused the bug. sql/sql_show.cc: Open tables without locking when reading metadata
This commit is contained in:
@ -36,3 +36,10 @@ lock table t1 write, t2 write;
|
||||
drop table t2;
|
||||
ERROR 42S02: Table 'test.t2' doesn't exist
|
||||
drop table t1;
|
||||
create table t1(a int);
|
||||
lock tables t1 write;
|
||||
show columns from t1;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
unlock tables;
|
||||
drop table t1;
|
||||
|
@ -48,3 +48,9 @@ Test 'go' command g
|
||||
a
|
||||
1
|
||||
drop table t1;
|
||||
create table t1(a int);
|
||||
lock tables t1 write;
|
||||
database()
|
||||
test
|
||||
unlock tables;
|
||||
drop table t1;
|
||||
|
@ -94,3 +94,15 @@ connection reader;
|
||||
reap;
|
||||
connection locker;
|
||||
drop table t1;
|
||||
|
||||
|
||||
#
|
||||
# BUG#9998 - MySQL client hangs on USE "database"
|
||||
|
||||
create table t1(a int);
|
||||
lock tables t1 write;
|
||||
connection reader;
|
||||
show columns from t1;
|
||||
connection locker;
|
||||
unlock tables;
|
||||
drop table t1;
|
||||
|
@ -30,5 +30,14 @@ select "Test 'go' command(vertical output) \G" as " ";
|
||||
select "Test 'go' command \g" as " ";
|
||||
--exec $MYSQL test -e 'select * from t1\g'
|
||||
--enable_query_log
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG9998 - MySQL client hangs on USE "database"
|
||||
#
|
||||
create table t1(a int);
|
||||
lock tables t1 write;
|
||||
--exec $MYSQL -e 'use test; select database();'
|
||||
unlock tables;
|
||||
drop table t1;
|
||||
|
||||
|
Reference in New Issue
Block a user