• Jon Olav Hauglid's avatar
    Bug#16757869: INNODB: POSSIBLE REGRESSION IN 5.5.31, BUG#16004999 · db99fd74
    Jon Olav Hauglid authored
    The problem was that if UPDATE with subselect caused a
    deadlock inside InnoDB, this deadlock was not properly
    handled by the SQL layer. This meant that the SQL layer
    would try to unlock the row after InnoDB had rolled
    back the transaction. This caused an assertion inside
    InnoDB.
      
    This patch fixes the problem by checking for errors
    reported by SQL_SELECT::skip_record() and not calling
    unlock_row() if any errors have been reported.
    
    This bug is similar to Bug#13586591, but for UPDATE
    rather than DELETE. Similar issues in filesort/opt_range/
    sql_select will be investigated and handled in the scope
    of Bug#16767929
    db99fd74
sql_update.cc 71.7 KB