Take X-lock for duplicate keys in REPLACE command.
innobase/lock/lock0lock.c: Made change where lock on the supremum record is really a 'gap' type lock and gap type lock do not need to wait if it is not LOCK_INSERT_INTENSION type. innobase/row/row0ins.c: Added fuction row_ins_set_exclusive_rec_lock to set exclusive lock on a record. This function is used for locking possible duplicate key records when user has issued REPLACE-command. Because manual defines the REPLACE semantics that it is either an INSERT or DELETE(s) for duplicate key + INSERT, we take X-lock directly for duplicate records to avoid unnecessary lock upgrades and deadlocks caused by lock upgrades.
Showing
Please register or sign in to comment