Releases: PositiveTechnologies/libfpta
Release v0.3.12 (stable)
libfpta's important changes:
- Rewritting filters to actually hollow
fpta_filter_nonewithout 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_ALLOWEDwithMDBX_ACCEDE. - Fixed returning
MDBX_RESULT_TRUE(unexpected -1) frommdbx_env_set_option(). - Fixed extra assertion inside
mdbx_cursor_put()forMDBX_DUPFIXEDcases. - Fixed
mdbx_override_meta()to avoid false-positive assertions.
v0.11.2 at 2021-12-02:
- Fixed unexpected
MDBX_PROBLEMerror because of update an obsolete meta-page. - Fixed returning
MDBX_NOTFOUNDerror in case an inexact value found forMDBX_GET_BOTHoperation.
v0.11.1 at 2021-10-23:
- Fixed unaligned access regression after the
#pragma packfix for modern compilers. - Fixed possibility of meta-pages clashing after manually turn to a particular meta-page using
mdbx_chkutility.
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
madvisewhile opening DB (fixes erthink/libmdbx#231). - Fixed checking legacy
P_DIRTYflag (0x10) for nested/sub-pages.
v0.10.2 at 2021-07-26:
-
Allow to predefine/override
MDBX_BUILD_TIMESTAMPfor builds reproducibility. -
Avoided
MDBX_TXN_FULLerror for large transactions when possible. -
The
MDBX_READERS_LIMITincreased to32767. -
mdbx_chknow 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_chkis 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_NOTLSoption. -
Fixed installation by
CMakein 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
bootidgeneration on Windows for case of change system' time.
v0.10.1 at 2021-06-01:
-
Added
-poption tomdbx_statutility for printing page operations statistic. -
Added fallback from OFD locking to legacy non-OFD POSIX file locks on an
EINVALerror. -
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
#elsiftypo. -
Fixed rare unexpected
MDBX_PROBLEMerror 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).
libfpta release v0.3.11 (obsolete)
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.