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;
mc->mc_ki[mc->mc_top]++;
} else {
rc = 0;
/* new key is <= last key */
rc = MDB_KEYEXIST;
}
}
} else {
@ -6918,7 +6919,7 @@ mdb_put(MDB_txn *txn, MDB_dbi dbi,
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;
mdb_cursor_init(&mc, txn, dbi, &mx);