Commit 6f1c822d authored by unknown's avatar unknown
Browse files

Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0

into neptunus.(none):/home/msvensson/mysql/bug9998

parents d8cec2ab 1d6addd9
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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;
+6 −0
Original line number Diff line number Diff line
@@ -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;
+12 −0
Original line number Diff line number Diff line
@@ -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;
+9 −0
Original line number Diff line number Diff line
@@ -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;
+4 −5
Original line number Diff line number Diff line
@@ -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);
  }
@@ -539,8 +539,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;

@@ -1938,7 +1937,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))
@@ -2043,7 +2042,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))