2341 Commits

Author SHA1 Message Date
Leonid Yuriev
8d1a8d3f4f mdbx-make: workarounds for cross-qemu target (running tests for cross-builded library under QEMU).
QEMU 4.2 has problems with extending mmap range while emulating SPARC64 and Alpha platforms.
So as a workaround, just run the test on SPARC64 and Alpha with a fixed database size.

Change-Id: I2d727cd718bde9ee8e8a7eab1be25b5048ef42fd
2020-09-22 00:16:44 +03:00
Leonid Yuriev
e86bc5b901 mdbx-test: avoid looping on MIPS under QEMU.
Change-Id: I0e91bdd21441634dd1a6cfcd00a2e8b9f99034aa
2020-09-21 17:18:07 +03:00
Leonid Yuriev
a7a8631bc3 mdbx: allow sync_file_range() to fail for Valgrind/QEMU cases.
Change-Id: I9aa77d1debfbd0cb18e940946533e4ed758d08e8
2020-09-21 17:18:07 +03:00
Leonid Yuriev
c01750be2e mdbx: provide MDBX_USE_SYNCFILERANGE option.
Change-Id: Icf1f27d6203653b4e2f2180a59a65e958c4d5e2e
2020-09-21 17:18:07 +03:00
Leonid Yuriev
5c3655dff9 mdbx-make: update list of arch'es for cross-gcc and cross-qemu targets.
Change-Id: I20ae4af433524da5a81c6251d0e163154de1d2ef
2020-09-21 17:18:07 +03:00
Leonid Yuriev
27eef5f991 mdbx-test: extends long-stochastic script.
Change-Id: Ifc700c8b456d27d4dad285b88a05700835eee201
2020-09-21 17:18:07 +03:00
Leonid Yuriev
b97edde1f7 mdbx-test: add Valgrind-suppression for msync() from mdbx_mapresize().
Change-Id: I1e303b71382f7d130abdedd53435473316ebf19f
2020-09-21 17:18:01 +03:00
Leonid Yuriev
deb41a10d7 mdbx-test: add Valgrind-suppressions for single-page flush by pwrite().
Change-Id: Id4cc57f936e9f0aaafee72c2997ff0776555ee15
2020-09-21 03:29:38 +03:00
Leonid Yuriev
a2e2e5c8a0 mdbx: allow sendfile() and copy_file_range() to fail for Valgrind/QEMU cases.
Change-Id: I37ee8d652d91a8d2106c782beceaacb13e9f667f
2020-09-21 03:29:38 +03:00
Leonid Yuriev
25e3968199 mdbx: provide MDBX_USE_SENDFILE and MDBX_USE_SENDFILE options.
Change-Id: Icd9a6487ae6e398276a9e720926ff24de5897c1a
2020-09-20 20:16:26 +03:00
Leonid Yuriev
6db7b13266 mdbx-ci: add COVERITY_UNSUPPORTED_COMPILER_INVOCATION and -std=gnu++17 for Coverity.
Change-Id: Id4aa557458bf847ba19ceb1bcdfeef7c0fc6f8e8
2020-09-20 18:11:13 +03:00
Leonid Yuriev
f2ba1f6fdb mdbx-make: use deferred simple variable expansion trick for CXXSTD.
Change-Id: I3852ff0af27c828a1ac73344330b4f5fb91e3f1f
2020-09-20 18:11:13 +03:00
Leonid Yuriev
35e9c6decf mdbx-make: pass STDCXX to sub-make.
Change-Id: Ie48bc62f79c8ce56e2d41828fcea35d0ff29a9bc
2020-09-20 18:11:13 +03:00
Leonid Yuriev
8d63f876d5 mdbx-make: add CXXSTD to MDBX_BUILD_FLAGS.
Change-Id: I173ff6e21c9131a8c40b834adba4615aaf103b08
2020-09-20 18:11:13 +03:00
Leonid Yuriev
765a18ed59 mdbx_chk: support for checking using specified meta-page.
Change-Id: Iadb930154acb966f03aa1dec9cc7cbdc76779f05
2020-09-19 02:55:19 +03:00
Leonid Yuriev
d9daf2944d mdbx: add env_open_for_recovery() (squashed).
Change-Id: I0151b21610def433745c33d1f6e0b66ce655d1a9
2020-09-19 01:48:24 +03:00
Leonid Yuriev
b321f67ed2 mdbx: Merge branch 'master' into devel.
Change-Id: I4f180753fe52b54f37f4fd12af2ba1b3ca541726
2020-09-19 01:47:12 +03:00
Leonid Yuriev
73647a5e46 mdbx: fix/refine mdbx_walk_tree() for working with invalid/corrupted DB.
Change-Id: I2594b785f675319027ff129d12683c4392e6e2f4
2020-09-19 01:44:21 +03:00
Leonid Yuriev
6a99303ec1 mdbx: fix mdbx_strerror() for MDBX_BUSY error.
Change-Id: Iea02f1daa3f52a9b737366e9af3c7def748ab523
2020-09-18 23:57:35 +03:00
Leonid Yuriev
e762442917 mdbx: don't resize mapping beyond used part of DB for read-only txn.
This allow reading extra large DB when used part is acceptable for current platform, i.e. reading DB >4G on a 32-bit platform.
2020-09-18 15:02:36 +03:00
Leonid Yuriev
488a272f8b mdbx: more for opening large DB from 32-bit env.
- return `MDBX_TOO_LARGE` only when used part of DB is too large for current platform;
- auto lowering both of `mm_geo.lower` and `mm_geo.upper` if the used part of DB is acceptable for current platform;

Change-Id: If67109ebb96063451c50f279c473ed38355a098a
2020-09-18 13:34:34 +03:00
Leonid Yuriev
e2216f70f5 mdbx++: minor refine/add comments.
Change-Id: I8e33a762ea86584a63813cf6c3814a95ba44f37b
2020-09-16 01:17:47 +03:00
Burak Arslan
efe400264f
mdbx: minor fix msvc build (#117). 2020-09-15 20:03:42 +03:00
Leonid Yuriev
fd57088906 mdbx++: add cursor::bind() and cursor_managed' constructor.
Change-Id: I78eb5dbe494a0ca6c480c5854096c0849e9c4b07
2020-09-15 02:32:04 +03:00
Leonid Yuriev
10b170c6cd mdbx: add mdbx_cursor_create() and mdbx_cursor_bind().
Change-Id: I223de3cca7865d58f17a59ab27ec6be730e04a90
2020-09-15 02:05:25 +03:00
Leonid Yuriev
234d65dc9d mdbx++: update copyright & license note.
Change-Id: If6aac3dec6d05247aec5af956385066619685c35
2020-09-14 21:19:56 +03:00
Leonid Yuriev
cacc4aa829 mdbx++: changes after codereview-1 (part 2 of 2).
Change-Id: I8e1ca134bb8c5d447895f116247dfd12fa6871f0
2020-09-14 21:19:56 +03:00
Leonid Yuriev
04b0d258ff mdbx++: changes after codereview-1 (part 1 of 2).
Change-Id: If58c4281ce29f95fd566bc615082963a9500c381
2020-09-14 17:18:20 +03:00
Leonid Yuriev
e40dfb771e mdbx-ci: workaround for MSVC-2019 optimizer bug.
Related to https://github.com/erthink/libmdbx/issues/116

Change-Id: I8d1a7248bcf3e4369ffb7600cedee8e5bc5bd95c
2020-09-14 03:48:59 +03:00
Leonid Yuriev
5798155892 mdbx++: updates tested compilers list.
Change-Id: I57e04ec29fbb6d7db43abb5174cbc64a116c1aa0
2020-09-14 02:42:48 +03:00
Leonid Yuriev
da151e52a7 mdbx++: hide/move trouble_location to unused section.
Change-Id: If0cb1ae18e164819f916ff6fc1b5e6e487f50368
2020-09-14 02:23:19 +03:00
Leonid Yuriev
17d9ed31f9 mdbx: support for building by GCC 4.8
Change-Id: I4ad5c5be60233ae68936e0cbca1a0f01ec786bad
2020-09-13 21:22:41 +03:00
Leonid Yuriev
1bc49f680d mdbx++: more songs&dances about constexpr for old/mad compilers.
Change-Id: I00d7629ea9009b918f687f1e2a9f5ca8adba5ac2
2020-09-13 21:22:41 +03:00
Leonid Yuriev
6c70a7fe11 mdbx++: enables C++ API for amalgamated source code.
Change-Id: Ie73f32ee6b9a565eee69fa7267798a0fd67db4b0
2020-09-13 21:22:41 +03:00
Leonid Yuriev
cd4caeb03d mdbx: add mdbx_panic() to C API.
Change-Id: I009a7889311b57ae2210822a8087889f900919f8
2020-09-10 15:37:59 +03:00
Leonid Yuriev
58bcfb006e mdbx: add mdbx_printf_args() macro.
Change-Id: I7fca72f8cc912d8644ecf149b755c78fb3cc7e23
2020-09-10 15:35:43 +03:00
Leonid Yuriev
369612a9b2 mdbx: Merge branch 'master' into c++.
Change-Id: I7431973ca96afe98d991ffd0a876a15e6ed94714
2020-09-10 01:33:32 +03:00
Leonid Yuriev
50c25f479d mdbx++: more Doxygen descriptions and refinement.
Change-Id: Iec4cfa220f140c0fcc858f51283af2f9c4dd7a65
2020-09-10 01:15:35 +03:00
Leonid Yuriev
3fb12d1f5f mdbx: adds explicit note about the telegram group.
Change-Id: I7c48575c6a06822539c9abdeae334536266543e3
2020-09-08 20:05:23 +03:00
Leonid Yuriev
16912b8a40 mdbx-ci: allow builds using MSVC-2019 to fail due to internal compiler errors.
At least the MSVC 19.27.29111.0 hang up during code generation/optimization due to its own internal errors.

Related to https://github.com/erthink/libmdbx/issues/116

Change-Id: I016769b38dea800da5450bd33fb241f145ff24da
2020-09-07 20:49:40 +03:00
Leonid Yuriev
c17ab74521 mdbx: add link to documentation & C++ API.
Change-Id: Ib61ab37b9083ef088920cba8e331f71776b191cd
2020-09-07 16:15:22 +03:00
Leonid Yuriev
7272403cfd mdbx-doc: simplify Doxygen TOC.
Change-Id: I9f433628433fd8deea6c4128c4e1452bcadfba49
2020-09-07 15:21:21 +03:00
Leonid Yuriev
64e35a1e44 mdbx-doc: add and describe MDBX_SYNC_DURABLE.
Change-Id: Id51e8c764a073e7c502d8d0b95ace0e14510e85b
2020-09-07 12:38:08 +03:00
Leonid Yuriev
f393ae1c51 mdbx-doc: fix typos.
Change-Id: Iff6be053a796f57cc89e29e016a52b7654953cda
2020-09-07 12:38:08 +03:00
Leonid Yuriev
9249297d31 mdbx: fix MSVC compiler version requirements.
Change-Id: Iabf7ab571ca887bd7995ae6293d3c70bb85a947b
2020-09-07 12:38:08 +03:00
Leonid Yuriev
538d2e4d62 mdbx: skip update meta-geo in read-only mode.
Change-Id: I1c9610920ad87dc8110e8d03038ef385220000c8
2020-09-07 12:38:08 +03:00
Leonid Yuriev
81f82ae7b3 mdbx++: added partial doxygen descriptions and refined some methods.
Change-Id: I98bd4cb6e296970abbd40ffa049eff6051f30135
2020-09-07 03:10:25 +03:00
Leonid Yuriev
5cb6f02770 mdbx++: add mdbx::fatal constructors for goofy compilers.
Change-Id: I5a26b34eac1b7ee9e9c5d7ca060a2adea30e68aa
2020-09-05 14:05:09 +03:00
Leonid Yuriev
2bcd2e510e mdbx: Merge branch 'devel' into c++.
Change-Id: Iedfe7e7ae21d08628c24b4dd5a788bc43cced2f5
2020-09-05 13:48:40 +03:00
Leonid Yuriev
ab9f47a5fe mdbx: fix MSVC compiler version requirements.
Change-Id: Iabf7ab571ca887bd7995ae6293d3c70bb85a947b
2020-09-05 12:16:00 +03:00