From 06e39e272806ce995d5aec5c99505ea3164dca57 Mon Sep 17 00:00:00 2001 From: Leonid Yuriev Date: Fri, 19 Oct 2018 13:33:27 +0300 Subject: [PATCH] mdbx: fix mdbx_dbi_sequence(). Change-Id: Ic620896ef42c1c2d85c07c146b72e773ab43a67d --- src/mdbx.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/mdbx.c b/src/mdbx.c index 75505966..8abb0508 100644 --- a/src/mdbx.c +++ b/src/mdbx.c @@ -13329,6 +13329,14 @@ int mdbx_dbi_sequence(MDBX_txn *txn, MDBX_dbi dbi, uint64_t *result, if (unlikely(TXN_DBI_CHANGED(txn, dbi))) return MDBX_BAD_DBI; + if (unlikely(txn->mt_dbflags[dbi] & DB_STALE)) { + MDBX_cursor_couple cx; + /* Stale, must read the DB's root. cursor_init does it for us. */ + int rc = mdbx_cursor_init(&cx.outer, txn, dbi); + if (unlikely(rc != MDBX_SUCCESS)) + return rc; + } + MDBX_db *dbs = &txn->mt_dbs[dbi]; if (likely(result)) *result = dbs->md_seq;