mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge with 5.2
This commit is contained in:
@ -6959,7 +6959,6 @@ view_err:
|
||||
table->alias.c_ptr());
|
||||
}
|
||||
|
||||
VOID(pthread_mutex_lock(&LOCK_open));
|
||||
/*
|
||||
Unlike to the above case close_cached_table() below will remove ALL
|
||||
instances of TABLE from table cache (it will also remove table lock
|
||||
@ -6977,15 +6976,10 @@ view_err:
|
||||
Workaround InnoDB ending the transaction when the table instance
|
||||
is unlocked/closed (close_cached_table below), otherwise the trx
|
||||
state will differ between the server and storage engine layers.
|
||||
|
||||
We have to unlock LOCK_open here as otherwise we can get deadlock
|
||||
in wait_if_global_readlock(). This is still safe as we have a
|
||||
name lock on the table object.
|
||||
*/
|
||||
VOID(pthread_mutex_unlock(&LOCK_open));
|
||||
ha_autocommit_or_rollback(thd, 0);
|
||||
VOID(pthread_mutex_lock(&LOCK_open));
|
||||
|
||||
VOID(pthread_mutex_lock(&LOCK_open));
|
||||
/*
|
||||
Then do a 'simple' rename of the table. First we need to close all
|
||||
instances of 'source' table.
|
||||
@ -7018,6 +7012,8 @@ view_err:
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
VOID(pthread_mutex_lock(&LOCK_open));
|
||||
|
||||
if (error == HA_ERR_WRONG_COMMAND)
|
||||
{
|
||||
|
Reference in New Issue
Block a user