mirror of
https://github.com/isar/libmdbx.git
synced 2025-05-14 17:07:50 +08:00
mdbx: merge branch master
into devel
.
This commit is contained in:
commit
b60d8e78c3
36
ChangeLog.md
36
ChangeLog.md
@ -16,6 +16,7 @@ New:
|
|||||||
- Added the `gcrtime_seconds16dot16` counter to the "Page Operation Statistics" that accumulates time spent for GC searching and reclaiming.
|
- Added the `gcrtime_seconds16dot16` counter to the "Page Operation Statistics" that accumulates time spent for GC searching and reclaiming.
|
||||||
- Copy-with-compactification now clears/zeroes unused gaps inside database pages.
|
- Copy-with-compactification now clears/zeroes unused gaps inside database pages.
|
||||||
- The C++ API has been refined to simplify support for `wchar_t` in path names.
|
- The C++ API has been refined to simplify support for `wchar_t` in path names.
|
||||||
|
- Added explicit error message for Buildroot's Microblaze toolchain maintainers.
|
||||||
|
|
||||||
Fixes:
|
Fixes:
|
||||||
|
|
||||||
@ -30,6 +31,7 @@ Minors:
|
|||||||
- Using `ldd` to check used dso.
|
- Using `ldd` to check used dso.
|
||||||
- Added `MDBX_WEAK_IMPORT_ATTRIBUTE` macro.
|
- Added `MDBX_WEAK_IMPORT_ATTRIBUTE` macro.
|
||||||
- Use current transaction geometry for untouched parameters when `env_set_geometry()` called within a write transaction.
|
- Use current transaction geometry for untouched parameters when `env_set_geometry()` called within a write transaction.
|
||||||
|
- Minor clarified `iov_page()` failure case.
|
||||||
|
|
||||||
## v0.12.0 at 2022-06-19
|
## v0.12.0 at 2022-06-19
|
||||||
|
|
||||||
@ -39,11 +41,43 @@ Not a release but preparation for changing feature set and API.
|
|||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
## v0.11.9 (Чирчик-1992) at 2022-08-02
|
## v0.11.10 (the TriColor) at 2022-08-22
|
||||||
|
|
||||||
The stable bugfix release.
|
The stable bugfix release.
|
||||||
It is planned that this will be the last release of the v0.11 branch.
|
It is planned that this will be the last release of the v0.11 branch.
|
||||||
|
|
||||||
|
```
|
||||||
|
14 files changed, 263 insertions(+), 252 deletions(-)
|
||||||
|
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
|
||||||
|
```
|
||||||
|
|
||||||
|
New:
|
||||||
|
|
||||||
|
- The C++ API has been refined to simplify support for `wchar_t` in path names.
|
||||||
|
- Added explicit error message for Buildroot's Microblaze toolchain maintainers.
|
||||||
|
|
||||||
|
Fixes:
|
||||||
|
|
||||||
|
- Never use modern `__cxa_thread_atexit()` on Apple's OSes.
|
||||||
|
- Use `MultiByteToWideChar(CP_THREAD_ACP)` instead of `mbstowcs()`.
|
||||||
|
- Don't check owner for finished transactions.
|
||||||
|
- Fixed typo in `MDBX_EINVAL` which breaks MingGW builds with CLANG.
|
||||||
|
|
||||||
|
Minors:
|
||||||
|
|
||||||
|
- Fixed variable name typo.
|
||||||
|
- Using `ldd` to check used dso.
|
||||||
|
- Added `MDBX_WEAK_IMPORT_ATTRIBUTE` macro.
|
||||||
|
- Use current transaction geometry for untouched parameters when `env_set_geometry()` called within a write transaction.
|
||||||
|
- Minor clarified `iov_page()` failure case.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
## v0.11.9 (Чирчик-1992) at 2022-08-02
|
||||||
|
|
||||||
|
The stable bugfix release.
|
||||||
|
|
||||||
```
|
```
|
||||||
18 files changed, 318 insertions(+), 178 deletions(-)
|
18 files changed, 318 insertions(+), 178 deletions(-)
|
||||||
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
|
Signed-off-by: Леонид Юрьев (Leonid Yuriev) <leo@yuriev.ru>
|
||||||
|
10
src/core.c
10
src/core.c
@ -4814,8 +4814,11 @@ static int txn_spill(MDBX_txn *const txn, MDBX_cursor *const m0,
|
|||||||
txn->tw.dirtyroom += spilled;
|
txn->tw.dirtyroom += spilled;
|
||||||
tASSERT(txn, dirtylist_check(txn));
|
tASSERT(txn, dirtylist_check(txn));
|
||||||
|
|
||||||
if (ctx.iov_items)
|
if (ctx.iov_items) {
|
||||||
|
/* iov_page() frees dirty-pages and reset iov_items in case of failure. */
|
||||||
|
tASSERT(txn, rc == MDBX_SUCCESS);
|
||||||
rc = iov_write(txn, &ctx);
|
rc = iov_write(txn, &ctx);
|
||||||
|
}
|
||||||
|
|
||||||
if (unlikely(rc != MDBX_SUCCESS))
|
if (unlikely(rc != MDBX_SUCCESS))
|
||||||
goto bailout;
|
goto bailout;
|
||||||
@ -9903,8 +9906,11 @@ static int txn_write(MDBX_txn *txn, struct iov_ctx *ctx) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->iov_items)
|
if (ctx->iov_items) {
|
||||||
|
/* iov_page() frees dirty-pages and reset iov_items in case of failure. */
|
||||||
|
tASSERT(txn, rc == MDBX_SUCCESS);
|
||||||
rc = iov_write(txn, ctx);
|
rc = iov_write(txn, ctx);
|
||||||
|
}
|
||||||
|
|
||||||
while (r <= dl->length)
|
while (r <= dl->length)
|
||||||
dl->items[++w] = dl->items[r++];
|
dl->items[++w] = dl->items[r++];
|
||||||
|
@ -221,9 +221,12 @@ static int lck_op(const mdbx_filehandle_t fd, int cmd, const int lck,
|
|||||||
((uint64_t)offset + (uint64_t)len));
|
((uint64_t)offset + (uint64_t)len));
|
||||||
for (;;) {
|
for (;;) {
|
||||||
struct flock lock_op;
|
struct flock lock_op;
|
||||||
STATIC_ASSERT(sizeof(off_t) <= sizeof(lock_op.l_start) &&
|
STATIC_ASSERT_MSG(sizeof(off_t) <= sizeof(lock_op.l_start) &&
|
||||||
sizeof(off_t) <= sizeof(lock_op.l_len) &&
|
sizeof(off_t) <= sizeof(lock_op.l_len) &&
|
||||||
OFF_T_MAX == (off_t)OFF_T_MAX);
|
OFF_T_MAX == (off_t)OFF_T_MAX,
|
||||||
|
"Support for large/64-bit-sized files is misconfigured "
|
||||||
|
"for the target system and/or toolchain. "
|
||||||
|
"Please fix it or at least disable it completely.");
|
||||||
memset(&lock_op, 0, sizeof(lock_op));
|
memset(&lock_op, 0, sizeof(lock_op));
|
||||||
lock_op.l_type = lck;
|
lock_op.l_type = lck;
|
||||||
lock_op.l_whence = SEEK_SET;
|
lock_op.l_whence = SEEK_SET;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user