1294 Commits

Author SHA1 Message Date
Leonid Yuriev
e3ff44d01b mdbx-cross-ci: move alpha-linux-gnu-gcc into CROSS_LIST_NOQEMU.
Change-Id: I36e72126131f87db0b1394b293a1e009da207ee1
2018-11-26 19:18:11 +03:00
Leonid Yuriev
f778f4a795 mdbx: add MDBX_SAFE4QEMU option for testing under QEMU.
Change-Id: Ide674e0125e2746f73a7ba44828316a60633e887
2018-11-26 19:08:30 +03:00
Leonid Yuriev
9379ba7733 mdbx-make: add '--copy' testcase for check-singleprocess target.
Change-Id: I76946e111def7a095c01368f04f9edd1a3b31569
2018-11-26 19:06:49 +03:00
Leonid Yuriev
cbdb10a05c mdbx-test: fix/refine entropy_ticks() for ARM.
Change-Id: I03b10edfcbee33c1b3107a0c1a5714aac61cf12f
2018-11-26 18:52:31 +03:00
Leonid Yuriev
68be9b39a8 mdbx-make: fix/refine recommended package-list for cross-build (minor).
Change-Id: I76d6972f5557cadb70a0ba8bf5802364762adb1c
2018-11-26 17:08:47 +03:00
Leo Yuriev
f55e1ec5cc mdbx-windows: more safety/robustness for DB shriking. v0.2.1 2018-11-22 17:50:49 +03:00
Leo Yuriev
35f95e8ca2 mdbx-windows: always susppend local threads while resize DB (workaround for Windows kernel bug).
We should not concern about performance on Windows platform,
it just unreasonable. Therefore just always suspend the local
threads to avoid this issue.

This resolves https://github.com/leo-yuriev/libmdbx/issues/48
2018-11-22 14:19:49 +03:00
Leonid Yuriev
ee7ebe438c mdbx: fix AddressSanitizer issue for mdbx_page_loose (minor, not a bug).
Change-Id: I0e550dabdeda92759c28d4566104ff07a92d83bb
2018-11-22 02:52:25 +03:00
Leonid Yuriev
f626acb398 mdbx: relax DBI-sequences for concurrent open DBI-handles for present tables.
Change-Id: I7f07d2e716074bd9c2847aeb062e366f46cca214
2018-11-19 13:31:44 +03:00
Leo Yuriev
eda424ff71 mdbx: rename __always_inline. 2018-11-06 21:08:28 +03:00
Leonid Yuriev
d5320d9252 mdbx: silently put mm_geo.now into [geo.lower...geo.upper] boundaries.
Copy-with-compaction by previous version of libmfbx could produce
DB-file less than meta.geo.lower bound, in case actual filling
is low or no data at all.

This is not a problem as there is no damage or loss of data.
Therefore it is better not to consider such situation as an
error, but silently correct it.

Change-Id: Ia662656cc3584c07efcfbdfc80f80e3c76e6dd59
2018-11-05 14:34:12 +03:00
Leonid Yuriev
3c684010e3 mdbx-tools: fix minor MSVC warnings.
Change-Id: If8b042e2d84bfed7f8b0a81a4d75d7be7e7aa7a9
2018-11-05 00:31:58 +03:00
Leonid Yuriev
aa52cb395f mdbx: fix typo in mdbx_limits_dbsize_max().
Change-Id: Ie55e3ca108ac6aab9a41d65f316a3d5ff5ff6f1f
2018-11-05 00:18:41 +03:00
Leo Yuriev
73c7742db4 mdbx-test: fix osal_actor_poll() for 32-bit builds.
Change-Id: I36b2f955295d8ca5435a68737c0c2e7f069bfe34
2018-11-05 00:02:48 +03:00
Leonid Yuriev
c3432c158e mdbx-test: add checks for db-copy after the basic testcase.
Change-Id: I5e7d343266c66418a8798d272e697e1c3d5c775b
2018-11-05 00:02:48 +03:00
Leonid Yuriev
24d42c1583 mdbx: add db-copy testcase.
Change-Id: Ib554880ebbabcb5dfc55bdb3c71767d0fa1630fd
2018-11-05 00:02:48 +03:00
Leonid Yuriev
40e3f735ab mdbx-tests: cleanup/simplity code (minor).
Change-Id: I9813ed3a29b331c1f995ce76766709f454bb49c2
2018-11-04 20:34:16 +03:00
Leonid Yuriev
12174187e8 mdbx-tests: add osal_removefile().
Change-Id: Ifdacd1f799e3ed12f6b83bcdef0effbc0c41011c
2018-11-04 20:34:16 +03:00
Leonid Yuriev
2770e193b6 mdbx: take in account shrink/growing thresholds while copy-with-compactification.
Change-Id: Id93e62089819dfcc8cbc83620e0bdd806d8c1950
2018-11-04 20:34:16 +03:00
Leonid Yuriev
83f1effff1 mdbx: refine mdbx_env_copy() internals.
Change-Id: I9e8f0dc87398564524a5ec98eda2cb9bde100909
2018-11-04 20:34:16 +03:00
Leonid Yuriev
629637d95e mdbx-osal: add mdbx_fseek().
Change-Id: I5744aa3ba51bd1acaeedd866e6b21a1330c3f711
2018-11-04 20:34:16 +03:00
Leo Yuriev
06cb8b45b2 mdbx: fix PRIuPTR/PRIu64 for 32-bit builds.
Change-Id: Ic6462666de666840bc77e0e50fd0d8cd36a125b7
2018-11-04 20:34:16 +03:00
Leonid Yuriev
2d5cba61ed mdbx: fix assertion.
Change-Id: Ib0f19394c42f810f74e3889c21f62ae40ec0f2ea
2018-10-21 21:34:08 +03:00
Leonid Yuriev
124c5a6751 mdbx: fix mdbx_txn_abort().
This resolves https://github.com/leo-yuriev/libfpta/issues/20
2018-10-21 20:27:49 +03:00
Leonid Yuriev
3bae0723b7 mdbx: refine mdbx_mutex_failed(). 2018-10-21 20:27:49 +03:00
Leonid Yuriev
5400ef6512 mdbx-windows: fix mdbx_assert_fail(). 2018-10-21 20:27:49 +03:00
Leonid Yuriev
718f997502 mdbx-windows: workaround for Windows10 bugs.
This resolves https://github.com/leo-yuriev/libmdbx/issues/47
2018-10-21 20:27:49 +03:00
Leonid Yuriev
c2f850b566 mdbx-windows: STATIC_ASSERTs for atomic ops.
Change-Id: I9797eece26db54e5f4a19f82d004ff18bdc138d6
2018-10-21 20:27:34 +03:00
Leonid Yuriev
f93cca3d14 mdbx-windows: minor simplify MDBX_srwlock.
Change-Id: I1db8e7dab2a3c764fdbe64923cfaab238eacc77e
2018-10-21 20:27:05 +03:00
Leonid Yuriev
ecf214ca04 mdbx-windows: add MDBX_AVOID_CRT.
Change-Id: I08233d777b318037372ec250c754f093b3047c94
2018-10-19 15:16:33 +03:00
Leonid Yuriev
06e39e2728 mdbx: fix mdbx_dbi_sequence().
Change-Id: Ic620896ef42c1c2d85c07c146b72e773ab43a67d
2018-10-19 13:33:54 +03:00
Jerry.Wang
2c643d5b53 README.md : added link to mdbx.NET 2018-10-17 11:28:24 +03:00
Leonid Yuriev
3c4e9443ae mdbx: allow devel-signatures (for Miranga-NG).
Binary format of v0.1.x and v0.2.x is frozed.

This commit allows to open DBs created early by devel-versions of libmdbx.
It seems to be required for Miranda-NG users, but no one else.

Change-Id: Icf1d0477dcc3d212e03c87ab8c5255c3382425e5
2018-10-15 12:30:24 +03:00
Leonid Yuriev
d2bfb2e489 mdbx: allow pre-define mdbx_malloc/mdbx_free macros.
Related to https://github.com/leo-yuriev/libmdbx/issues/43#issuecomment-429625047

Change-Id: Icaee4ba62003e6eacef9f938bdea19426623b5da
2018-10-14 19:06:42 +03:00
Leonid Yuriev
30a80ff07c mdbx: re-enable usage of lck-file in MDBX_EXCLUSIVE mode.
Otherwise we should prohibit running read-only and write
transactions simultaneously, but no reliable way to do this.

Change-Id: I8805f10b37ffcddb612d869309b1cd5e04cfcc1e
2018-10-14 18:15:26 +03:00
Leonid Yuriev
582adda628 mdbx-windows: fix mdbx_strdup() usage.
Fix commit e229dbe9dca1ff117a714007cc3811c01ba98b8b (12 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43).

Change-Id: Ic63864d736319ccba37518a50590f4e21282a451
2018-10-14 17:36:15 +03:00
Leonid Yuriev
ae83982811 mdbx-windows: setup DllMain() as entry and don't linking with CRT.
17 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: Ie3b37633ab081ca4ba2dc485e67de96df032a3df
2018-10-14 15:03:52 +03:00
Leonid Yuriev
25ab7da33e mdbx-windows: _NO_CRT_STDIO_INLINE to avoid dependency from CRT.
16 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: Ie5d33e2a4f1fd281a28eaa6686aaf921ecc956b4
2018-10-14 15:03:38 +03:00
Leonid Yuriev
96491db229 mdbx-windows: building and linking mdbx_ntdll_extra.lib
15 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: I6241d08f14dcd59c6c55aa26660bdec233fb3c94
2018-10-14 15:03:17 +03:00
Leonid Yuriev
d520df6a13 mdbx-windows: add ntdll.def for building ntdll.lib
14 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: I492b4be913f0a14540e7a80b53c2a24623dfeb07
2018-10-14 15:01:15 +03:00
Leonid Yuriev
cad9cea33b mdbx-windows: use _wcsnicmp() instead of wcsnicmp() to avoid dependency from CRT.
13 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: I880433ddaf364a7e2b5de104ccf8689b93754ec5
2018-10-14 15:00:43 +03:00
Leonid Yuriev
e229dbe9dc mdbx-windows: add mdbx_strdup() to avoid dependency from CRT.
12 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: Ib1379d75dc25e34f56daf8988848c41f59b6cd6b
2018-10-14 15:00:16 +03:00
Leonid Yuriev
b47badb3ee mdbx-windows: rework mdbx_memalign_alloc()/mdbx_memalign_free() to avoid dependency from CRT.
11 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: Id1a76f88588251cab9a93aa9753021b30159b09a
2018-10-14 14:59:37 +03:00
Leonid Yuriev
f49741b4f8 mdbx-windows: refine mdbx_vasprintf() to avoid dependency from CRT.
10 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: I95c4583c27503eb4e9221b212b34474dfb561e6d
2018-10-14 14:59:09 +03:00
Leonid Yuriev
80ccb31008 mdbx-windows: avoid use strerror() from CRT.
9 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: I53b770e911ff8e7d4e084a323a374d09ea516986
2018-10-14 14:58:30 +03:00
Leonid Yuriev
4dea5c2719 mdbx-windows: use _snprintf() and _vsnprintf() to avoid dependency from CRT.
8 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: I335a12344b0f0d63462ac4195fafdb60f981f182
2018-10-14 14:57:34 +03:00
Leonid Yuriev
ded5269937 mdbx-windows: rework mdbx_assert_fail() and mdbx_panic() to avoid dependency from CRT.
7 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: I40dc8d6a7d1d955c13c7d328ee904f0e6f30b248
2018-10-14 14:57:03 +03:00
Leonid Yuriev
ae2875e248 mdbx: avoid on-stack allocation/chkstk inside mdbx_check4nonlocal().
6 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: Ib55a27c4859ff25e5b779a4514cd2e625ab99013
2018-10-14 14:56:32 +03:00
Leonid Yuriev
aa64597e8b mdbx: avoid on-stack allocation/chkstk inside mdbx_env_walk().
5 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: Iadb833ff38dbd0922eda69238b365f5906b9109f
2018-10-14 14:56:04 +03:00
Leonid Yuriev
180c605cac mdbx: avoid on-stack allocation/chkstk inside mdbx_reader_check0().
4 of 17 for https://github.com/leo-yuriev/libmdbx/issues/43

Change-Id: I31a8396ccc5db32cbd1816593861d2ee4325d09f
2018-10-14 14:55:30 +03:00