libfpta's important changes:
- Rewritting filters to actually hollow
fpta_filter_none
without open underlying cursor. - Rewritting filters instead of returning
FPTA_ETYPE
. - Resolved all warnings and build errors for all actual version of GCC and CLANG compilers.
- Fixed test for 32-bit builds.
- Refactoring
fpta_name_refresh_filter()
and related functions to avoid refresh-overhead. - Resolved all UB shown by UBSAN, unclugin unaligned access.
libmdbx's important changes:
Backward compatibility break:
The database format signature has been changed to prevent
forward-interoperability with an previous releases, which may lead to a
false positive diagnosis of database corruption
due to flaws of an old library versions. This change is mostly invisible:
- previously versions are unable to read/write a new DBs;
- but the new release is able to handle an old DBs and will silently upgrade ones.
v0.11.2.22 at 2021-12-13:
- Fixed internal collision of
MDBX_SHRINK_ALLOWED
withMDBX_ACCEDE
. - Fixed returning
MDBX_RESULT_TRUE
(unexpected -1) frommdbx_env_set_option()
. - Fixed extra assertion inside
mdbx_cursor_put()
forMDBX_DUPFIXED
cases. - Fixed
mdbx_override_meta()
to avoid false-positive assertions.
v0.11.2 at 2021-12-02:
- Fixed unexpected
MDBX_PROBLEM
error because of update an obsolete meta-page. - Fixed returning
MDBX_NOTFOUND
error in case an inexact value found forMDBX_GET_BOTH
operation.
v0.11.1 at 2021-10-23:
- Fixed unaligned access regression after the
#pragma pack
fix for modern compilers. - Fixed possibility of meta-pages clashing after manually turn to a particular meta-page using
mdbx_chk
utility.
v0.10.4 at 2021-10-10:
- Fixed possibility of looping update GC during transaction commit (no public issue since the problem was discovered inside Positive Technologies).
- In debugging builds fixed a too small (single page) by default DB shrink threshold.
v0.10.3 at 2021-08-27:
- Always setup
madvise
while opening DB (fixes erthink/libmdbx#231). - Fixed checking legacy
P_DIRTY
flag (0x10
) for nested/sub-pages.
v0.10.2 at 2021-07-26:
-
Allow to predefine/override
MDBX_BUILD_TIMESTAMP
for builds reproducibility. -
Avoided
MDBX_TXN_FULL
error for large transactions when possible. -
The
MDBX_READERS_LIMIT
increased to32767
. -
mdbx_chk
now skips iteration & checking of DB' records if corresponding page-tree is corrupted (to avoidSIGSEGV
, ASAN failures, etc). -
Added more checks for rare/fuzzing corruption cases.
-
Fixed excess meta-pages checks in case
mdbx_chk
is called to check the DB for a specific meta page and thus could prevent switching to the selected meta page, even if the check passed without errors. -
Fixed recursive use of SRW-lock on Windows cause by
MDBX_NOTLS
option. -
Fixed installation by
CMake
in special cases by complete useGNUInstallDirs
's variables. -
Fixed
safe64_reset()
for platforms without atomic 64-bit compare-and-swap. -
Fixed hang/shutdown on big-endian platforms without
__cxa_thread_atexit()
. -
Fixed using bad meta-pages if DB was partially/recoverable corrupted.
-
Fixed
bootid
generation on Windows for case of change system' time.
v0.10.1 at 2021-06-01:
-
Added
-p
option tomdbx_stat
utility for printing page operations statistic. -
Added fallback from OFD locking to legacy non-OFD POSIX file locks on an
EINVAL
error. -
Added Plan 9 network file system to the whitelist for an ability to open a DB in exclusive mode.
-
Support for opening from WSL2 environment a DB hosted on Windows drive and mounted via DrvFs (i.e by Plan 9 noted above).
-
Fixed confusing/messy errors when build library from unfit github's archives (erthink/libmdbx#197).
-
Fixed
#elsif
typo. -
Fixed rare unexpected
MDBX_PROBLEM
error during altering data in huge transactions due to wrong spilling/oust of dirty pages (erthink/libmdbx#195). -
Re-Fixed WSL1/WSL2 detection with distinguishing (erthink/libmdbx#97).