Append mode should *reject* keys that are too small.
Also allow APPENDDUP in mdb_put().
This commit is contained in:
Howard Chu 2013-04-03 18:26:41 -07:00
parent e31d748dbe
commit 6beaad5212

View file

@ -4939,7 +4939,8 @@ mdb_cursor_put(MDB_cursor *mc, MDB_val *key, MDB_val *data,
rc = MDB_NOTFOUND; rc = MDB_NOTFOUND;
mc->mc_ki[mc->mc_top]++; mc->mc_ki[mc->mc_top]++;
} else { } else {
rc = 0; /* new key is <= last key */
rc = MDB_KEYEXIST;
} }
} }
} else { } else {
@ -6918,7 +6919,7 @@ mdb_put(MDB_txn *txn, MDB_dbi dbi,
return EINVAL; return EINVAL;
} }
if ((flags & (MDB_NOOVERWRITE|MDB_NODUPDATA|MDB_RESERVE|MDB_APPEND)) != flags) if ((flags & (MDB_NOOVERWRITE|MDB_NODUPDATA|MDB_RESERVE|MDB_APPEND|MDB_APPENDDUP)) != flags)
return EINVAL; return EINVAL;
mdb_cursor_init(&mc, txn, dbi, &mx); mdb_cursor_init(&mc, txn, dbi, &mx);