• unknown's avatar
    Take X-lock for duplicate keys in REPLACE command. · 11b25579
    unknown authored
    
    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.
    11b25579
row0ins.c 58.1 KB