, __FILE__, __LINE__, msg, mdb_strerror(rc)), abort()))
24 int main(
intargc,
char* argv[])
40 count= (rand()%384) + 64;
44values[
i] = rand()%1024;
55 key.mv_size =
sizeof(
int);
58printf(
"Adding %d values\n",
count);
60sprintf(sval,
"%03x %d foo bar", values[
i], values[
i]);
62 data.mv_size =
sizeof(sval);
66 data.mv_size =
sizeof(sval);
70 if(j) printf(
"%d duplicates skipped\n", j);
77printf(
"key: %p %.*s, data: %p %.*s\n",
78 key.mv_data, (
int)
key.mv_size, (
char*)
key.mv_data,
79 data.mv_data, (
int)
data.mv_size, (
char*)
data.mv_data);
87 for(
i=
count- 1;
i> -1;
i-= (rand()%5)) {
91sprintf(sval,
"%03x ", values[
i]);
100printf(
"Deleted %d values\n", j);
105printf(
"Cursor next\n");
107printf(
"key: %.*s, data: %.*s\n",
108(
int)
key.mv_size, (
char*)
key.mv_data,
109(
int)
data.mv_size, (
char*)
data.mv_data);
112printf(
"Cursor last\n");
114printf(
"key: %.*s, data: %.*s\n",
115(
int)
key.mv_size, (
char*)
key.mv_data,
116(
int)
data.mv_size, (
char*)
data.mv_data);
117printf(
"Cursor prev\n");
119printf(
"key: %.*s, data: %.*s\n",
120(
int)
key.mv_size, (
char*)
key.mv_data,
121(
int)
data.mv_size, (
char*)
data.mv_data);
124printf(
"Cursor last/prev\n");
126printf(
"key: %.*s, data: %.*s\n",
127(
int)
key.mv_size, (
char*)
key.mv_data,
128(
int)
data.mv_size, (
char*)
data.mv_data);
130printf(
"key: %.*s, data: %.*s\n",
131(
int)
key.mv_size, (
char*)
key.mv_data,
132(
int)
data.mv_size, (
char*)
data.mv_data);
137printf(
"Deleting with cursor\n");
140 for(
i=0;
i<50;
i++) {
143printf(
"key: %p %.*s, data: %p %.*s\n",
144 key.mv_data, (
int)
key.mv_size, (
char*)
key.mv_data,
145 data.mv_data, (
int)
data.mv_size, (
char*)
data.mv_data);
149printf(
"Restarting cursor in txn\n");
153printf(
"key: %p %.*s, data: %p %.*s\n",
154 key.mv_data, (
int)
key.mv_size, (
char*)
key.mv_data,
155 data.mv_data, (
int)
data.mv_size, (
char*)
data.mv_data);
160printf(
"Restarting cursor outside txn\n");
166printf(
"key: %p %.*s, data: %p %.*s\n",
167 key.mv_data, (
int)
key.mv_size, (
char*)
key.mv_data,
168 data.mv_data, (
int)
data.mv_size, (
char*)
data.mv_data);
#define MDB_KEYEXIST
key/data pair already exists
#define MDB_NOTFOUND
key/data pair not found (EOF)
unsigned int
A callback function used to compare two keys in a database.
int mdb_env_open(MDB_env *env, const char *path, unsigned int flags, mdb_mode_t mode)
Open an environment handle.
void mdb_env_close(MDB_env *env)
Close the environment and release the memory map.
int mdb_cursor_get(MDB_cursor *cursor, MDB_val *key, MDB_val *data, MDB_cursor_op op)
Retrieve by cursor.
int mdb_put(MDB_txn *txn, MDB_dbi dbi, MDB_val *key, MDB_val *data, unsigned int flags)
Store items into a database.
void mdb_dbi_close(MDB_env *env, MDB_dbi dbi)
Close a database handle.
void mdb_txn_abort(MDB_txn *txn)
Abandon all the operations of the transaction instead of saving them.
int mdb_txn_commit(MDB_txn *txn)
Commit all the operations of a transaction into the database.
int mdb_cursor_open(MDB_txn *txn, MDB_dbi dbi, MDB_cursor **cursor)
Create a cursor handle.
int mdb_env_set_mapsize(MDB_env *env, size_t size)
Set the size of the memory map to use for this environment.
int mdb_env_create(MDB_env **env)
Create an LMDB environment handle.
int mdb_del(MDB_txn *txn, MDB_dbi dbi, MDB_val *key, MDB_val *data)
Delete items from a database.
int mdb_dbi_open(MDB_txn *txn, const char *name, unsigned int flags, MDB_dbi *dbi)
Open a database in the environment.
void mdb_cursor_close(MDB_cursor *cursor)
Close a cursor handle.
int mdb_txn_begin(MDB_env *env, MDB_txn *parent, unsigned int flags, MDB_txn **txn)
Create a transaction for use with the environment.
MDB_cursor_op
Cursor Get operations.
int mdb_env_set_maxreaders(MDB_env *env, unsigned int readers)
Set the maximum number of threads/reader slots for the environment.
int mdb_env_stat(MDB_env *env, MDB_stat *stat)
Return statistics about the LMDB environment.
@ MDB_LAST
Position at last key/data item.
@ MDB_FIRST
Position at first key/data item.
@ MDB_NEXT
Position at next data item.
@ MDB_PREV
Position at previous data item.
#define MDB_FIXEDMAP
mmap at a fixed address (experimental)
#define MDB_RDONLY
read only
#define MDB_NOOVERWRITE
For put: Don't write if the key already exists.
unsigned int MDB_dbi
A handle for an individual database in the DB environment.
int main(int argc, char *argv[])
const struct ncbi::grid::netcache::search::fields::KEY key
Cursors are used for all DB operations.
The database environment.
Statistics for a database in the environment.
Generic structure used for passing keys and data in and out of the database.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4