mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-20 22:59:34 -05:00
Merge remote-tracking branch 'origin/mdb.RE/0.9'
This commit is contained in:
commit
267fe028b5
3 changed files with 17 additions and 15 deletions
|
|
@ -1,5 +1,9 @@
|
||||||
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);
|
||||||
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;
|
||||||
* 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)
|
||||||
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)
|
||||||
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)
|
||||||
}
|
}
|
||||||
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)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue