mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Fix for MDEV-14831
MDEV-14831 CREATE OR REPLACE SEQUENCE under LOCK TABLE corrupts the sequence, causes ER_KEY_NOT_FOUND The problem was that sequence_insert didn't properly handle the case where there where there was a LOCK TABLE while creating the sequence. Fixed by opening the sequence table, for inserting the first record, in a new environment without any other open tables. Found also a bug in Locked_tables_list::reopen_tables() where the lock structure for the new tables was allocated in THD::mem_root, which causes crashes. This could cause problems with other create tables done under LOCK TABLES.
This commit is contained in:
@@ -747,6 +747,7 @@ static int unlock_external(THD *thd, TABLE **table,uint count)
|
||||
- GET_LOCK_UNLOCK : If we should send TL_IGNORE to store lock
|
||||
- GET_LOCK_STORE_LOCKS : Store lock info in TABLE
|
||||
- GET_LOCK_SKIP_SEQUENCES : Ignore sequences (for temporary unlock)
|
||||
- GET_LOCK_ON_THD : Store lock in thd->mem_root
|
||||
*/
|
||||
|
||||
MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count, uint flags)
|
||||
|
||||
Reference in New Issue
Block a user