From 17d5af9922999912a323bdfcde9dc7460cedf253 Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/june.mysql.com" <> Date: Wed, 18 Jul 2007 15:39:13 +0500 Subject: [PATCH] BUG#28838 - duplicate external_lock in mysql_alter_table Removed duplicate call to handler::external_lock() when ALTER TABLE that doesn't need to copy a table (quick ALTER TABLE) was executed. Also quick ALTER TABLE doesn't hold LOCK_open anymore when it enables/disables indexes. --- sql/sql_table.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 87f23097a66..277d6d76ead 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -3789,11 +3789,9 @@ view_err: { VOID(pthread_mutex_lock(&LOCK_open)); wait_while_table_is_used(thd, table, HA_EXTRA_FORCE_REOPEN); - table->file->external_lock(thd, F_WRLCK); + VOID(pthread_mutex_unlock(&LOCK_open)); alter_table_manage_keys(table, table->file->indexes_are_disabled(), alter_info->keys_onoff); - table->file->external_lock(thd, F_UNLCK); - VOID(pthread_mutex_unlock(&LOCK_open)); error= ha_commit_stmt(thd); if (ha_commit(thd)) error= 1;