#At file:///home/marko/innobase/dev/mysql2a/5.5-innodb/ based on revid:marko.makela@stripped3hgtqz6ujva9
3175 Marko Mäkelä 2010-09-09
ibuf_insert_to_index_page(): Remove bogus code added for delete buffering.
In early development of delete buffering, we did allow B-tree pages
to become empty as a result of buffered deletes. That caused fundamental
problems. The fix was to refuse buffering purge operations unless
the page can be guaranteed to be nonempty. Remove an attempt to
cope with empty pages when merging inserts.
modified:
storage/innobase/ibuf/ibuf0ibuf.c
=== modified file 'storage/innobase/ibuf/ibuf0ibuf.c'
--- a/storage/innobase/ibuf/ibuf0ibuf.c revid:marko.makela@stripped
+++ b/storage/innobase/ibuf/ibuf0ibuf.c revid:marko.makela@oracle.com-20100909104800-rr27pzs6rnqvwc29
@@ -3779,17 +3779,11 @@ 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;
- }
+ 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)
Attachment: [text/bzr-bundle] bzr/marko.makela@oracle.com-20100909104800-rr27pzs6rnqvwc29.bundle
| Thread |
|---|
| • bzr commit into mysql-5.5-innodb branch (marko.makela:3175) | marko.makela | 9 Sep |