From: Date: April 18 2007 9:29am Subject: bk commit into 5.0 tree (gluh:1.2457) BUG#27499 List-Archive: http://lists.mysql.com/commits/24755 X-Bug: 27499 Message-Id: <20070418072905.4185C24A0079@eagle.localdomain> Below is the list of changes that have just been committed into a local 5.0 repository of gluh. When gluh does a push these changes will be propagated to the main repository and, within 24 hours after the push, to the public repository. For information on how to access the public repository see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html ChangeSet@stripped, 2007-04-18 12:29:01+05:00, gluh@stripped +1 -0 Bug#27499 DROP TABLE race with SHOW TABLE STATUS Hide error for not existing table sql/sql_show.cc@stripped, 2007-04-18 12:29:00+05:00, gluh@stripped +21 -12 Hide error for not existing table # This is a BitKeeper patch. What follows are the unified diffs for the # set of deltas contained in the patch. The rest of the patch, the part # that BitKeeper cares about, is below these diffs. # User: gluh # Host: eagle.(none) # Root: /home/gluh/MySQL/Bugs/5.0.27499 --- 1.345/sql/sql_show.cc 2007-03-27 20:34:13 +05:00 +++ 1.346/sql/sql_show.cc 2007-04-18 12:29:00 +05:00 @@ -2314,18 +2314,27 @@ int get_all_tables(THD *thd, TABLE_LIST res= open_normal_and_derived_tables(thd, show_table_list, MYSQL_LOCK_IGNORE_FLUSH); lex->sql_command= save_sql_command; - /* - We should use show_table_list->alias instead of - show_table_list->table_name because table_name - could be changed during opening of I_S tables. It's safe - to use alias because alias contains original table name - in this case. - */ - res= schema_table->process_table(thd, show_table_list, table, - res, orig_base_name, - show_table_list->alias); - close_tables_for_reopen(thd, &show_table_list); - DBUG_ASSERT(!lex->query_tables_own_last); + if (thd->net.last_errno == ER_NO_SUCH_TABLE) + { + /* Hide error for not existing table */ + res= 0; + thd->clear_error(); + } + else + { + /* + We should use show_table_list->alias instead of + show_table_list->table_name because table_name + could be changed during opening of I_S tables. It's safe + to use alias because alias contains original table name + in this case. + */ + res= schema_table->process_table(thd, show_table_list, table, + res, orig_base_name, + show_table_list->alias); + close_tables_for_reopen(thd, &show_table_list); + DBUG_ASSERT(!lex->query_tables_own_last); + } if (res) goto err; }