]> git.sur5r.net Git - openldap/commitdiff
mdb_dcmp(): Assume the database has MDB_DUPSORT.
authorHallvard Furuseth <hallvard@openldap.org>
Sat, 4 May 2013 10:34:49 +0000 (12:34 +0200)
committerHallvard Furuseth <hallvard@openldap.org>
Sat, 4 May 2013 10:34:49 +0000 (12:34 +0200)
There was little point in returning EINVAL when not: Comparing (A,B)
and (B,A) would claim (A > B && B > A), which could confuse callers.

libraries/liblmdb/lmdb.h
libraries/liblmdb/mdb.c

index 10eb8973ba4f332ae35da71c68349e729e889ab9..954ffde1cb2715a3288617331066f3a86be47807 100644 (file)
@@ -1252,7 +1252,7 @@ int  mdb_cmp(MDB_txn *txn, MDB_dbi dbi, const MDB_val *a, const MDB_val *b);
        /** @brief Compare two data items according to a particular database.
         *
         * This returns a comparison as if the two items were data items of
-        * a sorted duplicates #MDB_DUPSORT database.
+        * the specified database. The database must have the #MDB_DUPSORT flag.
         * @param[in] txn A transaction handle returned by #mdb_txn_begin()
         * @param[in] dbi A database handle returned by #mdb_dbi_open()
         * @param[in] a The first item to compare
index 0df2142dc2c8cde0380013ad5573c8e33efa0f67..b6e85a542c687d010abe54af5faf9b4a098ce7b1 100644 (file)
@@ -1246,10 +1246,7 @@ mdb_cmp(MDB_txn *txn, MDB_dbi dbi, const MDB_val *a, const MDB_val *b)
 int
 mdb_dcmp(MDB_txn *txn, MDB_dbi dbi, const MDB_val *a, const MDB_val *b)
 {
-       if (txn->mt_dbxs[dbi].md_dcmp)
-               return txn->mt_dbxs[dbi].md_dcmp(a, b);
-       else
-               return EINVAL;  /* too bad you can't distinguish this from a valid result */
+       return txn->mt_dbxs[dbi].md_dcmp(a, b);
 }
 
 /** Allocate a single page.