summaryrefslogtreecommitdiff
path: root/storage/innobase/btr/btr0defragment.cc
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2021-04-14 12:32:27 +0300
committerMarko Mäkelä <marko.makela@mariadb.com>2021-04-14 12:32:27 +0300
commitd2e2d32933823623fa3598c8e2b8a5a322e435bb (patch)
tree4a0094ff26be1e985281ef008433ce1493b58ae7 /storage/innobase/btr/btr0defragment.cc
parent72e0601d11ac40a27ce071cba8626612bc625e3c (diff)
parent6c3e860cbf36831c118f6ea183acbbeb3c889bed (diff)
downloadmariadb-git-d2e2d32933823623fa3598c8e2b8a5a322e435bb.tar.gz
Merge 10.5 into 10.6
Diffstat (limited to 'storage/innobase/btr/btr0defragment.cc')
-rw-r--r--storage/innobase/btr/btr0defragment.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/storage/innobase/btr/btr0defragment.cc b/storage/innobase/btr/btr0defragment.cc
index 4f23a4f88d3..6bd04253a86 100644
--- a/storage/innobase/btr/btr0defragment.cc
+++ b/storage/innobase/btr/btr0defragment.cc
@@ -258,12 +258,12 @@ btr_defragment_calc_n_recs_for_size(
ulint size = 0;
page_cur_t cur;
+ const ulint n_core = page_is_leaf(page) ? index->n_core_fields : 0;
page_cur_set_before_first(block, &cur);
page_cur_move_to_next(&cur);
while (page_cur_get_rec(&cur) != page_get_supremum_rec(page)) {
rec_t* cur_rec = page_cur_get_rec(&cur);
- offsets = rec_get_offsets(cur_rec, index, offsets,
- page_is_leaf(page),
+ offsets = rec_get_offsets(cur_rec, index, offsets, n_core,
ULINT_UNDEFINED, &heap);
ulint rec_size = rec_offs_size(offsets);
size += rec_size;
@@ -275,6 +275,9 @@ btr_defragment_calc_n_recs_for_size(
page_cur_move_to_next(&cur);
}
*n_recs_size = size;
+ if (UNIV_LIKELY_NULL(heap)) {
+ mem_heap_free(heap);
+ }
return n_recs;
}