Browse Source

branches/innodb+: ibuf_insert_to_index_page(): When the page is empty, look

at the first deleted record when checking the number of fields.
This fixes part of Issue #82.
pull/73/head
marko 17 years ago
parent
commit
c829e1c497
  1. 14
      ibuf/ibuf0ibuf.c

14
ibuf/ibuf0ibuf.c

@ -3330,6 +3330,20 @@ ibuf_insert_to_index_page(
rec = page_rec_get_next(page_get_infimum_rec(page));
if (page_rec_is_supremum(rec)) {
/* Empty pages can result from buffered delete operations.
The first record from the free list can be used to find the
father node. */
rec = page_header_get_ptr(page, PAGE_FREE);
if (UNIV_UNLIKELY(rec == NULL)) {
fputs("InnoDB: Trying to insert a record from"
" the insert buffer to an index page\n"
"InnoDB: but the index page is empty!\n",
stderr);
goto dump;
}
}
if (UNIV_UNLIKELY(rec_get_n_fields(rec, index)
!= dtuple_get_n_fields(entry))) {
fputs("InnoDB: Trying to insert a record from"

Loading…
Cancel
Save