Леонид Юрьев (Leonid Yuriev)
fb15c8ca0b
mdbx++: дополнительные операторы преобразования к типам C API (backport).
2023-11-28 09:36:29 +03:00
Леонид Юрьев (Leonid Yuriev)
ae01a8e891
mdbx++: перенос в public типов buffer::move_assign_alloc
и buffer::copy_assign_alloc
для старых стандартов C++ (backport).
2023-11-28 09:36:29 +03:00
Леонид Юрьев (Leonid Yuriev)
1277fe965d
mdbx++: переделка поддержки base58 по RFC-draft (backport).
2023-11-28 09:36:10 +03:00
Леонид Юрьев (Leonid Yuriev)
b1abcb8260
mdbx++: использование slice::invalid()
для предотвращения незаметного неверного использования API (backport).
2023-11-28 01:18:24 +03:00
Леонид Юрьев (Leonid Yuriev)
7cd3dbbccb
mdbx++: добавление mdbx::default_buffer
(backport).
2023-11-28 01:18:24 +03:00
Леонид Юрьев (Leonid Yuriev)
352dd75ee8
mdbx++: исправление опечатки в doxygen-описании (backport).
2023-11-28 01:16:38 +03:00
Леонид Юрьев (Leonid Yuriev)
cf1541e4d7
mdbx++: добавление get/set_context для транзакций и курсоров (backport).
2023-11-28 01:16:38 +03:00
Леонид Юрьев (Leonid Yuriev)
446dbc9d6c
mdbx++: добавление cursor::clone()
(backport).
2023-11-28 01:13:24 +03:00
Леонид Юрьев (Leonid Yuriev)
64a5ad8c04
mdbx++: добавление методов buffer::hex_decode()
, base64_decode()
, base58_decode()
(backport).
2023-11-28 01:13:24 +03:00
Леонид Юрьев (Leonid Yuriev)
0fd0d527d9
mdbx++: добавление типа mdbx::comparator
и функций mdbx::default_comparator()
(backport).
2023-11-28 01:13:24 +03:00
Леонид Юрьев (Leonid Yuriev)
4bed5d1779
mdbx++: добавление статических методов buffer::hex()
, base64()
, base58()
(backport).
2023-11-28 01:13:24 +03:00
Леонид Юрьев (Leonid Yuriev)
992eee4f0f
mdbx++: добавление cursor::clone()
.
2023-11-26 16:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
d6a79a9c5f
mdbx++: переименование slice::as_intXX()
в slice::as_intXX_adapt()
и добавление slice::as_intXX()
.
2023-11-26 16:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
6facd20b2b
mdbx++: добавление buffer::as_uint64()
и т.д.
2023-11-26 16:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
e66df2c21b
mdbx++: добавление методов buffer::hex_decode()
, base64_decode()
, base58_decode()
.
2023-11-26 16:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
649bbb9d90
mdbx++: добавление типа mdbx::comparator
и функций mdbx::default_comparator()
.
2023-11-26 16:56:34 +03:00
Леонид Юрьев (Leonid Yuriev)
c8319aabe7
mdbx++: добавление статических методов buffer::hex()
, base64()
, base58()
.
2023-11-26 16:56:19 +03:00
Леонид Юрьев (Leonid Yuriev)
476da5f8cf
mdbx++: добавление cursor::estimation_result
и переделка cursor::estimate()
(backport).
2023-11-12 21:30:09 +03:00
Леонид Юрьев (Leonid Yuriev)
6cef39c32f
mdbx++: добавление cursor::estimation_result
и переделка cursor::estimate()
.
2023-11-12 20:37:57 +03:00
Леонид Юрьев (Leonid Yuriev)
7eb2f4130e
mdbx: использование const MDBX_txn
где это возможно в API (backport).
2023-11-12 19:33:27 +03:00
Леонид Юрьев (Leonid Yuriev)
e6af7d7c53
mdbx: переработка инициализации, проверки и импорта dbi-хендлов в транзакциях.
...
Ранее инициализация в транзакциях структур данных, связанных с
dbi-хендлами и subDb, выполнялась непосредственно при запуске
транзакций. Что в сценариях с большим кол-вом dbi-дексприторов (например
libfpta) порождало заметные накладные расходы, которые расли линейно от
общего кол-ва открытых subDb, а не от реально используемых в транзакции.
При использовании одной-двух сотен хендлов, при старте каждой транзакции
могли копироваться и/или обнуляться десятки килобайт. Теперь этот
недостаток устранен.
Изменена схема инициализации, валидации и импорта хендлов открытых после
старта транзакции:
1) Инициализация теперь выполняется отложенна, а при старте транзации
обнуляется только массив с однобайтовыми статустами dbi-хендлов.
При этом доступнва опция сборки `MDBX_ENABLE_DBI_SPARSE`, при активации
которой используется битовая карты, что снижает объем инициализации
при старте транзакции в 8 раз (CHAR_BIT).
2) Переработана валидация dbi-хендлов на входах API, с уменьшением кол-ва
проверок и ветвлений до теоретического минимума.
3) Переработ импорт dbi-хендов открытых после старта транзакци, теперь
при этом не захватывается мьютекс.
2023-11-11 12:29:10 +03:00
Леонид Юрьев (Leonid Yuriev)
04511a7a99
mdbx: использование const MDBX_txn
где это возможно в API.
2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
4d3f7e1edc
mdbx: добавление mdbx_txn_release_all_cursors()
в API.
2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
d28a397b2d
mdbx: добавление mdbx_cursor_unbind()
в API.
2023-10-23 20:25:03 +03:00
Леонид Юрьев (Leonid Yuriev)
311a6e5d10
mdbx++: добавление забытого исключения mdbx::duplicated_lck_file
.
2023-10-23 16:33:34 +03:00
Леонид Юрьев (Leonid Yuriev)
e9b10db255
mdbx++: доработка использования filesystem
для старых компиляторов.
2023-10-09 07:34:01 +03:00
Леонид Юрьев (Leonid Yuriev)
e195f5bcf7
mdbx++: перегрузка txn::put_multiple()
и добавление контроля POD.
2023-10-06 21:56:21 +03:00
Леонид Юрьев (Leonid Yuriev)
c256e8358c
mdbx++: добавление slice::as_pod<typename>()
.
2023-10-06 12:07:38 +03:00
Леонид Юрьев (Leonid Yuriev)
7aaae2ecd5
mdbx-doc: исправление ссылок на mdbx_canary_put().
2023-06-01 08:48:38 +03:00
Леонид Юрьев (Leonid Yuriev)
e8d2a5bd09
mdbx++: добавление пары перекрестных ссылок в doxygen-документацию.
2023-05-23 15:35:36 +03:00
Леонид Юрьев (Leonid Yuriev)
60b483025c
mdbx++: устранение ложно-позитивного предупреждения новых версий GCC.
2023-05-14 01:23:48 +03:00
Леонид Юрьев (Leonid Yuriev)
99c9bc2411
mdbx: использование clang-format-16.
2023-04-19 11:02:53 +03:00
Леонид Юрьев (Leonid Yuriev)
3ace3c27b8
mdbx++: добавление typename mdbx::default_allocator
.
2023-04-01 11:10:40 +03:00
Леонид Юрьев (Leonid Yuriev)
8a44d57fab
mdbx++: добавление вариантов buffer::key_from()
с явным именованием по типу данных.
2023-03-31 00:56:05 +03:00
Леонид Юрьев (Leonid Yuriev)
7db014c4fc
mdbx++: добавление в C++ API поддержки расширенных опций времени выполнения enum MDBX_option_t
.
...
https://gitflic.ru/project/erthink/libmdbx/issue/4
2023-03-01 23:22:50 +03:00
Леонид Юрьев (Leonid Yuriev)
e51140fe48
mdbx-doc: корректировка doxygen-описания C++ API, в особенности C++20 concepts.
2023-02-11 00:26:06 +03:00
Леонид Юрьев (Leonid Yuriev)
2a41b24876
mdbx++: уточнение const
и noexcept
для нескольких методов.
2023-02-09 15:14:39 +03:00
Леонид Юрьев (Leonid Yuriev)
c01f025bfa
mdbx: обновление года на 2023.
2023-01-16 16:32:02 +03:00
Леонид Юрьев (Leonid Yuriev)
525c4a55a4
mdbx: fix English typos.
...
Thanks to Dimitris Apostolou <dimitris.apostolou@icloud.com>
2023-01-10 14:16:08 +03:00
Леонид Юрьев (Leonid Yuriev)
61eafe80c1
mdbx: использование https://libmdbx.dqdkfa.ru/dead-github для удаленных issues.
2022-11-23 01:18:25 +03:00
Леонид Юрьев (Leonid Yuriev)
70e8006776
mdbx-docs: перенаправление github-ссылок на web-archive.
2022-11-10 15:54:31 +03:00
Леонид Юрьев (Leonid Yuriev)
25ab65b470
mdbx++: добавление env::limits::pairsize4page_max()
и env::limits::valsize4page_max()
.
2022-10-10 16:37:59 +03:00
Леонид Юрьев (Leonid Yuriev)
bee7431f76
mdbx++: добавлена фиксация транзакции с получением информации о задержках.
2022-10-10 13:56:57 +03:00
Леонид Юрьев (Leonid Yuriev)
2ff8d3c4f2
mdbx: native wchar_t
pathname for Windows.
2022-08-09 18:27:43 +03:00
Леонид Юрьев (Leonid Yuriev)
69b495d559
mdbx++: add to mdbx::env
overloads with const char*
pathname parameter.
2022-07-13 21:45:23 +03:00
Леонид Юрьев (Leonid Yuriev)
8ef3bfcc95
mdbx++: refine descriptions for compare_fast()
and compare_lexicographically()
.
2022-06-18 12:08:34 +03:00
Леонид Юрьев (Leonid Yuriev)
280fa99831
mdbx++: use C++20 concepts only when __cpp_lib_concepts >= 202002
.
2022-06-12 20:20:23 +03:00
Леонид Юрьев (Leonid Yuriev)
9b9fe22669
mdbx++: refine descriptions for constexpr-enabled str-functions.
2022-06-12 20:17:40 +03:00
Леонид Юрьев (Leonid Yuriev)
a5a112796c
mdbx++: push/pop warnings for lcc 1.26
2022-06-12 20:11:15 +03:00
Леонид Юрьев (Leonid Yuriev)
c8cad3704e
mdbx-docs: minor refine Doxygen config and comments.
2022-04-26 01:02:07 +03:00
Леонид Юрьев (Leonid Yuriev)
ce229c7500
mdbx-docs: more refine/clarify Doxygen descriptions.
2022-04-23 23:23:15 +03:00
Леонид Юрьев (Leonid Yuriev)
9c569b41ed
mdbx-docs: fix/refine C++ API
docs by Doxygen.
2022-04-23 23:23:15 +03:00
Леонид Юрьев (Leonid Yuriev)
bdf5fb7a72
mdbx++: avoid clang++ minor/extra warnings.
2022-04-21 21:53:46 +03:00
Леонид Юрьев (Leonid Yuriev)
e00f827de7
mdbx++: fix/refine detection of C++20 concepts accessibility.
2022-04-21 21:53:29 +03:00
Леонид Юрьев (Leonid Yuriev)
2921711638
mdbx: minor refine note about migration from dead github.
2022-04-21 15:34:56 +03:00
Леонид Юрьев (Leonid Yuriev)
6d15836171
mdbx: use todo4recovery://erased_by_github/
for dead (or temporarily lost) resources.
2022-04-21 15:34:53 +03:00
Леонид Юрьев (Leonid Yuriev)
ed23956e11
mdbx: basic cleanup from dead github and another corrupted services.
2022-04-20 06:42:16 +03:00
Леонид Юрьев (Leonid Yuriev)
39a4a89650
mdbx++: declare mdbx::filesystem
if available.
2022-04-07 18:00:23 +03:00
Леонид Юрьев (Leonid Yuriev)
7b95720f59
mdbx++: add support for legacy experimental/filesystem
.
2022-04-05 22:20:39 +03:00
Леонид Юрьев (Leonid Yuriev)
6f37c8e57f
mdbx: resolve all warnings from MinGW.
2022-03-30 18:13:08 +03:00
Леонид Юрьев (Leonid Yuriev)
d13534967a
mdbx++: fix copy&paste typo inside mdbx::cursor::find_multivalue()
.
2022-03-24 12:11:50 +03:00
Леонид Юрьев (Leonid Yuriev)
3db02d2236
mdbx++: explicitly define noexcept
copy-assignment ops as workaround for AppleClang > 13.3 bug.
...
Try workaround for https://github.com/erthink/libmdbx/issues/278
2022-03-23 18:06:28 +03:00
Леонид Юрьев (Leonid Yuriev)
f84d9f6208
mdbx++: minor refine mdbx::cursor::erase()
.
2022-03-06 00:13:11 +03:00
Леонид Юрьев (Leonid Yuriev)
8c2efe3aaa
mdbx++: add full mdbx::env_managed::geometry()
for convenience.
...
Change-Id: Ib132c776bfc503336582b672de1c44fcac286936
2022-03-05 14:31:02 +03:00
Леонид Юрьев (Leonid Yuriev)
96c93ac2f1
mdbx++: refine mdbx::env::operate_parameters()
and related.
2022-03-03 14:13:10 +03:00
Леонид Юрьев (Leonid Yuriev)
464886ab61
mdbx++: rework/fix move-assignment operators for "managed" classes.
...
Replaces https://github.com/erthink/libmdbx/pull/270 and previous commit.
Fixed a half of https://github.com/torquem-ch/silkworm/issues/575 .
2022-02-23 18:42:09 +03:00
Леонид Юрьев (Leonid Yuriev)
3c574fca99
mdbx++: fix move-assignment operators for "managed" classes.
...
The three same mistakes for `mdbx::env_managed`, `mdbx::txn_managed` and `mdbx::cursor_managed`.
A `derived_managed &operator=(derived_managed &&) = default;`
don't call an inherited `base::operator=()` since it hidded because the
`derived_managed(derived_managed &&) = default;` is also provided.
Replaces/overrides https://github.com/erthink/libmdbx/pull/270 .
2022-02-23 17:58:56 +03:00
Leonid Yuriev
f63f4f8924
mdbx-doc: fix typo in the Doxygen reference.
2022-01-25 20:24:18 +03:00
Leonid Yuriev
03381fa469
mdbx++: clarify comments for mdbx::byte
and char8_t
usage.
...
Related to https://github.com/erthink/libmdbx/issues/263 .
2022-01-21 15:00:34 +03:00
Leonid Yuriev
c588af6aca
mdbx: update Copyright year.
...
Change-Id: Ib3e4c0ac94882c4b2a1e167dd98e6e26dbdf48a4
2022-01-17 11:06:14 +03:00
Leonid Yuriev
c076979225
mdbx++: add workaround for modern libstd++ with CLANG < 4.x
...
Change-Id: Ic82694f4f51bfdb2d6f6f072fdf9af791c0eb6f8
2022-01-17 11:06:07 +03:00
Leonid Yuriev
b5b0a9a284
mdbx++: add to_hex/to_base58/to_base64::output(std::ostream&)
without using temporary objects/buffers/strings.
...
Change-Id: Ideffd0e7f450307e14d780dcdeb2458c1c7e4c18
2022-01-15 18:52:12 +03:00
yperbasis
c25df39cd0
Copy assignment operator for move_result
2022-01-13 21:07:40 +03:00
Leonid Yuriev
70dab667b9
mdbx++: fix missing &
for std::ostream &operator<<()
.
2022-01-13 14:03:51 +03:00
Leonid Yuriev
0df17ed359
mdbx++: disable using C++20 concepts for NDK's CLANG < 14.
2022-01-05 17:47:45 +03:00
Leonid Yuriev
0265c847b8
mdbx++: remove preliminary
label from C++ API.
2021-12-09 02:10:08 +03:00
Leonid Yuriev
739e02655e
mdbx++: disable C++20 concepts for stupid AppleClang 13.x (hotfix).
2021-12-08 05:10:47 +03:00
Леонид Юрьев (Leonid Yuriev)
c2cab7a6a8
mdbx: using clang-format-13
(cosmetics).
2021-12-02 20:22:31 +03:00
sasgas
74d5a42578
mdbx: fix compilation with devtoolset-9 on CentOS/RHEL 7.
...
devtoolset is always using the old ABI
https://bugzilla.redhat.com/show_bug.cgi?id=1546704
https://stackoverflow.com/questions/49393888/how-can-i-use-the-new-c-11-abi-with-devtoolset-7-on-centos-rhel
2021-11-09 13:29:23 +03:00
yperbasis
c714ee9b55
mdbx++: remove noexcept
from potentially throwing txn::put()
.
2021-09-03 23:10:22 +03:00
Andrea Lanfranchi
2395564c17
mdbx++: add cursor::erase()
overloads for key
and for key-value
.
...
Resolves https://github.com/erthink/libmdbx/pull/226
2021-07-27 01:27:57 +03:00
Leonid Yuriev
a8115267a6
mdbx++: disable using C++20 concepts for CLANG < 12.
2021-07-26 05:16:29 +03:00
Leonid Yuriev
65fa0cf8ed
mdbx++: revive encode/decode to hex/base58/base64 (squashed).
2021-07-26 03:53:11 +03:00
Leonid Yuriev
55d1f5e9c0
mdbx++: remove extra noexcept
for buffer::&assign_reference()
.
2021-07-11 02:25:39 +03:00
Leonid Yuriev
15ed0f6a84
mdbx++: workaround for compile-time 'uninitialized' warning (i.e. a GCC's bug) from GCC 10.x with enabled UB-sanitizer.
2021-07-09 17:44:27 +03:00
Leonid Yuriev
ffb8d23632
mdbx++: minor fixes for UN-sanitizer.
2021-07-09 17:44:27 +03:00
Leonid Yuriev
bd2bb51f0f
mdbx++: rework buffer::silo
to avoid use std::string
.
2021-07-06 13:45:26 +03:00
Leonid Yuriev
fa49e5a57b
mdbx++: rename slice::from/to_FOO_bytes()
to `slice::envisage_from/to_FOO_length()'.
2021-07-02 21:20:04 +03:00
Leonid Yuriev
cc6610f42c
mdbx: more/refine C++ crutches for mad MSVC compiler.
2021-06-24 15:42:03 +03:00
Leonid Yuriev
5ae120af80
mdbx-windows: more crutches for MinGW.
...
More for https://github.com/erthink/libmdbx/issues/155
Change-Id: I7de6122ff160372b2dcfd2a0a26e332cb52d0560
2021-05-08 18:38:44 +03:00
Leonid Yuriev
8e078fb708
mdbx++: fix using std::filesystem::path
for iOS <= 13.0
...
Change-Id: I8f75e0698acfb9e0da325f5a3c1e2a513cb43e2e
2021-05-08 00:21:12 +03:00
Leonid Yuriev
c914d417d2
mdbx: refine Doxygen's API description.
...
Change-Id: Ifd326eded287c68c6a95b6c9be22847d6efa5678
2021-05-03 15:00:53 +03:00
Leonid Yuriev
d27e48ae1b
mdbx-windows: rename MDBX_AVOID_CRT
build option to MDBX_DISABLE_MSVC_CRT
.
...
Change-Id: I124c9d86d4a596718bd9671a7c1b538b84c2dd0f
2021-04-30 01:59:48 +03:00
Leonid Yuriev
62ccea031b
mdbx++: add FIXME for buffer::silo
.
...
Change-Id: I0a4a7bb947d019578153b7d09274b3ad0d1496aa
2021-04-20 22:09:48 +03:00
Leonid Yuriev
0dd27a46ee
mdbx++: minor fix constexpr/inline for slice::invalid()
.
...
Change-Id: I48864a61f4fef711117b2e04ac92656267e2d229
2021-04-10 17:48:40 +03:00
Leonid Yuriev
f698f07ff9
mdbx: fix operation for unusual small/large system page size.
...
More for https://github.com/erthink/libmdbx/issues/157
Change-Id: I4f2ed54b50653d0375538b82c48590d1037cd93b
2021-01-29 21:19:58 +03:00
Leonid Yuriev
251eda6fb8
mdbx: HNY!
...
Change-Id: I86c7028001b349e3d06b837dc8e2f7e60fb3b1a2
2021-01-26 07:27:13 +03:00
Leonid Yuriev
4cb8067dce
mdbx++: always provide implementation for mdbx::path == std::string
.
...
Change-Id: I8ef5c1531dc378b4141637ec4ddae3bbc67f1570
2020-10-31 23:24:05 +03:00
Leonid Yuriev
74bf948611
mdbx++: fix slice::encode/decode()
.
...
Change-Id: I56122e47a552e8e343e15bc878c767e34d269069
2020-10-31 23:23:56 +03:00
Leonid Yuriev
586e25c48c
mdbx++: add operator<<(ostream, pair_result)
.
...
Change-Id: I44cc28f7f4f7d65225239d62f5bb8a15a8de16a8
2020-10-31 23:23:46 +03:00