The LMDB documentation states taht a MDB_val returned by the API is only valid
until a subsequent update operation, or the end of the transaction [LMDB API]
However, this seems a little bit unclear. What is an "update operation" and what is not? Do mdb_put() or mdb_cursor_put() to this key within the transaction count as "updates"? It doesn't seem to be defined.
For some examples, one might wonder - do puts/cursor puts to other keys in this database? How about within different transactions? Different transactions in other databases in the environment? Different updates to other transactions in this environment? Writes to the data pointed to by the MDB_val? How about getting another key from the same cursor? etc, etc....
Is there any authoritative information on exactly what set of function calls or conditions an MDB_val has to be requeried?