diff options
Diffstat (limited to 'sql/sql_table.cc')
-rw-r--r-- | sql/sql_table.cc | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/sql/sql_table.cc b/sql/sql_table.cc index 0dd5c65bf79..6561af9c841 100644 --- a/sql/sql_table.cc +++ b/sql/sql_table.cc @@ -2209,11 +2209,7 @@ copy_data_between_tables(TABLE *from,TABLE *to, DBUG_RETURN(-1); /* purecov: inspected */ if (to->file->external_lock(thd, F_WRLCK)) - { - /* We must always unlock, even when lock failed. */ - (void) to->file->external_lock(thd, F_UNLCK); DBUG_RETURN(-1); - } to->file->extra(HA_EXTRA_WRITE_CACHE); from->file->info(HA_STATUS_VARIABLE); to->file->deactivate_non_unique_index(from->file->records); @@ -2313,11 +2309,11 @@ copy_data_between_tables(TABLE *from,TABLE *to, error=1; if (ha_commit(thd)) error=1; + err: free_io_cache(from); *copied= found_count; *deleted=delete_count; - /* we must always unlock the table on return. */ if (to->file->external_lock(thd,F_UNLCK)) error=1; DBUG_RETURN(error > 0 ? -1 : 0); |