libmdbx 0.12.8 (Владимир Уткин)

Леонид Юрьев обновлён 1 год назад v0.12.8 02c7cf2 Релиз
0
Описание

Стабилизирующий выпуск с исправлением обнаруженных ошибок и устранением недочетов, в день 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.

Загрузки:


За информацией о предыдущих версиях обращайтесь к тегам git и ChangeLog.

Файлы
  • Нет файлов