mdbx: добавление mdbx_env_get_pairsize4page_max() и mdbx_env_get_valsize4page_max().

This commit is contained in:
Леонид Юрьев (Leonid Yuriev)
2022-10-10 16:33:51 +03:00
parent 9cdee2adb5
commit c3dd60fcb6
2 changed files with 44 additions and 2 deletions

View File

@@ -546,8 +546,16 @@ __cold intptr_t mdbx_limits_pairsize4page_max(intptr_t pagesize,
return LEAF_NODE_MAX(pagesize) - NODESIZE;
}
intptr_t mdbx_limits_valsize4page_max(intptr_t pagesize,
MDBX_db_flags_t flags) {
__cold int mdbx_env_get_pairsize4page_max(const MDBX_env *env,
MDBX_db_flags_t flags) {
if (unlikely(!env || env->me_signature.weak != MDBX_ME_SIGNATURE))
return -1;
return (int)mdbx_limits_pairsize4page_max((intptr_t)env->me_psize, flags);
}
__cold intptr_t mdbx_limits_valsize4page_max(intptr_t pagesize,
MDBX_db_flags_t flags) {
if (pagesize < 1)
pagesize = (intptr_t)mdbx_default_pagesize();
if (unlikely(pagesize < (intptr_t)MIN_PAGESIZE ||
@@ -562,6 +570,14 @@ intptr_t mdbx_limits_valsize4page_max(intptr_t pagesize,
return PAGEROOM(pagesize);
}
__cold int mdbx_env_get_valsize4page_max(const MDBX_env *env,
MDBX_db_flags_t flags) {
if (unlikely(!env || env->me_signature.weak != MDBX_ME_SIGNATURE))
return -1;
return (int)mdbx_limits_valsize4page_max((intptr_t)env->me_psize, flags);
}
/* Calculate the size of a leaf node.
*
* The size depends on the environment's page size; if a data item