mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 04:22:27 +01:00
ha_innobase.cc:
Backport from 4.0: convert TL_READ_NO_INSERT to TL_READ to allow concurrent inserts to the table in INSERT INTO ... SELECT ... FROM table sql/ha_innobase.cc: Backport from 4.0: convert TL_READ_NO_INSERT to TL_READ to allow concurrent inserts to the table in INSERT INTO ... SELECT ... FROM table
This commit is contained in:
parent
fb466c176b
commit
c0dd9d0aa2
1 changed files with 10 additions and 0 deletions
|
@ -3718,6 +3718,16 @@ ha_innobase::store_lock(
|
|||
lock_type = TL_WRITE_ALLOW_WRITE;
|
||||
}
|
||||
|
||||
/* In queries of type INSERT INTO t1 SELECT ... FROM t2 ...
|
||||
MySQL would use the lock TL_READ_NO_INSERT on t2, and that
|
||||
would conflict with TL_WRITE_ALLOW_WRITE, blocking all inserts
|
||||
to t2. Convert the lock to a normal read lock to allow
|
||||
concurrent inserts to t2. */
|
||||
|
||||
if (lock_type == TL_READ_NO_INSERT && !thd->in_lock_tables) {
|
||||
lock_type = TL_READ;
|
||||
}
|
||||
|
||||
lock.type=lock_type;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue