Conrad Steenberg wrote:
[resending to the list, doesn't seem to have gotten through]
Hi there,
I'm in the process of creating a binding for lmdb for the Crack language. So far everything works really well, except that I'm not sure about the workings of mdb_drop() to clear all the items from a database.
Is there an example usage somewhere that I can look at?
The definitive example of how to use LMDB is OpenLDAP slapd back-mdb. mdb_drop is used in back-mdb/tools.c.
You can also take a look at the dict_lmdb.c driver in Postfix 2.11 for another example.
Basically for an already open db handle inside an MDB_env I do _tmpTxn = mdb_txn_begin(_env, NULL, 0) mdb_drop(_tmpTxn, _dbi, 0) mdb_txn_commit(_tmpTxn) mdb_reader_check(_env)
However, when the db is opened again with mdb_dbi_open() I sometimes get MDB_BAD_RSLOT: Invalid reuse of reader locktable slot
That seems a bit odd, mdb_dbi_open() cannot return MDB_BAD_RSLOT.
I'm sure I'm missing a step somewhere! Any ideas?
Might help to see your actual code that causes this situation.
Thanks! Conrad