From b8f9b8659cfff2f4ae6f2e23393bd0685e1224e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9B=D0=B5=D0=BE=D0=BD=D0=B8=D0=B4=20=D0=AE=D1=80=D1=8C?= =?UTF-8?q?=D0=B5=D0=B2=20=28Leonid=20Yuriev=29?= Date: Sat, 26 Oct 2024 23:23:17 +0300 Subject: [PATCH] =?UTF-8?q?mdbx:=20=D0=B4=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20ChangeLog.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ChangeLog.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index 2deef601..922766cb 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -11,14 +11,30 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic Исправления: + - Доработка `mdbx_close_dbi()` для возврата ошибки `MDBX_DANGLING_DBI` + при попытке закрыть dbi-дескриптор таблицы, созданной и/или измененной в + ещё выполняющейся транзакции. Такое преждевременное закрытие дескриптора + является неверным использованием API и нарушением контракта/предусловий + сформулированных в описании `mdbx_close_dbi()`. Однако, вместо возврата + ошибки выполнялось некорректное закрытие дескриптора, что могло + приводить к созданию таблицы с пустым именем, утечки страниц БД и/или + нарушению структуры b-tree (неверной ссылкой на корень таблицы). + + - Исправление открытия таблицы с пустым/нулевым именем и устранение + `SIGSEGV` при закрытии её дескриптора. + - Добавлены упущенные inline-реализации `mdbx::cursor::upper_bound()` и `mdbx::cursor::upper_bound_multivalue()`. - Корректировка описания С++ API для использования термина "таблица" вместо "sub-database". - Исправление условия внутри `assert()` в пути обработки `MDBX_GET/NEXT/PREV_MULTIPLE`. - Допущение 4-байтового выравнивания данных `MDBX_MULTIPLE` для 32-битных сборок. + - Добавлен костыль для устранения проблем из-за некорректной обработки `[[gnu::pure]]` в Apple Clang. Новое: - Добавление `mdbx::cursor::get_multiple_samelength()` и переименование `mdbx::txn::put_multiple_samelength()`. - Возвращение ключа при выполнении операции `MDBX_GET_MULTIPLE` для единообразия C++ API. + - Смена базового типа на `intptr_t` для размерных констант `mdbx::env::geometry`. + - Включение стандарта `C23` в CMake-скриптах сборки. + - Добавление T-макросов для парных `char`/`wchar_t` функций. Мелочи: @@ -32,6 +48,9 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic - Доработка `osal_jitter()` для уменьшения задержек в тестах под Windows. - Исправление максимальной длины значений в тесте `extra/crunched-delete`. - Добавление логирования С++ исключений в `extra/dupfix_multiple`. + - Корректировка API-макросов для Doxygen. + - Уточнение описания `mdbx_dbi_close()` для случая хендлов измененных таблиц. + - Добавление теста `extra/early_close_dbi`. --------------------------------------------------------------------------------