Leonid Yuriev
bd51e181fb
mdbx: refine comment for mdbx_update_gc()
.
2022-01-31 21:36:57 +03:00
Леонид Юрьев (Leonid Yuriev)
d93a13294a
mdbx: explicit disable -Wattributes
by #pragma
for GCC < 9.
2022-01-27 17:20:12 +03:00
Leonid Yuriev
fe5199b9d1
mdbx: fix/rework PNL checking during search, refine/simplify spilled pages search.
...
Fixes https://github.com/erthink/libmdbx/issues/260 .
Change-Id: I8824f6af2f770c46668ee577aeeeb93b30b17a13
2022-01-26 13:21:21 +03:00
Leonid Yuriev
9ae56332d7
mdbx: fix Coverity warnings.
2022-01-22 18:01:31 +03:00
Leonid Yuriev
03d828834b
mdbx: schedule the release of v0.11.4 for 2022-01-28.
2022-01-21 15:43:17 +03:00
Leonid Yuriev
cd2c5f594c
mdbx: rework checking MAX_PAGENO
and DB upper-size limit.
...
Related to https://github.com/erthink/libmdbx/issues/260 .
2022-01-21 02:25:27 +03:00
Leonid Yuriev
ddef217047
mdbx: relax txn-check rules for auxiliary functions.
2022-01-21 02:13:48 +03:00
Leonid Yuriev
3e28cc2a25
mdbx: allow mdbx_dbi_flags_ex()
for errored transactions.
2022-01-21 02:13:48 +03:00
Leonid Yuriev
8779f665dc
mdbx: fix excessive PNL checking after sort for spilling.
...
This bug triggered only in the DEBUG builds or when the assertion checking is forcibly enabled.
It does not affect any core logic and cannot lead to DB corruption, data loss, and so on.
Fixes https://github.com/erthink/libmdbx/issues/260 .
2022-01-20 15:25:35 +03:00
Leonid Yuriev
52552ebfe3
mdbx++: fix MSVC warnings/errors.
2022-01-19 21:08:01 +03:00
Leonid Yuriev
a6acc9d1a3
mdbx++: fix minor comment typo.
...
Change-Id: Ic169523218b366be0688ab92b76c4120df829ba3
2022-01-17 11:06:27 +03:00
Leonid Yuriev
c588af6aca
mdbx: update Copyright year.
...
Change-Id: Ib3e4c0ac94882c4b2a1e167dd98e6e26dbdf48a4
2022-01-17 11:06:14 +03:00
Leonid Yuriev
f2995ac75b
mdbx++: add assertions for destination-overflow to from/to hex/base58/base64::write_bytes().
...
Change-Id: I5a1f23dcb1dc1942f9d72966a78080eacfacf546
2022-01-15 18:52:12 +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
Leonid Yuriev
b139d8165b
mdbx++: refine line splitting inside to_hex/to_base58/to_base64 to avoid \n
at the end.
...
Change-Id: I53fb1f31ac5fc41567826a9035b0080fd62c8ade
2022-01-15 18:51:56 +03:00
Leonid Yuriev
ef2e390b10
mdbx++: fix from_base64::write_bytes()
.
...
Change-Id: I6c90997bffab45019a77edcf2a9dd35ae80069d3
2022-01-15 18:51:56 +03:00
Leonid Yuriev
51e6d4645c
mdbx++: fix to_base64::write_bytes()
for tail bytes.
...
Change-Id: I60defa11b7e44dcf2ac840160ab0c833484c9d39
2022-01-15 17:22:18 +03:00
Leonid Yuriev
2151be6cde
mdbx: merge branch 'issue-260' into devel.
2022-01-15 15:31:45 +03:00
Leonid Yuriev
7a06cac680
mdbx: fix unexpected EXDEV
(Cross-device link) error from mdbx_env_copy()
...
Fallback to `write()` if `copy_file_range()` syscall returns `EXDEV`.
2022-01-14 12:39:38 +03:00
Leonid Yuriev
1813bf9e53
mdbx: avoid 32-bit pgno_t
overflow during checking PNL on 64-bit platforms.
...
Related to https://github.com/erthink/libmdbx/issues/260 .
2022-01-13 15:42:00 +03:00
Leonid Yuriev
406cafb642
mdbx: treat the UINT64_MAX
value as maximum for given option inside mdbx_env_set_option()
.
2022-01-06 00:37:08 +03:00
Leonid Yuriev
b19ebf0c2e
mdbx: fix minor unused parameter
warning.
2022-01-05 17:47:45 +03:00
Leonid Yuriev
066bb696e3
mdbx: avoid including sys/sem.h
when MDBX_LOCKING != MDBX_LOCKING_SYSV
.
...
Fixes https://github.com/erthink/libmdbx/issues/258 .
2022-01-05 17:47:09 +03:00
Leonid Yuriev
024900ee9c
mdbx: fix/refine handling options.rp_augment_limit
detent while loading GC records.
2022-01-05 11:03:21 +03:00
Leonid Yuriev
ab83d173ac
mdbx: minor refine logging for internal GC-related ops.
2022-01-05 10:50:39 +03:00
Leonid Yuriev
d316bde561
mdbx: minor cleanup comment.
2022-01-05 10:45:23 +03:00
Leonid Yuriev
a6340c6b03
mdbx: minor fix open-MADV logging.
2022-01-05 10:45:15 +03:00
Leonid Yuriev
070ba5ded4
mdbx: check for GCC/clang in debug-includes (insignificant internals).
2022-01-04 13:41:25 +03:00
Leonid Yuriev
6866fa3eaa
mdbx: revert returning MDBX_ENODATA
from cursor-next.
2021-12-30 22:12:04 +03:00
Leonid Yuriev
9511bc491a
mdbx: more unlikely()
.
2021-12-30 19:40:22 +03:00
Leonid Yuriev
ae5df65af0
mdbx: refine page_alloc()
and update_gc()
to reduce looping.
...
Resolves https://github.com/erthink/libmdbx/issues/254 .
2021-12-30 17:36:33 +03:00
Leonid Yuriev
2ba90e63b1
mdbx: remove obsolete current retired-list record from gc before reserve/backlogging free-pages to reduce looping.
2021-12-28 00:10:00 +03:00
Leonid Yuriev
b30ccbde9e
mdbx: don't reserve/backlog free-pages if retired-list was already put into gc.
2021-12-28 00:10:00 +03:00
Leonid Yuriev
c3c088b8c3
mdbx: minor unify gc-update debug logging (cosmetics).
2021-12-28 00:10:00 +03:00
Leonid Yuriev
c70d2d62d1
mdbx: fix mdbx_override_meta()
to avoid false-positive assertions.
...
Fixed https://github.com/erthink/libmdbx/issues/253 .
2021-12-13 13:03:49 +03:00
Leonid Yuriev
4e44dc69f9
mdbx: add MDBX_SET_UPPERBOUND
for cursors.
...
Resolves https://github.com/erthink/libmdbx/issues/250 .
2021-12-13 04:24:34 +03:00
Leonid Yuriev
bee5df20fd
mdbx: fix MDBX_SHRINK_ALLOWED
collision with MDBX_ACCEDE
inside mdbx_env_sync_internal()
.
2021-12-13 04:12:43 +03:00
Leonid Yuriev
6f2c1e52ad
mdbx: add mdbx_cursor_get_batch()
.
...
Resolve https://github.com/erthink/libmdbx/issues/236
2021-12-11 05:58:39 +03:00
Leonid Yuriev
0265c847b8
mdbx++: remove preliminary
label from C++ API.
2021-12-09 02:10:08 +03:00
Leonid Yuriev
f4057b2c3b
mdbx: avoid extra looping inside mdbx_env_info_ex()
.
2021-12-07 01:45:41 +03:00
Leonid Yuriev
839da86cac
mdbx: minor fix handling MDBX_SET_LOWERBOUND
to avoid MDBX_BAD_VALSIZE
.
...
Related to https://github.com/erthink/libmdbx/issues/248#issuecomment-986542620 .
2021-12-07 01:30:43 +03:00
Леонид Юрьев (Leonid Yuriev)
a899056fd1
mdbx: fix extra assertion.
...
Fixes https://github.com/erthink/libmdbx/issues/248 .
2021-12-06 23:28:08 +03:00
Леонид Юрьев (Leonid Yuriev)
c484a92933
mdbx: minor refine prev commit.
2021-12-06 23:00:38 +03:00
Леонид Юрьев (Leonid Yuriev)
da855b13a3
mdbx: rework/simplify mdbx_env_sync_internal()
.
2021-12-04 06:56:44 +03:00
Леонид Юрьев (Leonid Yuriev)
8ef8733ddc
mdbx: minor refine mdbx_env_set_option(MDBX_opt_sync_bytes)
.
2021-12-04 06:55:41 +03:00
Leonid Yuriev
4b886e2a58
mdbx: don't return MDBX_RESULT_TRUE
(-1) from mdbx_env_set_option()
.
2021-12-03 15:33:22 +03:00
Леонид Юрьев (Leonid Yuriev)
d2b15b5958
mdbx: more unlikely()
.
2021-12-02 20:22:37 +03:00
Леонид Юрьев (Leonid Yuriev)
d96bc98244
mdbx: minor refine/fix MDBX_ENODATA
for compatibility.
...
Related to https://github.com/erthink/libmdbx/issues/243
2021-12-02 20:22:37 +03:00
Леонид Юрьев (Leonid Yuriev)
c2cab7a6a8
mdbx: using clang-format-13
(cosmetics).
2021-12-02 20:22:31 +03:00
Leonid Yuriev
0cc3aa3af8
mdbx: remove unneeded #undef P_DIRTY
.
2021-11-26 17:51:37 +03:00