]> git.sur5r.net Git - openldap/commitdiff
ITS#7994 Access to current transaction ID.
authorDavid Barbour <dmbarbour@gmail.com>
Mon, 12 Jan 2015 22:00:30 +0000 (23:00 +0100)
committerHallvard Furuseth <hallvard@openldap.org>
Sun, 25 Oct 2015 09:55:21 +0000 (10:55 +0100)
commit b660491d3fa359325cb3615a276bba78f32e2075 (mdb_txn_id())
plus c36c167cc49a59d4f40ae5fc259c013de601164e (fix prev commit)
from mdb.master.

libraries/liblmdb/lmdb.h
libraries/liblmdb/mdb.c

index c5e5c9bf12a2291d003911a7b1edd1dcbdbeb9f7..ee302a2365c43dcc043bb020ff4b68150c0ac4ad 100644 (file)
@@ -953,6 +953,17 @@ int  mdb_txn_begin(MDB_env *env, MDB_txn *parent, unsigned int flags, MDB_txn **
         */
 MDB_env *mdb_txn_env(MDB_txn *txn);
 
+       /** @brief Return the transaction's ID.
+        *
+        * This returns the identifier associated with this transaction. For a
+        * read-only transaction, this corresponds to the snapshot being read;
+        * concurrent readers will frequently have the same transaction ID.
+        *
+        * @param[in] txn A transaction handle returned by #mdb_txn_begin()
+        * @return A transaction ID, valid if input is an active transaction.
+        */
+size_t mdb_txn_id(MDB_txn *txn);
+
        /** @brief Commit all the operations of a transaction into the database.
         *
         * The transaction handle is freed. It and its cursors must not be used
index da09f8dbfe7264d657e7c576bb45f6acb3d75d7b..2ae60436b5bec1848216ee10340d01262e4189b9 100644 (file)
@@ -2766,6 +2766,13 @@ mdb_txn_env(MDB_txn *txn)
        return txn->mt_env;
 }
 
+size_t
+mdb_txn_id(MDB_txn *txn)
+{
+    if(!txn) return 0;
+    return txn->mt_txnid;
+}
+
 /** Export or close DBI handles opened in this txn. */
 static void
 mdb_dbis_update(MDB_txn *txn, int keep)