summaryrefslogtreecommitdiff
path: root/innobase
diff options
context:
space:
mode:
authorheikki@donna.mysql.fi <>2001-06-23 22:25:47 +0300
committerheikki@donna.mysql.fi <>2001-06-23 22:25:47 +0300
commitdc1cc4f7ae91de1d2ac4814fbf5d04e336f424a3 (patch)
treeda340cf8a376cc3da5804fba081159674e6c990e /innobase
parent4e18c236d5abcb03224bb758afa40f7206a709ec (diff)
downloadmariadb-git-dc1cc4f7ae91de1d2ac4814fbf5d04e336f424a3.tar.gz
btr0pcur.c Fix a bug in persistent cursor restoration: this could cause crashes especially if the buffer pool is small
Diffstat (limited to 'innobase')
-rw-r--r--innobase/btr/btr0pcur.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/innobase/btr/btr0pcur.c b/innobase/btr/btr0pcur.c
index 0388785b3fe..5e625553929 100644
--- a/innobase/btr/btr0pcur.c
+++ b/innobase/btr/btr0pcur.c
@@ -246,6 +246,12 @@ btr_pcur_restore_position(
&& btr_pcur_is_on_user_rec(cursor, mtr)
&& (0 == cmp_dtuple_rec(tuple, btr_pcur_get_rec(cursor)))) {
+ /* We have to store the NEW value for the modify clock, since
+ the cursor can now be on a different page! */
+
+ cursor->modify_clock = buf_frame_get_modify_clock(
+ buf_frame_align(
+ btr_pcur_get_rec(cursor)));
mem_heap_free(heap);
return(TRUE);