Commit 267fe028 authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

Merge remote-tracking branch 'origin/mdb.RE/0.9'

parents f2e6efed b807a63f
LMDB 0.9 Change Log LMDB 0.9 Change Log
LMDB 0.9.29 Engineering
ITS#9461 refix ITS#9376
ITS#9500 fix regression from ITS#8662
LMDB 0.9.28 Release (2021/02/04) LMDB 0.9.28 Release (2021/02/04)
ITS#8662 add -a append option to mdb_load ITS#8662 add -a append option to mdb_load
......
...@@ -928,7 +928,7 @@ void *mdb_env_get_userctx(MDB_env *env); ...@@ -928,7 +928,7 @@ void *mdb_env_get_userctx(MDB_env *env);
typedef void MDB_assert_func(MDB_env *env, const char *msg); typedef void MDB_assert_func(MDB_env *env, const char *msg);
/** Set or reset the assert() callback of the environment. /** Set or reset the assert() callback of the environment.
* Disabled if liblmdb is buillt with NDEBUG. * Disabled if liblmdb is built with NDEBUG.
* @note This hack should become obsolete as lmdb's error handling matures. * @note This hack should become obsolete as lmdb's error handling matures.
* @param[in] env An environment handle returned by #mdb_env_create(). * @param[in] env An environment handle returned by #mdb_env_create().
* @param[in] func An #MDB_assert_func function, or 0. * @param[in] func An #MDB_assert_func function, or 0.
......
...@@ -493,7 +493,7 @@ static txnid_t mdb_debug_start; ...@@ -493,7 +493,7 @@ static txnid_t mdb_debug_start;
* The string is printed literally, with no format processing. * The string is printed literally, with no format processing.
*/ */
#define DPUTS(arg) DPRINTF(("%s", arg)) #define DPUTS(arg) DPRINTF(("%s", arg))
/** Debuging output value of a cursor DBI: Negative in a sub-cursor. */ /** Debugging output value of a cursor DBI: Negative in a sub-cursor. */
#define DDBI(mc) \ #define DDBI(mc) \
(((mc)->mc_flags & C_SUB) ? -(int)(mc)->mc_dbi : (int)(mc)->mc_dbi) (((mc)->mc_flags & C_SUB) ? -(int)(mc)->mc_dbi : (int)(mc)->mc_dbi)
/** @} */ /** @} */
...@@ -8481,7 +8481,6 @@ mdb_cursor_del0(MDB_cursor *mc) ...@@ -8481,7 +8481,6 @@ mdb_cursor_del0(MDB_cursor *mc)
return rc; return rc;
} }
ki = mc->mc_ki[mc->mc_top];
mp = mc->mc_pg[mc->mc_top]; mp = mc->mc_pg[mc->mc_top];
nkeys = NUMKEYS(mp); nkeys = NUMKEYS(mp);
...@@ -8493,19 +8492,18 @@ mdb_cursor_del0(MDB_cursor *mc) ...@@ -8493,19 +8492,18 @@ mdb_cursor_del0(MDB_cursor *mc)
if (m3->mc_snum < mc->mc_snum) if (m3->mc_snum < mc->mc_snum)
continue; continue;
if (m3->mc_pg[mc->mc_top] == mp) { if (m3->mc_pg[mc->mc_top] == mp) {
if (m3->mc_ki[mc->mc_top] >= mc->mc_ki[mc->mc_top]) {
/* if m3 points past last node in page, find next sibling */ /* if m3 points past last node in page, find next sibling */
if (m3->mc_ki[mc->mc_top] >= nkeys) { if (m3->mc_ki[mc->mc_top] >= nkeys) {
rc = mdb_cursor_sibling(m3, 1); rc = mdb_cursor_sibling(m3, 1);
if (rc == MDB_NOTFOUND) { if (rc == MDB_NOTFOUND) {
m3->mc_flags |= C_EOF; m3->mc_flags |= C_EOF;
rc = MDB_SUCCESS; rc = MDB_SUCCESS;
continue; continue;
}
if (rc)
goto fail;
} }
if (rc)
goto fail;
}
if (m3->mc_ki[mc->mc_top] >= ki ||
/* moved to right sibling */ m3->mc_pg[mc->mc_top] != mp) {
if (m3->mc_xcursor && !(m3->mc_flags & C_EOF)) { if (m3->mc_xcursor && !(m3->mc_flags & C_EOF)) {
MDB_node *node = NODEPTR(m3->mc_pg[m3->mc_top], m3->mc_ki[m3->mc_top]); MDB_node *node = NODEPTR(m3->mc_pg[m3->mc_top], m3->mc_ki[m3->mc_top]);
/* If this node has dupdata, it may need to be reinited /* If this node has dupdata, it may need to be reinited
...@@ -8527,10 +8525,10 @@ mdb_cursor_del0(MDB_cursor *mc) ...@@ -8527,10 +8525,10 @@ mdb_cursor_del0(MDB_cursor *mc)
} }
m3->mc_xcursor->mx_cursor.mc_flags |= C_DEL; m3->mc_xcursor->mx_cursor.mc_flags |= C_DEL;
} }
m3->mc_flags |= C_DEL;
} }
} }
} }
mc->mc_flags |= C_DEL;
fail: fail:
if (rc) if (rc)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment