mirror of
https://github.com/isar/libmdbx.git
synced 2025-02-03 13:50:52 +08:00
mdbx: refine mdbx_cursor_count() API.
This commit is contained in:
parent
3a166e1970
commit
96de36baef
2
mdbx.h
2
mdbx.h
@ -1415,7 +1415,7 @@ LIBMDBX_API int mdbx_cursor_del(MDBX_cursor *cursor, unsigned flags);
|
|||||||
* possible errors are:
|
* possible errors are:
|
||||||
* - MDBX_EINVAL - cursor is not initialized, or an invalid parameter
|
* - MDBX_EINVAL - cursor is not initialized, or an invalid parameter
|
||||||
* was specified. */
|
* was specified. */
|
||||||
LIBMDBX_API int mdbx_cursor_count(MDBX_cursor *cursor, uint64_t *countp);
|
LIBMDBX_API int mdbx_cursor_count(MDBX_cursor *cursor, size_t *countp);
|
||||||
|
|
||||||
/* Compare two data items according to a particular database.
|
/* Compare two data items according to a particular database.
|
||||||
*
|
*
|
||||||
|
@ -6725,7 +6725,7 @@ int mdbx_cursor_renew(MDBX_txn *txn, MDBX_cursor *mc) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Return the count of duplicate data items for the current key */
|
/* Return the count of duplicate data items for the current key */
|
||||||
int mdbx_cursor_count(MDBX_cursor *mc, uint64_t *countp) {
|
int mdbx_cursor_count(MDBX_cursor *mc, size_t *countp) {
|
||||||
if (unlikely(mc == NULL || countp == NULL))
|
if (unlikely(mc == NULL || countp == NULL))
|
||||||
return MDBX_EINVAL;
|
return MDBX_EINVAL;
|
||||||
|
|
||||||
@ -6755,7 +6755,9 @@ int mdbx_cursor_count(MDBX_cursor *mc, uint64_t *countp) {
|
|||||||
if (F_ISSET(leaf->mn_flags, F_DUPDATA)) {
|
if (F_ISSET(leaf->mn_flags, F_DUPDATA)) {
|
||||||
mdbx_cassert(mc, mc->mc_xcursor && (mc->mc_xcursor->mx_cursor.mc_flags &
|
mdbx_cassert(mc, mc->mc_xcursor && (mc->mc_xcursor->mx_cursor.mc_flags &
|
||||||
C_INITIALIZED));
|
C_INITIALIZED));
|
||||||
*countp = mc->mc_xcursor->mx_db.md_entries;
|
*countp = unlikely(mc->mc_xcursor->mx_db.md_entries > INT_MAX)
|
||||||
|
? INT_MAX
|
||||||
|
: mc->mc_xcursor->mx_db.md_entries;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return MDBX_SUCCESS;
|
return MDBX_SUCCESS;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user