]> git.sur5r.net Git - openldap/commitdiff
Append mode still needs to detect duplicates
authorHoward Chu <hyc@symas.com>
Mon, 23 Jul 2012 00:41:58 +0000 (17:41 -0700)
committerHoward Chu <hyc@symas.com>
Mon, 23 Jul 2012 00:45:50 +0000 (17:45 -0700)
libraries/libmdb/mdb.c

index ad9ff44802ed10e9572555e7fe08294bd58d7a2e..21fa97792cca9062f460cd29c3777032b3517401 100644 (file)
@@ -4247,8 +4247,11 @@ mdb_cursor_put(MDB_cursor *mc, MDB_val *key, MDB_val *data,
                        MDB_val k2;
                        rc = mdb_cursor_last(mc, &k2, &d2);
                        if (rc == 0) {
-                               rc = MDB_NOTFOUND;
-                               mc->mc_ki[mc->mc_top]++;
+                               rc = mc->mc_dbx->md_cmp(key, &k2);
+                               if (rc) {
+                                       rc = MDB_NOTFOUND;
+                                       mc->mc_ki[mc->mc_top]++;
+                               }
                        }
                } else {
                rc = mdb_cursor_set(mc, key, &d2, MDB_SET, &exact);