diff --git a/Makefile b/Makefile index 7909ee2..11713c1 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ MASTER_COMMIT=`git rev-parse --short origin/master` deps: lintci-deps - go get -d ./... + go get ./... all: deps diff --git a/mdbx/mdbx.c b/mdbx/mdbx.c index 4bf6fe4..4247d38 100644 --- a/mdbx/mdbx.c +++ b/mdbx/mdbx.c @@ -3,7 +3,7 @@ #define xMDBX_ALLOY 1 /* alloyed build */ -#define MDBX_BUILD_SOURCERY be1c8ae5abf4d763d126e385dfe4dd124539606917b893521bb6daa41631df33_v0_13_0_123_g77a35608 +#define MDBX_BUILD_SOURCERY 4ef6bfc2012bedf4af0bcd644ec87ace207f395c5d5e103573649032ec2cb6e8_v0_13_1_0_g5fc7a6b1 #define LIBMDBX_INTERNALS @@ -17603,12 +17603,14 @@ int dbi_bind(MDBX_txn *txn, const size_t dbi, unsigned user_flags, } else if ((user_flags & MDBX_CREATE) == 0) return /* FIXME: return extended info */ MDBX_INCOMPATIBLE; else { - eASSERT(env, env->dbs_flags[dbi] & DB_VALID); if (txn->dbi_state[dbi] & DBI_STALE) { + eASSERT(env, env->dbs_flags[dbi] & DB_VALID); int err = tbl_fetch(txn, dbi); if (unlikely(err == MDBX_SUCCESS)) return err; } + eASSERT(env, ((env->dbs_flags[dbi] ^ txn->dbs[dbi].flags) & + DB_PERSISTENT_FLAGS) == 0); eASSERT(env, (txn->dbi_state[dbi] & (DBI_LINDO | DBI_VALID | DBI_STALE)) == (DBI_LINDO | DBI_VALID)); @@ -17619,7 +17621,7 @@ int dbi_bind(MDBX_txn *txn, const size_t dbi, unsigned user_flags, if (unlikely(txn->cursors[dbi])) return MDBX_DANGLING_DBI; env->dbs_flags[dbi] = DB_POISON; - atomic_store32(&env->dbi_seqs[dbi], dbi_seq_next(env, MAIN_DBI), + atomic_store32(&env->dbi_seqs[dbi], dbi_seq_next(env, dbi), mo_AcquireRelease); const uint32_t seq = dbi_seq_next(env, dbi); @@ -23690,7 +23692,8 @@ int gc_update(MDBX_txn *txn, gcu_t *ctx) { MDBX_ENABLE_REFUND)); tASSERT(txn, dpl_check(txn)); if (unlikely(/* paranoia */ ctx->loop > ((MDBX_DEBUG > 0) ? 12 : 42))) { - ERROR("too more loops %u, bailout", ctx->loop); + ERROR("txn #%" PRIaTXN " too more loops %u, bailout", txn->txnid, + ctx->loop); rc = MDBX_PROBLEM; goto bailout; } @@ -40495,10 +40498,10 @@ __dll_export const struct MDBX_version_info mdbx_version = { 0, 13, + 1, 0, - 123, - {"2024-08-13T23:17:19+03:00", "b3f1f0a857e023f4f120a468518e229ffae370e5", "77a35608f6139d4ea2d872371631e796dd65334d", - "v0.13.0-123-g77a35608"}, + {"2024-08-30T00:01:07+03:00", "4ad05c5f867a963162def46b68eff5f7130b81ca", "5fc7a6b1077794789b97bb2a56f5a4eb541a0bc0", + "v0.13.1-0-g5fc7a6b1"}, sourcery}; __dll_export diff --git a/mdbx/mdbx.h b/mdbx/mdbx.h index 07d9ecf..9972e6b 100644 --- a/mdbx/mdbx.h +++ b/mdbx/mdbx.h @@ -559,7 +559,7 @@ typedef mode_t mdbx_mode_t; } \ MDBX_NOSANITIZE_ENUM MDBX_CXX01_CONSTEXPR ENUM operator&(unsigned a, \ ENUM b) { \ - return ENUM(a &unsigned(b)); \ + return ENUM(a & unsigned(b)); \ } \ MDBX_NOSANITIZE_ENUM MDBX_CXX14_CONSTEXPR ENUM &operator&=(ENUM &a, \ ENUM b) { \ diff --git a/mdbxdist/ChangeLog.md b/mdbxdist/ChangeLog.md index b46c4f7..bb2b908 100644 --- a/mdbxdist/ChangeLog.md +++ b/mdbxdist/ChangeLog.md @@ -4,7 +4,7 @@ ChangeLog English version [by liar Google](https://gitflic-ru.translate.goog/project/erthink/libmdbx/blob?file=ChangeLog.md&_x_tr_sl=ru&_x_tr_tl=en) and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic.ru/project/erthink/libmdbx/blob?file=ChangeLog.md). -## v0.13.1 (в процессе подготовки выпуска) +## v0.13.1 "РДС-1" от 2024-08-29 Новая версия со сменой лицензии, существенным расширением API, добавлением функционала и внутренними переработками. В том числе, @@ -153,6 +153,8 @@ and [by Yandex](https://translated.turbopages.org/proxy_u/ru-en.en/https/gitflic изменения геометрии другим процессом с увеличением верхнего размера БД и увеличением БД больше предыдущего лимита. + - Исправление assert-проверки при попытке создания таблицы с другими флагами/опциями. + Мелочи: - Обновление конфигурации Doxygen до 1.9.6. diff --git a/mdbxdist/VERSION.txt b/mdbxdist/VERSION.txt index e6c8f5a..883dcff 100644 --- a/mdbxdist/VERSION.txt +++ b/mdbxdist/VERSION.txt @@ -1 +1 @@ -0.13.0.123 +0.13.1.0 diff --git a/mdbxdist/man1/mdbx_chk.1 b/mdbxdist/man1/mdbx_chk.1 index 4ff7fc6..b48a798 100644 --- a/mdbxdist/man1/mdbx_chk.1 +++ b/mdbxdist/man1/mdbx_chk.1 @@ -1,6 +1,6 @@ .\" Copyright 2015-2024 Leonid Yuriev . .\" Copying restrictions apply. See COPYRIGHT/LICENSE. -.TH MDBX_CHK 1 "2024-03-21" "MDBX 0.13" +.TH MDBX_CHK 1 "2024-08-29" "MDBX 0.13" .SH NAME mdbx_chk \- MDBX checking tool .SH SYNOPSIS diff --git a/mdbxdist/man1/mdbx_copy.1 b/mdbxdist/man1/mdbx_copy.1 index 636bd75..16c0fce 100644 --- a/mdbxdist/man1/mdbx_copy.1 +++ b/mdbxdist/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 "2024-03-21" "MDBX 0.13" +.TH MDBX_COPY 1 "2024-08-29" "MDBX 0.13" .SH NAME mdbx_copy \- MDBX environment copy tool .SH SYNOPSIS diff --git a/mdbxdist/man1/mdbx_drop.1 b/mdbxdist/man1/mdbx_drop.1 index 99f8d37..3bf5683 100644 --- a/mdbxdist/man1/mdbx_drop.1 +++ b/mdbxdist/man1/mdbx_drop.1 @@ -1,7 +1,7 @@ .\" Copyright 2021-2024 Leonid Yuriev . .\" Copyright 2014-2021 Howard Chu, Symas Corp. All Rights Reserved. .\" Copying restrictions apply. See COPYRIGHT/LICENSE. -.TH MDBX_DROP 1 "2024-03-21" "MDBX 0.13" +.TH MDBX_DROP 1 "2024-08-29" "MDBX 0.13" .SH NAME mdbx_drop \- MDBX database delete tool .SH SYNOPSIS diff --git a/mdbxdist/man1/mdbx_dump.1 b/mdbxdist/man1/mdbx_dump.1 index ecd9618..9634205 100644 --- a/mdbxdist/man1/mdbx_dump.1 +++ b/mdbxdist/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 "2024-03-21" "MDBX 0.13" +.TH MDBX_DUMP 1 "2024-08-29" "MDBX 0.13" .SH NAME mdbx_dump \- MDBX environment export tool .SH SYNOPSIS diff --git a/mdbxdist/man1/mdbx_load.1 b/mdbxdist/man1/mdbx_load.1 index 6c2e16c..5e79087 100644 --- a/mdbxdist/man1/mdbx_load.1 +++ b/mdbxdist/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 "2024-03-21" "MDBX 0.13" +.TH MDBX_LOAD 1 "2024-08-29" "MDBX 0.13" .SH NAME mdbx_load \- MDBX environment import tool .SH SYNOPSIS diff --git a/mdbxdist/man1/mdbx_stat.1 b/mdbxdist/man1/mdbx_stat.1 index 2b87f20..935a541 100644 --- a/mdbxdist/man1/mdbx_stat.1 +++ b/mdbxdist/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 "2024-03-21" "MDBX 0.13" +.TH MDBX_STAT 1 "2024-08-29" "MDBX 0.13" .SH NAME mdbx_stat \- MDBX environment status tool .SH SYNOPSIS diff --git a/mdbxdist/mdbx.c b/mdbxdist/mdbx.c index 4bf6fe4..4247d38 100644 --- a/mdbxdist/mdbx.c +++ b/mdbxdist/mdbx.c @@ -3,7 +3,7 @@ #define xMDBX_ALLOY 1 /* alloyed build */ -#define MDBX_BUILD_SOURCERY be1c8ae5abf4d763d126e385dfe4dd124539606917b893521bb6daa41631df33_v0_13_0_123_g77a35608 +#define MDBX_BUILD_SOURCERY 4ef6bfc2012bedf4af0bcd644ec87ace207f395c5d5e103573649032ec2cb6e8_v0_13_1_0_g5fc7a6b1 #define LIBMDBX_INTERNALS @@ -17603,12 +17603,14 @@ int dbi_bind(MDBX_txn *txn, const size_t dbi, unsigned user_flags, } else if ((user_flags & MDBX_CREATE) == 0) return /* FIXME: return extended info */ MDBX_INCOMPATIBLE; else { - eASSERT(env, env->dbs_flags[dbi] & DB_VALID); if (txn->dbi_state[dbi] & DBI_STALE) { + eASSERT(env, env->dbs_flags[dbi] & DB_VALID); int err = tbl_fetch(txn, dbi); if (unlikely(err == MDBX_SUCCESS)) return err; } + eASSERT(env, ((env->dbs_flags[dbi] ^ txn->dbs[dbi].flags) & + DB_PERSISTENT_FLAGS) == 0); eASSERT(env, (txn->dbi_state[dbi] & (DBI_LINDO | DBI_VALID | DBI_STALE)) == (DBI_LINDO | DBI_VALID)); @@ -17619,7 +17621,7 @@ int dbi_bind(MDBX_txn *txn, const size_t dbi, unsigned user_flags, if (unlikely(txn->cursors[dbi])) return MDBX_DANGLING_DBI; env->dbs_flags[dbi] = DB_POISON; - atomic_store32(&env->dbi_seqs[dbi], dbi_seq_next(env, MAIN_DBI), + atomic_store32(&env->dbi_seqs[dbi], dbi_seq_next(env, dbi), mo_AcquireRelease); const uint32_t seq = dbi_seq_next(env, dbi); @@ -23690,7 +23692,8 @@ int gc_update(MDBX_txn *txn, gcu_t *ctx) { MDBX_ENABLE_REFUND)); tASSERT(txn, dpl_check(txn)); if (unlikely(/* paranoia */ ctx->loop > ((MDBX_DEBUG > 0) ? 12 : 42))) { - ERROR("too more loops %u, bailout", ctx->loop); + ERROR("txn #%" PRIaTXN " too more loops %u, bailout", txn->txnid, + ctx->loop); rc = MDBX_PROBLEM; goto bailout; } @@ -40495,10 +40498,10 @@ __dll_export const struct MDBX_version_info mdbx_version = { 0, 13, + 1, 0, - 123, - {"2024-08-13T23:17:19+03:00", "b3f1f0a857e023f4f120a468518e229ffae370e5", "77a35608f6139d4ea2d872371631e796dd65334d", - "v0.13.0-123-g77a35608"}, + {"2024-08-30T00:01:07+03:00", "4ad05c5f867a963162def46b68eff5f7130b81ca", "5fc7a6b1077794789b97bb2a56f5a4eb541a0bc0", + "v0.13.1-0-g5fc7a6b1"}, sourcery}; __dll_export diff --git a/mdbxdist/mdbx.c++ b/mdbxdist/mdbx.c++ index 5e916c1..1fee9ed 100644 --- a/mdbxdist/mdbx.c++ +++ b/mdbxdist/mdbx.c++ @@ -2,7 +2,7 @@ /// \author Леонид Юрьев aka Leonid Yuriev \date 2015-2024 -#define MDBX_BUILD_SOURCERY be1c8ae5abf4d763d126e385dfe4dd124539606917b893521bb6daa41631df33_v0_13_0_123_g77a35608 +#define MDBX_BUILD_SOURCERY 4ef6bfc2012bedf4af0bcd644ec87ace207f395c5d5e103573649032ec2cb6e8_v0_13_1_0_g5fc7a6b1 #define LIBMDBX_INTERNALS diff --git a/mdbxdist/mdbx.h b/mdbxdist/mdbx.h index 07d9ecf..9972e6b 100644 --- a/mdbxdist/mdbx.h +++ b/mdbxdist/mdbx.h @@ -559,7 +559,7 @@ typedef mode_t mdbx_mode_t; } \ MDBX_NOSANITIZE_ENUM MDBX_CXX01_CONSTEXPR ENUM operator&(unsigned a, \ ENUM b) { \ - return ENUM(a &unsigned(b)); \ + return ENUM(a & unsigned(b)); \ } \ MDBX_NOSANITIZE_ENUM MDBX_CXX14_CONSTEXPR ENUM &operator&=(ENUM &a, \ ENUM b) { \ diff --git a/mdbxdist/mdbx_chk.c b/mdbxdist/mdbx_chk.c index 25fd0f1..b8f8780 100644 --- a/mdbxdist/mdbx_chk.c +++ b/mdbxdist/mdbx_chk.c @@ -16,7 +16,7 @@ /// \author Леонид Юрьев aka Leonid Yuriev \date 2015-2024 -#define MDBX_BUILD_SOURCERY be1c8ae5abf4d763d126e385dfe4dd124539606917b893521bb6daa41631df33_v0_13_0_123_g77a35608 +#define MDBX_BUILD_SOURCERY 4ef6bfc2012bedf4af0bcd644ec87ace207f395c5d5e103573649032ec2cb6e8_v0_13_1_0_g5fc7a6b1 #define LIBMDBX_INTERNALS diff --git a/mdbxdist/mdbx_copy.c b/mdbxdist/mdbx_copy.c index e9030aa..e04bec9 100644 --- a/mdbxdist/mdbx_copy.c +++ b/mdbxdist/mdbx_copy.c @@ -18,7 +18,7 @@ /// \author Леонид Юрьев aka Leonid Yuriev \date 2015-2024 -#define MDBX_BUILD_SOURCERY be1c8ae5abf4d763d126e385dfe4dd124539606917b893521bb6daa41631df33_v0_13_0_123_g77a35608 +#define MDBX_BUILD_SOURCERY 4ef6bfc2012bedf4af0bcd644ec87ace207f395c5d5e103573649032ec2cb6e8_v0_13_1_0_g5fc7a6b1 #define LIBMDBX_INTERNALS diff --git a/mdbxdist/mdbx_drop.c b/mdbxdist/mdbx_drop.c index 172357b..b25daae 100644 --- a/mdbxdist/mdbx_drop.c +++ b/mdbxdist/mdbx_drop.c @@ -18,7 +18,7 @@ /// \author Леонид Юрьев aka Leonid Yuriev \date 2015-2024 -#define MDBX_BUILD_SOURCERY be1c8ae5abf4d763d126e385dfe4dd124539606917b893521bb6daa41631df33_v0_13_0_123_g77a35608 +#define MDBX_BUILD_SOURCERY 4ef6bfc2012bedf4af0bcd644ec87ace207f395c5d5e103573649032ec2cb6e8_v0_13_1_0_g5fc7a6b1 #define LIBMDBX_INTERNALS diff --git a/mdbxdist/mdbx_dump.c b/mdbxdist/mdbx_dump.c index 3a6ec51..17a92ff 100644 --- a/mdbxdist/mdbx_dump.c +++ b/mdbxdist/mdbx_dump.c @@ -18,7 +18,7 @@ /// \author Леонид Юрьев aka Leonid Yuriev \date 2015-2024 -#define MDBX_BUILD_SOURCERY be1c8ae5abf4d763d126e385dfe4dd124539606917b893521bb6daa41631df33_v0_13_0_123_g77a35608 +#define MDBX_BUILD_SOURCERY 4ef6bfc2012bedf4af0bcd644ec87ace207f395c5d5e103573649032ec2cb6e8_v0_13_1_0_g5fc7a6b1 #define LIBMDBX_INTERNALS diff --git a/mdbxdist/mdbx_load.c b/mdbxdist/mdbx_load.c index 181c2d2..d5ee412 100644 --- a/mdbxdist/mdbx_load.c +++ b/mdbxdist/mdbx_load.c @@ -18,7 +18,7 @@ /// \author Леонид Юрьев aka Leonid Yuriev \date 2015-2024 -#define MDBX_BUILD_SOURCERY be1c8ae5abf4d763d126e385dfe4dd124539606917b893521bb6daa41631df33_v0_13_0_123_g77a35608 +#define MDBX_BUILD_SOURCERY 4ef6bfc2012bedf4af0bcd644ec87ace207f395c5d5e103573649032ec2cb6e8_v0_13_1_0_g5fc7a6b1 #define LIBMDBX_INTERNALS diff --git a/mdbxdist/mdbx_stat.c b/mdbxdist/mdbx_stat.c index aaa1d5e..1e36dcb 100644 --- a/mdbxdist/mdbx_stat.c +++ b/mdbxdist/mdbx_stat.c @@ -18,7 +18,7 @@ /// \author Леонид Юрьев aka Leonid Yuriev \date 2015-2024 -#define MDBX_BUILD_SOURCERY be1c8ae5abf4d763d126e385dfe4dd124539606917b893521bb6daa41631df33_v0_13_0_123_g77a35608 +#define MDBX_BUILD_SOURCERY 4ef6bfc2012bedf4af0bcd644ec87ace207f395c5d5e103573649032ec2cb6e8_v0_13_1_0_g5fc7a6b1 #define LIBMDBX_INTERNALS