mirror of
https://github.com/MariaDB/server.git
synced 2025-12-24 11:21:21 +03:00
Merge with 5.1 to get in changes from MySQL 5.1.55
This commit is contained in:
@@ -6958,7 +6958,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
|
||||
@@ -6976,15 +6975,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.
|
||||
@@ -7017,6 +7011,8 @@ view_err:
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
VOID(pthread_mutex_lock(&LOCK_open));
|
||||
|
||||
if (error == HA_ERR_WRONG_COMMAND)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user