Loading sql/sql_db.cc +11 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,6 @@ void mysql_rm_db(THD *thd,char *db,bool if_exists) if ((deleted=mysql_rm_known_files(thd, dirp, path,0)) >= 0) { ha_drop_database(path); if (!thd->query) { thd->query = path; Loading @@ -190,6 +189,17 @@ void mysql_rm_db(THD *thd,char *db,bool if_exists) exit: VOID(pthread_mutex_unlock(&LOCK_open)); VOID(pthread_mutex_unlock(&LOCK_mysql_create_db)); /* If there are running queries on the tables, MySQL needs to get access to LOCK_open to end them. InnoDB on the other hand waits for the queries to end before dropping the database. That is why we must do the dropping outside of the mutexes above, otherwise the server always hangs if there are running queries. We only drop inside InnoDB if deleted got value >= 0 which means that it was successful. */ if (deleted >= 0) ha_drop_database(path); DBUG_VOID_RETURN; } Loading Loading
sql/sql_db.cc +11 −1 Original line number Diff line number Diff line Loading @@ -166,7 +166,6 @@ void mysql_rm_db(THD *thd,char *db,bool if_exists) if ((deleted=mysql_rm_known_files(thd, dirp, path,0)) >= 0) { ha_drop_database(path); if (!thd->query) { thd->query = path; Loading @@ -190,6 +189,17 @@ void mysql_rm_db(THD *thd,char *db,bool if_exists) exit: VOID(pthread_mutex_unlock(&LOCK_open)); VOID(pthread_mutex_unlock(&LOCK_mysql_create_db)); /* If there are running queries on the tables, MySQL needs to get access to LOCK_open to end them. InnoDB on the other hand waits for the queries to end before dropping the database. That is why we must do the dropping outside of the mutexes above, otherwise the server always hangs if there are running queries. We only drop inside InnoDB if deleted got value >= 0 which means that it was successful. */ if (deleted >= 0) ha_drop_database(path); DBUG_VOID_RETURN; } Loading