ha_innodb.cc:
Fix bug: could not switch trx isolation back to REPEATABLE READ after switching it to some other level
This commit is contained in:
parent
3cf6a6b28e
commit
80f5621e4c
@ -3812,8 +3812,8 @@ innobase_map_isolation_level(
|
||||
enum_tx_isolation iso) /* in: MySQL isolation level code */
|
||||
{
|
||||
switch(iso) {
|
||||
case ISO_READ_COMMITTED: return(TRX_ISO_READ_COMMITTED);
|
||||
case ISO_REPEATABLE_READ: return(TRX_ISO_REPEATABLE_READ);
|
||||
case ISO_READ_COMMITTED: return(TRX_ISO_READ_COMMITTED);
|
||||
case ISO_SERIALIZABLE: return(TRX_ISO_SERIALIZABLE);
|
||||
case ISO_READ_UNCOMMITTED: return(TRX_ISO_READ_UNCOMMITTED);
|
||||
default: ut_a(0); return(0);
|
||||
@ -3868,11 +3868,9 @@ ha_innobase::external_lock(
|
||||
trx->n_mysql_tables_in_use++;
|
||||
prebuilt->mysql_has_locked = TRUE;
|
||||
|
||||
if (thd->variables.tx_isolation != ISO_REPEATABLE_READ) {
|
||||
trx->isolation_level = innobase_map_isolation_level(
|
||||
trx->isolation_level = innobase_map_isolation_level(
|
||||
(enum_tx_isolation)
|
||||
thd->variables.tx_isolation);
|
||||
}
|
||||
|
||||
if (trx->isolation_level == TRX_ISO_SERIALIZABLE
|
||||
&& prebuilt->select_lock_type == LOCK_NONE) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user