libmdbx 0.12.8 (Владимир Уткин)
Стабилизирующий выпуск с исправлением обнаруженных ошибок и устранением недочетов, в день 100-летия со дня рождения выдающегося советского и российского ученого и конструктора Влади́мира Фёдоровича У́ткина.
Translation to English by Google and by Yandex.
24 commits, 18 files changed, 624 insertions(+), 94 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
Исправления и доработки:
Устранение регресса/ошибки в пути обработки
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)
.Уточнение формулировок в описании API, в том числе пояснений о
SIGSEGV
и недопустимости прямого изменения данных.
Более подробная информация в ChangeLog.
Загрузки:
- 286K, libmdbx-amalgamated-0.12.8.zpaq, sha256sum:
6f79c00ef323ba8dbaf074692cdc9f207a4c903c73e9b0ee74e5031b19b078cf
- 383K, libmdbx-amalgamated-0.12.8.tar.xz, sha256sum:
c78c56c53708bbfc519bf53ebf520d1f09d30ee6427a4bedf713316696e671d0
За информацией о предыдущих версиях обращайтесь к тегам git и ChangeLog.