diff options
author | unknown <marko@hundin.mysql.fi> | 2004-12-28 01:34:52 +0200 |
---|---|---|
committer | unknown <marko@hundin.mysql.fi> | 2004-12-28 01:34:52 +0200 |
commit | 7ce58befd33d78e1c11872fcbc696a9cfad698c2 (patch) | |
tree | 6da5ac10b2bcc95fc1120e9a5d69928fdbe40917 /innobase/btr | |
parent | e3c7697431c144215af2f752d5c23b5b06e29982 (diff) | |
download | mariadb-git-7ce58befd33d78e1c11872fcbc696a9cfad698c2.tar.gz |
InnoDB: Fix some bugs in the new record format. (Bug #7493)
innobase/btr/btr0btr.c:
Remove parameter n_fields from cmp_rec_rec()
innobase/btr/btr0cur.c:
Remove parameter n_fields from cmp_rec_rec_with_match()
innobase/btr/btr0pcur.c:
Remove parameter n_fields from cmp_rec_rec()
innobase/include/rem0cmp.h:
Remove parameter n from cmp_rec_rec_with_match() and cmp_rec_rec()
innobase/include/rem0cmp.ic:
Remove parameter n from cmp_rec_rec()
innobase/include/rem0rec.ic:
Correct the implementation of rec_offs_nth_size() (Bug #7493)
innobase/page/page0page.c:
Remove parameter n_fields from cmp_rec_rec()
innobase/rem/rem0cmp.c:
Remove parameter n from cmp_rec_rec_with_match()
innobase/rem/rem0rec.c:
rec_get_offsets(): Pass the number of allocated elements to
rec_offs_set_n_alloc() instead of the number of allocated bytes,
so that debugging assertions are more likely to detect
out-of-bounds errors.
Diffstat (limited to 'innobase/btr')
-rw-r--r-- | innobase/btr/btr0btr.c | 5 | ||||
-rw-r--r-- | innobase/btr/btr0cur.c | 2 | ||||
-rw-r--r-- | innobase/btr/btr0pcur.c | 4 |
3 files changed, 4 insertions, 7 deletions
diff --git a/innobase/btr/btr0btr.c b/innobase/btr/btr0btr.c index 9da422e927f..4fb930da50f 100644 --- a/innobase/btr/btr0btr.c +++ b/innobase/btr/btr0btr.c @@ -2735,9 +2735,8 @@ loop: offsets, ULINT_UNDEFINED, &heap); offsets2 = rec_get_offsets(right_rec, index, offsets2, ULINT_UNDEFINED, &heap); - if (cmp_rec_rec(rec, right_rec, offsets, offsets2, - dict_index_get_n_fields(index), - index) >= 0) { + if (cmp_rec_rec(rec, right_rec, offsets, offsets2, index) + >= 0) { btr_validate_report2(index, level, page, right_page); diff --git a/innobase/btr/btr0cur.c b/innobase/btr/btr0cur.c index a3083e0e545..4c2a501a08a 100644 --- a/innobase/btr/btr0cur.c +++ b/innobase/btr/btr0cur.c @@ -2848,7 +2848,7 @@ btr_estimate_number_of_different_key_vals( cmp_rec_rec_with_match(rec, next_rec, offsets1, offsets2, - index, n_cols, &matched_fields, + index, &matched_fields, &matched_bytes); for (j = matched_fields + 1; j <= n_cols; j++) { diff --git a/innobase/btr/btr0pcur.c b/innobase/btr/btr0pcur.c index ad7613e0655..ceaa4f41a18 100644 --- a/innobase/btr/btr0pcur.c +++ b/innobase/btr/btr0pcur.c @@ -268,9 +268,7 @@ btr_pcur_restore_position( cursor->old_n_fields, &heap); ut_ad(cmp_rec_rec(cursor->old_rec, - rec, offsets1, offsets2, - cursor->old_n_fields, - index) == 0); + rec, offsets1, offsets2, index) == 0); mem_heap_free(heap); #endif /* UNIV_DEBUG */ return(TRUE); |