Sorry for being so dense but...
The document says
The transaction handle is freed. It and its cursors must not be used again after this call, except with mdb_cursor_renew().
I am still very confused about reusing transactions.
If I commit or abort a read write transaction I can't reuse the transaction but I can re use the cursor? In the cursor documentation it says
Cursors that are only used in read-only transactions may be re-used, to avoid unnecessary malloc/free overhead.
So this indicates only read only cursors can be reused right?
So can you confirm my understanding? This is what I get from reading the docs.
A transaction can either be read write or read only.
If a transaction is read only you can commit or abort the transaction and then re-open it again for further use.
If a transaction is read write then it can't be used again after you commit or abort the transaction.