mdbx: выпуск 0.12.8 "Владимир Уткин"

Стабилизирующий выпуск с исправлением обнаруженных ошибок и устранением недочетов,
в день 100-летия со дня рождения выдающегося советского и российского ученого и конструктора [Влади́мира Фёдоровича У́ткина](https://ru.wikipedia.org/wiki/Уткин,_Владимир_Фёдорович).

Исправления и доработки:
------------------------

 - Устранение регресса/ошибки в пути обработки `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](https://libmdbx.dqdkfa.ru/md__change_log.html).

git diff' stat: 24 commits, 18 files changed, 624 insertions(+), 94 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
This commit is contained in:
Леонид Юрьев (Leonid Yuriev) 2023-10-17 18:16:29 +03:00
parent 83f19fc993
commit 02c7cf2a9c
No known key found for this signature in database
GPG Key ID: 518BD10B927E8686
7 changed files with 10 additions and 9 deletions

View File

@ -5,13 +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 "Владимир Уткин" (запланировано на 2023-10-17)
## v0.12.8 "Владимир Уткин" от 2023-10-17
Стабилизирующий выпуск с исправлением обнаруженных ошибок и устранением недочетов,
в день 100-летия со дня рождения выдающегося советского и российского ученого и конструктора [Влади́мира Фёдоровича У́ткина](https://ru.wikipedia.org/wiki/Уткин,_Владимир_Фёдорович).
```
git diff' stat: 22 commits, 570 insertions(+), 58 deletions(-)
git diff' stat: 24 commits, 18 files changed, 624 insertions(+), 94 deletions(-)
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
```
Благодарности:
@ -34,7 +35,7 @@ git diff' stat: 22 commits, 570 insertions(+), 58 deletions(-)
- Добавлена возможность использовать `mdbx_cursor_get(MDBX_GET_MULTIPLE)` без предварительной установки
курсора, совмещая операцию пакетного получения данных с позиционированием курсора на передаваемый ключ.
- Микрооптимизация и рефакториг `cursor_put_nochecklen()` в продолжение исправления
- Микрооптимизация и рефакторинг `cursor_put_nochecklen()` в продолжение исправления
регресса/ошибки в пути обработки `put(MDBX_MULTIPLE)`.
- Уточнение формулировок в описании API, в том числе пояснений о `SIGSEGV`

View File

@ -1,6 +1,6 @@
.\" Copyright 2015-2023 Leonid Yuriev <leo@yuriev.ru>.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_CHK 1 "2023-06-16" "MDBX 0.12.7"
.TH MDBX_CHK 1 "2023-10-17" "MDBX 0.12.8"
.SH NAME
mdbx_chk \- MDBX checking tool
.SH SYNOPSIS

View File

@ -2,7 +2,7 @@
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_COPY 1 "2023-06-16" "MDBX 0.12.7"
.TH MDBX_COPY 1 "2023-10-17" "MDBX 0.12.8"
.SH NAME
mdbx_copy \- MDBX environment copy tool
.SH SYNOPSIS

View File

@ -1,7 +1,7 @@
.\" Copyright 2021-2023 Leonid Yuriev <leo@yuriev.ru>.
.\" Copyright 2014-2021 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_DROP 1 "2023-06-16" "MDBX 0.12.7"
.TH MDBX_DROP 1 "2023-10-17" "MDBX 0.12.8"
.SH NAME
mdbx_drop \- MDBX database delete tool
.SH SYNOPSIS

View File

@ -2,7 +2,7 @@
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_DUMP 1 "2023-06-16" "MDBX 0.12.7"
.TH MDBX_DUMP 1 "2023-10-17" "MDBX 0.12.8"
.SH NAME
mdbx_dump \- MDBX environment export tool
.SH SYNOPSIS

View File

@ -2,7 +2,7 @@
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
.\" Copyright 2014-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_LOAD 1 "2023-06-16" "MDBX 0.12.7"
.TH MDBX_LOAD 1 "2023-10-17" "MDBX 0.12.8"
.SH NAME
mdbx_load \- MDBX environment import tool
.SH SYNOPSIS

View File

@ -2,7 +2,7 @@
.\" Copyright 2015,2016 Peter-Service R&D LLC <http://billing.ru/>.
.\" Copyright 2012-2015 Howard Chu, Symas Corp. All Rights Reserved.
.\" Copying restrictions apply. See COPYRIGHT/LICENSE.
.TH MDBX_STAT 1 "2023-06-16" "MDBX 0.12.7"
.TH MDBX_STAT 1 "2023-10-17" "MDBX 0.12.8"
.SH NAME
mdbx_stat \- MDBX environment status tool
.SH SYNOPSIS