From 0b16ef245f239f8efc0ce14dc0cfd6d477d5150e Mon Sep 17 00:00:00 2001 From: "guilhem@gbichot2" <> Date: Mon, 12 Jan 2004 21:05:41 +0100 Subject: [PATCH] Fix for BUG#2333 "ALTER DATABASE on inexistent database hangs the client": mysql_alter_db() now returns -1 in case of error, so that mysql_execute_command() calls send_error(). --- sql/sql_db.cc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/sql/sql_db.cc b/sql/sql_db.cc index 70b1d1d0d3a..08f9ace529d 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -270,11 +270,8 @@ int mysql_alter_db(THD *thd, const char *db, HA_CREATE_INFO *create_info) VOID(pthread_mutex_lock(&LOCK_mysql_create_db)); // do not alter database if another thread is holding read lock - if (wait_if_global_read_lock(thd,0)) - { - error= -1; + if ((error=wait_if_global_read_lock(thd,0))) goto exit2; - } /* Check directory */ (void)sprintf(path,"%s/%s/%s", mysql_data_home, db, MY_DB_OPT_FILE); @@ -307,7 +304,7 @@ exit: start_waiting_global_read_lock(thd); exit2: VOID(pthread_mutex_unlock(&LOCK_mysql_create_db)); - DBUG_RETURN(error); + DBUG_RETURN(error ? -1 : 0); /* -1 to delegate send_error() */ }