btr0cur.c:

  Fix an error in the previous push
parent 8e96f029
...@@ -1784,6 +1784,20 @@ btr_cur_pessimistic_update( ...@@ -1784,6 +1784,20 @@ btr_cur_pessimistic_update(
trx->id); trx->id);
} }
if (flags & BTR_NO_UNDO_LOG_FLAG) {
/* We are in a transaction rollback undoing a row
update: we must free possible externally stored fields
which got new values in the update, if they are not
inherited values. They can be inherited if we have
updated the primary key to another value, and then
update it back again. */
ut_a(big_rec_vec == NULL);
btr_rec_free_updated_extern_fields(index, rec, update,
TRUE, mtr);
}
/* We have to set appropriate extern storage bits in the new /* We have to set appropriate extern storage bits in the new
record to be inserted: we have to remember which fields were such */ record to be inserted: we have to remember which fields were such */
...@@ -1821,20 +1835,6 @@ btr_cur_pessimistic_update( ...@@ -1821,20 +1835,6 @@ btr_cur_pessimistic_update(
btr_search_update_hash_on_delete(cursor); btr_search_update_hash_on_delete(cursor);
if (flags & BTR_NO_UNDO_LOG_FLAG) {
/* We are in a transaction rollback undoing a row
update: we must free possible externally stored fields
which got new values in the update, if they are not
inherited values. They can be inherited if we have
updated the primary key to another value, and then
update it back again. */
ut_a(big_rec_vec == NULL);
btr_rec_free_updated_extern_fields(index, rec, update,
TRUE, mtr);
}
page_cur_delete_rec(page_cursor, mtr); page_cur_delete_rec(page_cursor, mtr);
page_cur_move_to_prev(page_cursor); page_cur_move_to_prev(page_cursor);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment