diff options
Diffstat (limited to 'storage/innobase/btr/btr0pcur.cc')
-rw-r--r-- | storage/innobase/btr/btr0pcur.cc | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/storage/innobase/btr/btr0pcur.cc b/storage/innobase/btr/btr0pcur.cc index cb5e18457f2..25a39e9646b 100644 --- a/storage/innobase/btr/btr0pcur.cc +++ b/storage/innobase/btr/btr0pcur.cc @@ -293,16 +293,21 @@ btr_pcur_restore_position_func( if (cursor->rel_pos == BTR_PCUR_ON) { #ifdef UNIV_DEBUG const rec_t* rec; - const ulint* offsets1; - const ulint* offsets2; + offset_t offsets1_[REC_OFFS_NORMAL_SIZE]; + offset_t offsets2_[REC_OFFS_NORMAL_SIZE]; + offset_t* offsets1 = offsets1_; + offset_t* offsets2 = offsets2_; rec = btr_pcur_get_rec(cursor); + rec_offs_init(offsets1_); + rec_offs_init(offsets2_); + heap = mem_heap_create(256); offsets1 = rec_get_offsets( - cursor->old_rec, index, NULL, true, + cursor->old_rec, index, offsets1, true, cursor->old_n_fields, &heap); offsets2 = rec_get_offsets( - rec, index, NULL, true, + rec, index, offsets2, true, cursor->old_n_fields, &heap); ut_ad(!cmp_rec_rec(cursor->old_rec, @@ -357,11 +362,13 @@ btr_pcur_restore_position_func( ut_ad(cursor->rel_pos == BTR_PCUR_ON || cursor->rel_pos == BTR_PCUR_BEFORE || cursor->rel_pos == BTR_PCUR_AFTER); + offset_t offsets[REC_OFFS_NORMAL_SIZE]; + rec_offs_init(offsets); if (cursor->rel_pos == BTR_PCUR_ON && btr_pcur_is_on_user_rec(cursor) && !cmp_dtuple_rec(tuple, btr_pcur_get_rec(cursor), rec_get_offsets(btr_pcur_get_rec(cursor), - index, NULL, true, + index, offsets, true, ULINT_UNDEFINED, &heap))) { /* We have to store the NEW value for the modify clock, |