top = CURSOR_TOP(cursor);
leaf = mdb_search_node(cursor->mc_txn, cursor->mc_dbi, mpp.mp_page, key, exactp, &top->mp_ki);
if (exactp != NULL && !*exactp) {
- /* MDB_CURSOR_EXACT specified and not an exact match. */
+ /* MDB_SET specified and not an exact match. */
return ENOENT;
}
assert(cursor);
switch (op) {
- case MDB_CURSOR:
- case MDB_CURSOR_EXACT:
+ case MDB_SET:
+ case MDB_SET_RANGE:
while (CURSOR_TOP(cursor) != NULL)
cursor_pop_page(cursor);
if (key == NULL || key->mv_size == 0 || key->mv_size > MAXKEYSIZE) {
rc = EINVAL;
- } else if (op == MDB_CURSOR_EXACT)
+ } else if (op == MDB_SET)
rc = mdb_cursor_set(cursor, key, data, &exact);
else
rc = mdb_cursor_set(cursor, key, data, NULL);
#define MDB_NOOVERWRITE 1
typedef enum MDB_cursor_op { /* cursor operations */
- MDB_CURSOR, /* position at given key */
- MDB_CURSOR_EXACT, /* position at key, or fail */
+ MDB_SET, /* position at key, or fail */
+ MDB_SET_RANGE, /* position at given key */
MDB_FIRST,
MDB_NEXT,
- MDB_LAST, /* not implemented */
- MDB_PREV /* not implemented */
+ MDB_LAST,
+ MDB_PREV, /* not implemented */
+ MDB_GET_BOTH, /* position at key/data */
+ MDB_GET_BOTH_RANGE /* position at key, nearest data */
} MDB_cursor_op;
/* return codes */