diff --git a/ChangeLog.md b/ChangeLog.md index 5b12e00f..45b8daa2 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,10 +1,46 @@ ChangeLog ---------- +========= English version [by Google](https://gitflic-ru.translate.goog/project/erthink/libmdbx/blob?file=ChangeLog.md&_x_tr_sl=ru&_x_tr_tl=en) and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic.ru/project/erthink/libmdbx/blob?file=ChangeLog.md). +## v0.12.8 (сопровождение и подготовка к релизу) + +Поддержка стабильной ветки. + +Благодарности: + + - [Alain Picard](https://github.com/castortech) за сообщение о проблеме + с обработкой `MDBX_MULTIPLE` и помощь в тестировании. + +Исправления и доработки: + + - Реализована перезапись в `mdbx_put(MDBX_CURRENT)` всех текущих мульти-значений ключа + при отсутствии флага `MDBX_NOOVERWRITE`. Ранее в такой ситуации возвращалась ошибка `MDBX_EMULTIVAL`. + В текущем понимании новое поведение более удобно и не создаёт проблем совместимости с ранее написанным кодом. + + - Устранение регресса/ошибки в пути обработки `put(MDBX_MULTIPLE)` при пакетном/оптовом + помещении в БД множественных значений одного ключа (aka multi-value или dupsort). + Проявление проблемы зависит от компилятора и опций оптимизации/кодогенерации, но с большой вероятностью возвращется + ошибка `MDBX_BAD_VALSIZE` (`-30781`), а в отладочных сборках срабатывает проверка `cASSERT(mc, !"Invalid key-size")`. + Сценарии приводящие к другим проявлениям на данный момент не известны. + + - Микрооптимизация и рефакториг `cursor_put_nochecklen()` в продолжение исправления + регресса/ошибки в пути обработки `put(MDBX_MULTIPLE)`. + +Мелочи: + + - Исправление несущественных предупреждений при `MDBX_ENABLE_PROFGC=ON`. + - Добавление `slice::as_pod()` в C++ API. + - Добавление перегрузки `txn::put_multiple()` и контроля POD в C++ API. + - Добавление smoke-теста для `put(MDBX_MULTIPLE)`. + - Добавление дополнительных smoke-тестов в область видимости ctest. + + +-------------------------------------------------------------------------------- + + ## v0.12.7 "Артек" от 2023-06-16 Стабилизирующий выпуск с исправлением обнаруженных ошибок и устранением