summaryrefslogtreecommitdiff
path: root/storage/tokudb/ft-index/ft/ft-verify.cc
diff options
context:
space:
mode:
authorJan Lindström <jplindst@mariadb.org>2013-11-25 17:14:08 +0200
committerJan Lindström <jplindst@mariadb.org>2013-11-25 17:14:08 +0200
commit071edcfea05674f86926ee4c5fbf30f97c2ed368 (patch)
treec33fbb7c8bc5d568650226c8d71496a3d47bc10c /storage/tokudb/ft-index/ft/ft-verify.cc
parent4f85baab95f50448930a8c9915f7178aa121e66e (diff)
parent160236f880e92d2872d95ce72aab144f08456bcc (diff)
downloadmariadb-git-071edcfea05674f86926ee4c5fbf30f97c2ed368.tar.gz
Merge with MariaDB 5.5.34.
Diffstat (limited to 'storage/tokudb/ft-index/ft/ft-verify.cc')
-rw-r--r--storage/tokudb/ft-index/ft/ft-verify.cc47
1 files changed, 15 insertions, 32 deletions
diff --git a/storage/tokudb/ft-index/ft/ft-verify.cc b/storage/tokudb/ft-index/ft/ft-verify.cc
index a50fbf34e05..636aef4aa0f 100644
--- a/storage/tokudb/ft-index/ft/ft-verify.cc
+++ b/storage/tokudb/ft-index/ft/ft-verify.cc
@@ -50,6 +50,7 @@ UNIVERSITY PATENT NOTICE:
PATENT MARKING NOTICE:
This software is covered by US Patent No. 8,185,551.
+ This software is covered by US Patent No. 8,489,638.
PATENT RIGHTS GRANT:
@@ -108,24 +109,6 @@ compare_pairs (FT_HANDLE brt, const DBT *a, const DBT *b) {
}
static int
-compare_leafentries (FT_HANDLE brt, LEAFENTRY a, LEAFENTRY b) {
- DBT x,y;
- FAKE_DB(db, &brt->ft->cmp_descriptor);
- int cmp = brt->ft->compare_fun(&db,
- toku_fill_dbt(&x, le_key(a), le_keylen(a)),
- toku_fill_dbt(&y, le_key(b), le_keylen(b)));
- return cmp;
-}
-
-static int
-compare_pair_to_leafentry (FT_HANDLE brt, const DBT *a, LEAFENTRY b) {
- DBT y;
- FAKE_DB(db, &brt->ft->cmp_descriptor);
- int cmp = brt->ft->compare_fun(&db, a, toku_fill_dbt(&y, le_key(b), le_keylen(b)));
- return cmp;
-}
-
-static int
compare_pair_to_key (FT_HANDLE brt, const DBT *a, bytevec key, ITEMLEN keylen) {
DBT y;
FAKE_DB(db, &brt->ft->cmp_descriptor);
@@ -166,12 +149,12 @@ verify_msg_in_child_buffer(FT_HANDLE brt, enum ft_msg_type type, MSN msn, byteve
return result;
}
-static LEAFENTRY
-get_ith_leafentry (BASEMENTNODE bn, int i) {
- OMTVALUE le_v;
- int r = toku_omt_fetch(bn->buffer, i, &le_v);
- invariant(r == 0); // this is a bad failure if it happens.
- return (LEAFENTRY)le_v;
+static DBT
+get_ith_key_dbt (BASEMENTNODE bn, int i) {
+ DBT kdbt;
+ int r = bn->data_buffer.fetch_le_key_and_len(i, &kdbt.size, &kdbt.data);
+ invariant_zero(r); // this is a bad failure if it happens.
+ return kdbt;
}
#define VERIFY_ASSERTION(predicate, i, string) ({ \
@@ -441,26 +424,26 @@ toku_verify_ftnode_internal(FT_HANDLE brt,
}
else {
BASEMENTNODE bn = BLB(node, i);
- for (uint32_t j = 0; j < toku_omt_size(bn->buffer); j++) {
+ for (uint32_t j = 0; j < bn->data_buffer.omt_size(); j++) {
VERIFY_ASSERTION((rootmsn.msn >= this_msn.msn), 0, "leaf may have latest msn, but cannot be greater than root msn");
- LEAFENTRY le = get_ith_leafentry(bn, j);
+ DBT kdbt = get_ith_key_dbt(bn, j);
if (curr_less_pivot) {
- int compare = compare_pair_to_leafentry(brt, curr_less_pivot, le);
+ int compare = compare_pairs(brt, curr_less_pivot, &kdbt);
VERIFY_ASSERTION(compare < 0, j, "The leafentry is >= the lower-bound pivot");
}
if (curr_geq_pivot) {
- int compare = compare_pair_to_leafentry(brt, curr_geq_pivot, le);
+ int compare = compare_pairs(brt, curr_geq_pivot, &kdbt);
VERIFY_ASSERTION(compare >= 0, j, "The leafentry is < the upper-bound pivot");
}
if (0 < j) {
- LEAFENTRY prev_le = get_ith_leafentry(bn, j-1);
- int compare = compare_leafentries(brt, prev_le, le);
+ DBT prev_key_dbt = get_ith_key_dbt(bn, j-1);
+ int compare = compare_pairs(brt, &prev_key_dbt, &kdbt);
VERIFY_ASSERTION(compare < 0, j, "Adjacent leafentries are out of order");
}
}
}
- }
-
+ }
+
done:
return result;
}