diff --git a/ChangeLog.md b/ChangeLog.md index 52632623..5a8f0af6 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -5,13 +5,29 @@ 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 (сопровождение и подготовка к релизу) + +Поддержка стабильной ветки. + +Мелочи: + + - Удаление устаревших `mdbx_set_compare()` и `mdbx_set_dupsort()`. + - Корректировка определения `MDBX_LAST_ADDED_ERRCODE`. + - Добавление в C++ API забытого исключения `mdbx::duplicated_lck_file`. + - Обновление патча для старых версий buildroot. + + +-------------------------------------------------------------------------------- + + +## 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) ``` Благодарности: @@ -34,7 +50,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` @@ -378,7 +394,7 @@ Signed-off-by: Леонид Юрьев (Leonid Yuriev) - Добавлен явный выбор `tls_model("local-dynamic")` для обхода проблемы `relocation R_X86_64_TPOFF32 against FOO cannot be used with -shared` - из-за ошибки в CLANG приводящей к использованию неверного режима `ls_model`. + из-за ошибки в CLANG приводящей к использованию неверного режима `tls_model`. - Изменение тактики слияния страниц при удалении. Теперь слияние выполняется преимущественно с уже измененной/грязной страницей. diff --git a/mdbx.h b/mdbx.h index f702fc46..ece77eda 100644 --- a/mdbx.h +++ b/mdbx.h @@ -1937,7 +1937,7 @@ enum MDBX_error_t { MDBX_DUPLICATED_CLK = -30413, /* The last of MDBX-added error codes */ - MDBX_LAST_ADDED_ERRCODE = MDBX_TXN_OVERLAPPING, + MDBX_LAST_ADDED_ERRCODE = MDBX_DUPLICATED_CLK, #if defined(_WIN32) || defined(_WIN64) MDBX_ENODATA = ERROR_HANDLE_EOF, diff --git a/mdbx.h++ b/mdbx.h++ index 385bf9a2..d4cd7077 100644 --- a/mdbx.h++ +++ b/mdbx.h++ @@ -558,6 +558,7 @@ MDBX_DECLARE_EXCEPTION(something_busy); MDBX_DECLARE_EXCEPTION(thread_mismatch); MDBX_DECLARE_EXCEPTION(transaction_full); MDBX_DECLARE_EXCEPTION(transaction_overlapping); +MDBX_DECLARE_EXCEPTION(duplicated_lck_file); #undef MDBX_DECLARE_EXCEPTION [[noreturn]] LIBMDBX_API void throw_too_small_target_buffer(); diff --git a/packages/buildroot/0001-package-libmdbx-new-package-library-database.patch b/packages/buildroot/0001-package-libmdbx-new-package-library-database.patch index 9ae4139d..2dfe7ee3 100644 --- a/packages/buildroot/0001-package-libmdbx-new-package-library-database.patch +++ b/packages/buildroot/0001-package-libmdbx-new-package-library-database.patch @@ -1,7 +1,7 @@ -From 790cbdc02c2597650964a564e05fbb5af503adc9 Mon Sep 17 00:00:00 2001 +From 3efdf07a80f750c23de126ac80e78fb0545a1b63 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: Wed, 19 Apr 2023 13:34:37 +0300 +Date: Mon, 23 Oct 2023 18:07:13 +0300 Subject: [PATCH] package/libmdbx: new package (library/database). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -15,8 +15,9 @@ This patch adds libmdbx: in terms of reliability, features and performance. - https://gitflic.ru/project/erthink/libmdbx -The v0.12.5 "Dynamo" is stable release of frontward _libmdbx_ branch with new superior features -on the day of 100 anniversary of USSR' «Dynamo» sports and fitness society. +The v0.12.8 "Vladimir Utkin" is stable release of frontward _libmdbx_ +branch with new superior features on the day of 100 anniversary of the birth +of the outstanding Soviet and Russian scientist and engineer Vladimir Fedorovich Utkin. The complete ChangeLog: https://gitflic.ru/project/erthink/libmdbx/blob?file=ChangeLog.md @@ -111,18 +112,18 @@ index 0000000000..a9a4ac45c5 + !BR2_TOOLCHAIN_GCC_AT_LEAST_4_4 diff --git a/package/libmdbx/libmdbx.hash b/package/libmdbx/libmdbx.hash new file mode 100644 -index 0000000000..7a5b19952e +index 0000000000..82cf28d6a9 --- /dev/null +++ b/package/libmdbx/libmdbx.hash @@ -0,0 +1,5 @@ +# Hashes from: https://libmdbx.dqdkfa.ru/release/SHA256SUMS -+sha256 9c3abaaf9079a9518bb7155734817a2e286fffea46f7cc0825dfbd1cf9174075 libmdbx-amalgamated-0.12.5.tar.xz ++sha256 c78c56c53708bbfc519bf53ebf520d1f09d30ee6427a4bedf713316696e671d0 libmdbx-amalgamated-0.12.8.tar.xz + +# Locally calculated +sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 LICENSE diff --git a/package/libmdbx/libmdbx.mk b/package/libmdbx/libmdbx.mk new file mode 100644 -index 0000000000..9a196eda60 +index 0000000000..d198fe5b22 --- /dev/null +++ b/package/libmdbx/libmdbx.mk @@ -0,0 +1,42 @@ @@ -132,7 +133,7 @@ index 0000000000..9a196eda60 +# +################################################################################ + -+LIBMDBX_VERSION = 0.12.5 ++LIBMDBX_VERSION = 0.12.8 +LIBMDBX_SOURCE = libmdbx-amalgamated-$(LIBMDBX_VERSION).tar.xz +LIBMDBX_SITE = https://libmdbx.dqdkfa.ru/release +LIBMDBX_SUPPORTS_IN_SOURCE_BUILD = NO @@ -169,5 +170,5 @@ index 0000000000..9a196eda60 + +$(eval $(cmake-package)) -- -2.34.1 +2.42.0 diff --git a/src/core.c b/src/core.c index cb638d58..899b65af 100644 --- a/src/core.c +++ b/src/core.c @@ -23066,30 +23066,6 @@ bailout: return rc; } -int mdbx_set_compare(MDBX_txn *txn, MDBX_dbi dbi, MDBX_cmp_func *cmp) { - int rc = check_txn(txn, MDBX_TXN_BLOCKED - MDBX_TXN_ERROR); - if (unlikely(rc != MDBX_SUCCESS)) - return rc; - - if (unlikely(!check_dbi(txn, dbi, DBI_USRVALID))) - return MDBX_BAD_DBI; - - txn->mt_dbxs[dbi].md_cmp = cmp; - return MDBX_SUCCESS; -} - -int mdbx_set_dupsort(MDBX_txn *txn, MDBX_dbi dbi, MDBX_cmp_func *cmp) { - int rc = check_txn(txn, MDBX_TXN_BLOCKED - MDBX_TXN_ERROR); - if (unlikely(rc != MDBX_SUCCESS)) - return rc; - - if (unlikely(!check_dbi(txn, dbi, DBI_USRVALID))) - return MDBX_BAD_DBI; - - txn->mt_dbxs[dbi].md_dcmp = cmp; - return MDBX_SUCCESS; -} - __cold int mdbx_reader_list(const MDBX_env *env, MDBX_reader_list_func *func, void *ctx) { int rc = check_env(env, true); diff --git a/src/man1/mdbx_chk.1 b/src/man1/mdbx_chk.1 index f09638e8..aa4e9868 100644 --- a/src/man1/mdbx_chk.1 +++ b/src/man1/mdbx_chk.1 @@ -1,6 +1,6 @@ .\" Copyright 2015-2023 Leonid Yuriev . .\" 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 diff --git a/src/man1/mdbx_copy.1 b/src/man1/mdbx_copy.1 index 933624e6..4e67a5b8 100644 --- a/src/man1/mdbx_copy.1 +++ b/src/man1/mdbx_copy.1 @@ -2,7 +2,7 @@ .\" Copyright 2015,2016 Peter-Service R&D LLC . .\" 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 diff --git a/src/man1/mdbx_drop.1 b/src/man1/mdbx_drop.1 index 8c58d808..425eecd2 100644 --- a/src/man1/mdbx_drop.1 +++ b/src/man1/mdbx_drop.1 @@ -1,7 +1,7 @@ .\" Copyright 2021-2023 Leonid Yuriev . .\" 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 diff --git a/src/man1/mdbx_dump.1 b/src/man1/mdbx_dump.1 index 90bbe4fc..d236b93c 100644 --- a/src/man1/mdbx_dump.1 +++ b/src/man1/mdbx_dump.1 @@ -2,7 +2,7 @@ .\" Copyright 2015,2016 Peter-Service R&D LLC . .\" 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 diff --git a/src/man1/mdbx_load.1 b/src/man1/mdbx_load.1 index 54deb49d..ae8e7596 100644 --- a/src/man1/mdbx_load.1 +++ b/src/man1/mdbx_load.1 @@ -2,7 +2,7 @@ .\" Copyright 2015,2016 Peter-Service R&D LLC . .\" 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 diff --git a/src/man1/mdbx_stat.1 b/src/man1/mdbx_stat.1 index dacf5596..c330d2e6 100644 --- a/src/man1/mdbx_stat.1 +++ b/src/man1/mdbx_stat.1 @@ -2,7 +2,7 @@ .\" Copyright 2015,2016 Peter-Service R&D LLC . .\" 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 diff --git a/src/mdbx.c++ b/src/mdbx.c++ index 9ac0d8d5..9ac6cd71 100644 --- a/src/mdbx.c++ +++ b/src/mdbx.c++ @@ -285,7 +285,7 @@ DEFINE_EXCEPTION(something_busy) DEFINE_EXCEPTION(thread_mismatch) DEFINE_EXCEPTION(transaction_full) DEFINE_EXCEPTION(transaction_overlapping) - +DEFINE_EXCEPTION(duplicated_lck_file) #undef DEFINE_EXCEPTION __cold const char *error::what() const noexcept { @@ -371,6 +371,7 @@ __cold void error::throw_exception() const { CASE_EXCEPTION(thread_mismatch, MDBX_THREAD_MISMATCH); CASE_EXCEPTION(transaction_full, MDBX_TXN_FULL); CASE_EXCEPTION(transaction_overlapping, MDBX_TXN_OVERLAPPING); + CASE_EXCEPTION(duplicated_lck_file, MDBX_DUPLICATED_CLK); #undef CASE_EXCEPTION default: if (is_mdbx_error())