static void test_read(LSMDB_env *const env) { LSMDB_txn *txn; chk( lsmdb_txn_begin(env, NULL, MDB_RDONLY, &txn) ); LSMDB_cursor *cursor; chk( lsmdb_cursor_open(txn, &cursor) ); for(int i = 0; i < WRITES; ++i) { MDB_val key, data; chk( lsmdb_cursor_next(cursor, &key, &data, +1) ); assert(KEY_SIZE == key.mv_size); chkkey(key.mv_data); assert(DATA_SIZE == data.mv_size); } lsmdb_txn_abort(txn); }
int db_cursor_renew(DB_txn *const txn, DB_cursor **const out) { if(!out) return DB_EINVAL; if(*out) return mdberr(lsmdb_cursor_renew((LSMDB_txn *)txn, (LSMDB_cursor *)*out)); return mdberr(lsmdb_cursor_open((LSMDB_txn *)txn, (LSMDB_cursor **)out)); }
int db_cursor_open(DB_txn *const txn, DB_cursor **const out) { return mdberr(lsmdb_cursor_open((LSMDB_txn *)txn, (LSMDB_cursor **)out)); }