summaryrefslogtreecommitdiff
path: root/innobase/btr
diff options
context:
space:
mode:
authorunknown <marko@hundin.mysql.fi>2004-12-28 01:34:52 +0200
committerunknown <marko@hundin.mysql.fi>2004-12-28 01:34:52 +0200
commit7ce58befd33d78e1c11872fcbc696a9cfad698c2 (patch)
tree6da5ac10b2bcc95fc1120e9a5d69928fdbe40917 /innobase/btr
parente3c7697431c144215af2f752d5c23b5b06e29982 (diff)
downloadmariadb-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.c5
-rw-r--r--innobase/btr/btr0cur.c2
-rw-r--r--innobase/btr/btr0pcur.c4
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);