mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-06 19:14:14 +08:00
mdbx: symmetrical/invariant mdbx_estimate_range() for MDBX_EPSILON order.
Change-Id: Ida7e07d6429576c457bcd4d877a3c38c88dc2771
This commit is contained in:
parent
e26b7501eb
commit
870c2a6f9c
@ -13456,7 +13456,6 @@ int mdbx_estimate_range(MDBX_txn *txn, MDBX_dbi dbi, MDBX_val *begin_key,
|
|||||||
: rc;
|
: rc;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bool step_backward = false;
|
|
||||||
if (unlikely(begin_key == MDBX_EPSILON)) {
|
if (unlikely(begin_key == MDBX_EPSILON)) {
|
||||||
if (end_key == NULL) {
|
if (end_key == NULL) {
|
||||||
/* LY: -epsilon..LAST case */
|
/* LY: -epsilon..LAST case */
|
||||||
@ -13469,7 +13468,6 @@ int mdbx_estimate_range(MDBX_txn *txn, MDBX_dbi dbi, MDBX_val *begin_key,
|
|||||||
/* LY: -epsilon..value case */
|
/* LY: -epsilon..value case */
|
||||||
assert(end_key != MDBX_EPSILON);
|
assert(end_key != MDBX_EPSILON);
|
||||||
begin_key = end_key;
|
begin_key = end_key;
|
||||||
step_backward = true;
|
|
||||||
} else if (unlikely(end_key == MDBX_EPSILON)) {
|
} else if (unlikely(end_key == MDBX_EPSILON)) {
|
||||||
/* LY: value..+epsilon case */
|
/* LY: value..+epsilon case */
|
||||||
assert(begin_key != MDBX_EPSILON);
|
assert(begin_key != MDBX_EPSILON);
|
||||||
@ -13480,8 +13478,6 @@ int mdbx_estimate_range(MDBX_txn *txn, MDBX_dbi dbi, MDBX_val *begin_key,
|
|||||||
/* LY: single key case */
|
/* LY: single key case */
|
||||||
int exact = 0;
|
int exact = 0;
|
||||||
rc = mdbx_cursor_set(&begin.outer, begin_key, NULL, MDBX_SET, &exact);
|
rc = mdbx_cursor_set(&begin.outer, begin_key, NULL, MDBX_SET, &exact);
|
||||||
if (unlikely(step_backward) && rc == MDBX_SUCCESS)
|
|
||||||
rc = mdbx_cursor_prev(&begin.outer, NULL, NULL, MDBX_PREV_NODUP);
|
|
||||||
if (unlikely(rc != MDBX_SUCCESS)) {
|
if (unlikely(rc != MDBX_SUCCESS)) {
|
||||||
*size_items = 0;
|
*size_items = 0;
|
||||||
return (rc == MDBX_NOTFOUND) ? MDBX_SUCCESS : rc;
|
return (rc == MDBX_NOTFOUND) ? MDBX_SUCCESS : rc;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user