Loading mysql-test/r/lock_multi.result +7 −0 Original line number Diff line number Diff line Loading @@ -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; mysql-test/r/mysql.result +6 −0 Original line number Diff line number Diff line Loading @@ -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; mysql-test/t/lock_multi.test +12 −0 Original line number Diff line number Diff line Loading @@ -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; mysql-test/t/mysql.test +9 −0 Original line number Diff line number Diff line Loading @@ -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; sql/sql_show.cc +4 −5 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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; Loading Loading @@ -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)) Loading Loading @@ -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)) Loading Loading
mysql-test/r/lock_multi.result +7 −0 Original line number Diff line number Diff line Loading @@ -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;
mysql-test/r/mysql.result +6 −0 Original line number Diff line number Diff line Loading @@ -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;
mysql-test/t/lock_multi.test +12 −0 Original line number Diff line number Diff line Loading @@ -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;
mysql-test/t/mysql.test +9 −0 Original line number Diff line number Diff line Loading @@ -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;
sql/sql_show.cc +4 −5 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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; Loading Loading @@ -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)) Loading Loading @@ -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)) Loading