diff --git a/ChangeLog.md b/ChangeLog.md index bf984911..5c85fc11 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -5,9 +5,14 @@ English version [by Google](https://gitflic-ru.translate.goog/project/erthink/li 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 (сопровождение и подготовка к релизу) +## v0.12.8 "Владимир Уткин" (запланировано на 2023-10-17) -Поддержка стабильной ветки. +Стабилизирующий выпуск с исправлением обнаруженных ошибок и устранением недочетов, +в день 100-летия со дня рождения выдающегося советского и российского ученого и конструктора [Влади́мира Фёдоровича У́ткина](https://ru.wikipedia.org/wiki/Уткин,_Владимир_Фёдорович). + +``` +git diff' stat: 22 commits, 570 insertions(+), 58 deletions(-) +``` Благодарности: @@ -16,16 +21,19 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic Исправления и доработки: - - Реализована перезапись в `mdbx_put(MDBX_CURRENT)` всех текущих мульти-значений ключа - при отсутствии флага `MDBX_NOOVERWRITE`. Ранее в такой ситуации возвращалась ошибка `MDBX_EMULTIVAL`. - В текущем понимании новое поведение более удобно и не создаёт проблем совместимости с ранее написанным кодом. - - Устранение регресса/ошибки в пути обработки `put(MDBX_MULTIPLE)` при пакетном/оптовом помещении в БД множественных значений одного ключа (aka multi-value или dupsort). Проявление проблемы зависит от компилятора и опций оптимизации/кодогенерации, но с большой вероятностью возвращется ошибка `MDBX_BAD_VALSIZE` (`-30781`), а в отладочных сборках срабатывает проверка `cASSERT(mc, !"Invalid key-size")`. Сценарии приводящие к другим проявлениям на данный момент не известны. + - Реализована перезапись в `mdbx_put(MDBX_CURRENT)` всех текущих мульти-значений ключа + при отсутствии флага `MDBX_NOOVERWRITE`. Ранее в такой ситуации возвращалась ошибка `MDBX_EMULTIVAL`. + В текущем понимании новое поведение более удобно и не создаёт проблем совместимости с ранее написанным кодом. + + - Добавлена возможность использовать `mdbx_cursor_get(MDBX_GET_MULTIPLE)` без предварительной установки + курсора, совмещая операцию пакетного получения данных с позиционированием курсора на передаваемый ключ. + - Микрооптимизация и рефакториг `cursor_put_nochecklen()` в продолжение исправления регресса/ошибки в пути обработки `put(MDBX_MULTIPLE)`.