3437 Marko Mäkelä 2010-05-04
btr_page_split_and_insert(): Correct the fix of Bug #52964.
When split_rec==NULL, choose the correct node pointer key (first_rec).
modified:
storage/innodb_plugin/btr/btr0btr.c
3436 Marko Mäkelä 2010-05-03
buf_zip_decompress(): Allow BUF_NO_CHECKSUM_MAGIC as the stamped checksum.
buf_page_get_gen(): Assert that buf_zip_decompress() succeeds.
Callers are not prepared for a NULL return value. (Bug #53248)
modified:
storage/innodb_plugin/ChangeLog
storage/innodb_plugin/buf/buf0buf.c
=== modified file 'storage/innodb_plugin/btr/btr0btr.c'
--- a/storage/innodb_plugin/btr/btr0btr.c 2010-04-26 07:39:49 +0000
+++ b/storage/innodb_plugin/btr/btr0btr.c 2010-05-04 09:31:28 +0000
@@ -1999,9 +1999,13 @@ func_start:
split_rec = NULL;
goto insert_empty;
}
+ } else if (UNIV_UNLIKELY(insert_left)) {
+ first_rec = page_rec_get_next(page_get_infimum_rec(page));
+ move_limit = page_rec_get_next(btr_cur_get_rec(cursor));
} else {
insert_empty:
ut_ad(!split_rec);
+ ut_ad(!insert_left);
buf = mem_alloc(rec_get_converted_size(cursor->index,
tuple, n_ext));
@@ -2025,7 +2029,11 @@ insert_empty:
&& btr_page_insert_fits(cursor, split_rec,
offsets, tuple, n_ext, heap);
} else {
- mem_free(buf);
+ if (!insert_left) {
+ mem_free(buf);
+ buf = NULL;
+ }
+
insert_will_fit = !new_page_zip
&& btr_page_insert_fits(cursor, NULL,
NULL, tuple, n_ext, heap);
Attachment: [text/bzr-bundle] bzr/marko.makela@oracle.com-20100504093128-44v6glupe1dsh0ug.bundle
| Thread |
|---|
| • bzr push into mysql-5.1-innodb branch (marko.makela:3436 to 3437) Bug#52964 | marko.makela | 4 May |