mdbx: Merge branch 'devel'.

This commit is contained in:
Leo Yuriev 2016-12-23 05:02:37 +03:00
commit 598989c6a5
3 changed files with 25 additions and 10 deletions

12
CHANGES
View File

@ -1,8 +1,6 @@
MDBX MDBX
Add MDB_PREV_MULTIPLE Add MDB_PREV_MULTIPLE
Fix MDB_CP_COMPACT (ITS#8209)
Add error MDB_PROBLEM, replace some MDB_CORRUPTED Add error MDB_PROBLEM, replace some MDB_CORRUPTED
Backport fixes for ITS#8406
LMDB 0.9.19 Release Engineering LMDB 0.9.19 Release Engineering
Fix mdb_env_cwalk cursor init (ITS#8424) Fix mdb_env_cwalk cursor init (ITS#8424)
@ -11,6 +9,16 @@ LMDB 0.9.19 Release Engineering
Optimize mdb_drop Optimize mdb_drop
Fix xcursors after mdb_cursor_del (ITS#8406) Fix xcursors after mdb_cursor_del (ITS#8406)
Fix MDB_NEXT_DUP after mdb_cursor_del (ITS#8412) Fix MDB_NEXT_DUP after mdb_cursor_del (ITS#8412)
Fix mdb_cursor_put resetting C_EOF (ITS#8489)
Fix mdb_env_copyfd2 to return EPIPE on SIGPIPE (ITS#8504)
Fix mdb_env_copy with empty DB (ITS#8209)
Fix behaviors with fork (ITS#8505)
Fix mdb_dbi_open with mainDB cursors (ITS#8542)
Fix F_NOCACHE on MacOS, error is non-fatal (ITS#7682)
Documentation
Cleanup doxygen nits
Note reserved vs actual mem/disk usage
LMDB 0.9.18 Release (2016/02/05) LMDB 0.9.18 Release (2016/02/05)
already done for mdbx - Fix robust mutex detection on glibc 2.10-11 (ITS#8330) already done for mdbx - Fix robust mutex detection on glibc 2.10-11 (ITS#8330)

View File

@ -253,7 +253,7 @@ IDL_PROPERTY_SUPPORT = YES
# member in the group (if any) for the other members of the group. By default # member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly. # all members of a group must be documented explicitly.
DISTRIBUTE_GROUP_DOC = NO DISTRIBUTE_GROUP_DOC = YES
# Set the SUBGROUPING tag to YES (the default) to allow class member groups of # Set the SUBGROUPING tag to YES (the default) to allow class member groups of
# the same type (for instance a group of public functions) to be put as a # the same type (for instance a group of public functions) to be put as a

21
mdb.c
View File

@ -614,19 +614,26 @@ typedef struct MDB_page {
/** Header for a single key/data pair within a page. /** Header for a single key/data pair within a page.
* Used in pages of type #P_BRANCH and #P_LEAF without #P_LEAF2. * Used in pages of type #P_BRANCH and #P_LEAF without #P_LEAF2.
* We guarantee 2-byte alignment for 'MDB_node's. * We guarantee 2-byte alignment for 'MDB_node's.
*
* #mn_lo and #mn_hi are used for data size on leaf nodes, and for child
* pgno on branch nodes. On 64 bit platforms, #mn_flags is also used
* for pgno. (Branch nodes have no flags). Lo and hi are in host byte
* order in case some accesses can be optimized to 32-bit word access.
*
* Leaf node flags describe node contents. #F_BIGDATA says the node's
* data part is the page number of an overflow page with actual data.
* #F_DUPDATA and #F_SUBDATA can be combined giving duplicate data in
* a sub-page/sub-database, and named databases (just #F_SUBDATA).
*/ */
typedef struct MDB_node { typedef struct MDB_node {
/** lo and hi are used for data size on leaf nodes and for /** part of data size or pgno
* child pgno on branch nodes. On 64 bit platforms, flags * @{ */
* is also used for pgno. (Branch nodes have no flags).
* They are in host byte order in case that lets some
* accesses be optimized into a 32-bit word access.
*/
#if BYTE_ORDER == LITTLE_ENDIAN #if BYTE_ORDER == LITTLE_ENDIAN
unsigned short mn_lo, mn_hi; /**< part of data size or pgno */ unsigned short mn_lo, mn_hi;
#else #else
unsigned short mn_hi, mn_lo; unsigned short mn_hi, mn_lo;
#endif #endif
/** @} */
/** @defgroup mdb_node Node Flags /** @defgroup mdb_node Node Flags
* @ingroup internal * @ingroup internal
* Flags for node headers. * Flags for node headers.