summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2003-07-22 03:23:02 +0300
committerheikki@hundin.mysql.fi <>2003-07-22 03:23:02 +0300
commit52706fd316b1ae249b190f95d08de192d442dd3c (patch)
treee03b59741f47d8e9cf9804bc193e24d2e7333c3d /innobase
parent8e96f029831fdefa4b6f2fd121cdf8609dd85b3a (diff)
downloadmariadb-git-52706fd316b1ae249b190f95d08de192d442dd3c.tar.gz
btr0cur.c:
Fix an error in the previous push
Diffstat (limited to 'innobase')
-rw-r--r--innobase/btr/btr0cur.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/innobase/btr/btr0cur.c b/innobase/btr/btr0cur.c
index c0fc9566c80..8c9c84b103d 100644
--- a/innobase/btr/btr0cur.c
+++ b/innobase/btr/btr0cur.c
@@ -1784,6 +1784,20 @@ btr_cur_pessimistic_update(
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
record to be inserted: we have to remember which fields were such */
@@ -1821,20 +1835,6 @@ btr_cur_pessimistic_update(
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_move_to_prev(page_cursor);