diff options
author | msvensson@neptunus.(none) <> | 2005-06-10 14:34:43 +0200 |
---|---|---|
committer | msvensson@neptunus.(none) <> | 2005-06-10 14:34:43 +0200 |
commit | 6674e1e12e33399cd1f73d868a1aa0fb8d843f11 (patch) | |
tree | 5a90c44beee06b07e6e874759e7abe69712c3cf8 | |
parent | 6c38471e8796bd5ad10d668a43352057d76813e2 (diff) | |
parent | 28aa57d6a0c06d37450afbe121e6e27c6d9312fa (diff) | |
download | mariadb-git-6674e1e12e33399cd1f73d868a1aa0fb8d843f11.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into neptunus.(none):/home/msvensson/mysql/mysql-5.0
-rw-r--r-- | mysql-test/r/lock_multi.result | 7 | ||||
-rw-r--r-- | mysql-test/r/mysql.result | 6 | ||||
-rw-r--r-- | mysql-test/t/lock_multi.test | 12 | ||||
-rw-r--r-- | mysql-test/t/mysql.test | 9 | ||||
-rw-r--r-- | sql/sql_show.cc | 9 |
5 files changed, 38 insertions, 5 deletions
diff --git a/mysql-test/r/lock_multi.result b/mysql-test/r/lock_multi.result index 9eedbf50064..73e3a9d32e3 100644 --- a/mysql-test/r/lock_multi.result +++ b/mysql-test/r/lock_multi.result @@ -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; diff --git a/mysql-test/r/mysql.result b/mysql-test/r/mysql.result index feb0b2348cd..dbb47152926 100644 --- a/mysql-test/r/mysql.result +++ b/mysql-test/r/mysql.result @@ -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; diff --git a/mysql-test/t/lock_multi.test b/mysql-test/t/lock_multi.test index cbda47ac864..43cff90332b 100644 --- a/mysql-test/t/lock_multi.test +++ b/mysql-test/t/lock_multi.test @@ -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; diff --git a/mysql-test/t/mysql.test b/mysql-test/t/mysql.test index d30e5b65d8e..c1d9813ea39 100644 --- a/mysql-test/t/mysql.test +++ b/mysql-test/t/mysql.test @@ -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; + diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 1e34f32184a..68c6d1a8030 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -348,7 +348,7 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list) table_list->table_name)); /* Only one table for now, but VIEW can involve several tables */ - if (open_and_lock_tables(thd, table_list)) + if (open_normal_and_derived_tables(thd, table_list)) { DBUG_RETURN(TRUE); } @@ -540,8 +540,7 @@ mysqld_list_fields(THD *thd, TABLE_LIST *table_list, const char *wild) DBUG_ENTER("mysqld_list_fields"); DBUG_PRINT("enter",("table: %s",table_list->table_name)); - table_list->lock_type= TL_UNLOCK; - if (open_and_lock_tables(thd, table_list)) + if (open_normal_and_derived_tables(thd, table_list)) DBUG_VOID_RETURN; table= table_list->table; @@ -1945,7 +1944,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) bool res; lex->all_selects_list= lsel; - res= open_and_lock_tables(thd, show_table_list); + res= open_normal_and_derived_tables(thd, show_table_list); if (schema_table->process_table(thd, show_table_list, table, res, show_table_list->db, show_table_list->alias)) @@ -2050,7 +2049,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond) show_table_list->lock_type= lock_type; lex->all_selects_list= &sel; lex->derived_tables= 0; - res= open_and_lock_tables(thd, show_table_list); + res= open_normal_and_derived_tables(thd, show_table_list); if (schema_table->process_table(thd, show_table_list, table, res, base_name, show_table_list->alias)) |