mirror of
https://github.com/MariaDB/server.git
synced 2025-12-01 17:39:21 +03:00
Merge the fixes for #2862, #2861, and #2269 onto main. Fixes #2269, #2861, #2862. close[t:2269] close[t:2861] close[t:2862]
{{{
svn merge -r 23006:23042 https://svn.tokutek.com/tokudb/toku/tokudb.2862b
}}}
.
git-svn-id: file:///svn/toku/tokudb@23046 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
committed by
Yoni Fogel
parent
87c3c1de3f
commit
1bfd207e32
@@ -53,8 +53,8 @@ void expect(Dbc *cursor, int k, int v) {
|
||||
toku_free(val.get_data());
|
||||
}
|
||||
|
||||
void test_reverse_compare(int n, int dup_flags) {
|
||||
if (verbose) printf("test_reverse_compare:%d %d\n", n, dup_flags);
|
||||
void test_reverse_compare(int n) {
|
||||
if (verbose) printf("test_reverse_compare:%d\n", n);
|
||||
|
||||
Db *db;
|
||||
DbTxn * const null_txn = 0;
|
||||
@@ -72,21 +72,17 @@ void test_reverse_compare(int n, int dup_flags) {
|
||||
r = env.open(DIR, DB_INIT_MPOOL + DB_CREATE + DB_PRIVATE, 0777); assert(r == 0);
|
||||
db = new Db(&env, DB_CXX_NO_EXCEPTIONS);
|
||||
assert(db);
|
||||
r = db->set_flags(dup_flags);
|
||||
assert(r == 0);
|
||||
r = db->set_pagesize(4096);
|
||||
assert(r == 0);
|
||||
r = db->set_bt_compare(reverse_compare);
|
||||
assert(r == 0);
|
||||
r = db->set_dup_compare(reverse_compare);
|
||||
assert(r == 0);
|
||||
r = db->open(null_txn, fname, "main", DB_BTREE, DB_CREATE, 0666);
|
||||
assert(r == 0);
|
||||
|
||||
/* insert n unique keys {0, 1, n-1} */
|
||||
for (i=0; i<n; i++) {
|
||||
int k, v;
|
||||
k = htonl(dup_flags ? n : i);
|
||||
k = htonl(i);
|
||||
Dbt key(&k, sizeof k);
|
||||
v = htonl(i);
|
||||
Dbt val(&v, sizeof v);
|
||||
@@ -101,21 +97,17 @@ void test_reverse_compare(int n, int dup_flags) {
|
||||
|
||||
db = new Db(&env, 0);
|
||||
assert(db);
|
||||
r = db->set_flags(dup_flags);
|
||||
assert(r == 0);
|
||||
r = db->set_pagesize(4096);
|
||||
assert(r == 0);
|
||||
r = db->set_bt_compare(reverse_compare);
|
||||
assert(r == 0);
|
||||
r = db->set_dup_compare(reverse_compare);
|
||||
assert(r == 0);
|
||||
r = db->open(null_txn, fname, "main", DB_BTREE, 0, 0666);
|
||||
assert(r == 0);
|
||||
|
||||
/* insert n unique keys {n, n+1, 2*n-1} */
|
||||
for (i=n; i<2*n; i++) {
|
||||
int k, v;
|
||||
k = htonl(dup_flags ? n : i);
|
||||
k = htonl(i);
|
||||
Dbt key(&k, sizeof k);
|
||||
v = htonl(i);
|
||||
Dbt val(&v, sizeof v);
|
||||
@@ -130,7 +122,7 @@ void test_reverse_compare(int n, int dup_flags) {
|
||||
|
||||
//for (i=0; i<2*n; i++)
|
||||
for (i=2*n-1; i>=0; i--)
|
||||
expect(cursor, htonl(dup_flags ? n : i), htonl(i));
|
||||
expect(cursor, htonl(i), htonl(i));
|
||||
|
||||
r = cursor->close();
|
||||
assert(r == 0);
|
||||
@@ -143,8 +135,7 @@ void test_reverse_compare(int n, int dup_flags) {
|
||||
int main(int argc, const char *argv[]) {
|
||||
int i;
|
||||
for (i = 1; i <= (1<<16); i *= 2) {
|
||||
test_reverse_compare(i, 0);
|
||||
test_reverse_compare(i, DB_DUP + DB_DUPSORT);
|
||||
test_reverse_compare(i);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user