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
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
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
Burak Arslan
efe400264f
mdbx: minor fix msvc build ( #117 ).
2020-09-15 20:03:42 +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
58bcfb006e
mdbx: add mdbx_printf_args() macro.
...
Change-Id: I7fca72f8cc912d8644ecf149b755c78fb3cc7e23
2020-09-10 15:35:43 +03:00
Leonid Yuriev
50c25f479d
mdbx++: more Doxygen descriptions and refinement.
...
Change-Id: Iec4cfa220f140c0fcc858f51283af2f9c4dd7a65
2020-09-10 01:15:35 +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
2bcd2e510e
mdbx: Merge branch 'devel' into c++.
...
Change-Id: Iedfe7e7ae21d08628c24b4dd5a788bc43cced2f5
2020-09-05 13:48:40 +03:00
Leonid Yuriev
54ccb92444
mdbx: skip update meta-geo in read-only mode.
...
Change-Id: I1c9610920ad87dc8110e8d03038ef385220000c8
2020-09-05 11:57:34 +03:00
Leonid Yuriev
c24e566591
mdbx: alter notice/warning/verbose level of some log-messages.
...
Change-Id: I08c3f5cf6489095f04c8becc4818d34b8db61422
2020-09-05 11:48:29 +03:00
Leonid Yuriev
6d7ec5a257
mdbx: enable non-debug logging in non-debug builds.
...
Change-Id: I295de5ef6369a55500b023abc3dcb26f5071c2da
2020-09-05 01:57:02 +03:00
Leonid Yuriev
b1877d08ae
mdbx: rework mdbx_chk & tree-traversal.
...
Change-Id: Idc131539426fe0cbb97a105cff2d0a12b1496bfe
2020-09-05 01:57:02 +03:00
Leonid Yuriev
9a5df2b284
mdbx: refine errors returning from get_page().
...
Change-Id: I2da37d3b35679f345324d6dd97d2a3f634449b56
2020-09-05 01:57:02 +03:00
Leonid Yuriev
6867c13bd1
mdbx: more runtime checks/errors instead of assertions.
...
Change-Id: I843f28b7faeb23f986154dd92a0e2b50d66a1dde
2020-09-05 01:57:02 +03:00
Leonid Yuriev
a758e32f91
mdbx: remove assertions from page_check().
...
Change-Id: Ic157e7fc43d9c3a84e530d0001409ff2a5c1f818
2020-09-05 01:57:02 +03:00
Leonid Yuriev
6e339fc849
mdbx: add bad_page().
...
Change-Id: I5233e4a701ee11fd59d7083576f40f7df3068ddd
2020-09-05 01:57:02 +03:00
Leonid Yuriev
f0de3ff098
mdbx: continued page-check.
...
Change-Id: Id4aa37284a12f49e359a6c9391d2fd5b6acb2ad0
2020-09-05 01:57:02 +03:00
Leonid Yuriev
d6645f84f2
mdbx: more error logging.
...
Change-Id: I3757e587514450634b5d3ebf8721c9ed4ac182f1
2020-09-05 01:57:02 +03:00
Leonid Yuriev
cd6aa4a708
mdbx: parent-page-txnid checking.
...
Change-Id: I6d37326c4ff2aa32587704b971bd650d9221b06f
2020-09-05 01:57:02 +03:00
Leonid Yuriev
cd4f732a87
mdbx: drop internal unused fields.
...
Change-Id: I634d3e0695f300df79129a15da752a23b277a0ce
2020-09-05 00:55:00 +03:00
Leonid Yuriev
b095ad872c
mdbx: add MDBX_ALLDUPS & MDBX_UPSERT, rework handling of others.
...
Change-Id: I27d437540d883935d78242e4fc7e28951ab9f496
2020-09-05 00:26:06 +03:00
Leonid Yuriev
5ec0f5b299
mdbx: refine mdbx_replace_ex().
...
We can skip update only when a data exactly the same,
but user's md_dcmp() may returns zero even data is NOT matches byte-to-byte.
So to skip update the cmp_len fast() should be used instead of md_dcmp().
Change-Id: I6ad0f7cfc6a18722b46e565deef3a544ddf9968a
2020-09-05 00:26:06 +03:00
Leonid Yuriev
33b1cf2931
mdbx++: Initial C++ API (some extra methods are not implemented).
...
Change-Id: I0478d0c94dcd12b52916e87815e5731817407c3c
2020-09-05 00:26:06 +03:00
Leonid Yuriev
89dba59ce2
mdbx: refine/fix handling MDBX_MULTIPLE in the mdbx_cursor_put().
...
Change-Id: I06ac9d73cec01afb492b5c663acf310d19e4900b
2020-09-05 00:26:06 +03:00
Leonid Yuriev
426d207fc4
mdbx: fix page_get() null-defer when DB corrupted.
...
Change-Id: Ia4b5870e6718cd376d25893d33b9c659e3cd151a
2020-09-04 23:56:43 +03:00
Leonid Yuriev
6b1c2ff762
mdbx: fix mdbx_env_open() for re-opening after non-fatal errors.
...
Change-Id: Ibbe9a8e017837a21fe1eeebb86e1b3a7a370e77c
2020-09-01 20:54:15 +03:00
Leonid Yuriev
12e19cedc0
mdbx: minor fix mdbx_replace_ex().
...
Change-Id: I2e1f27b1d73b450643743cf9d4ad35d5cd4547de
2020-08-29 16:36:30 +03:00
Leonid Yuriev
317816d6c7
mdbx: refine/simplify mdbx_cursor_del().
...
Change-Id: Ibd72817a33427483a4440eecc911815420b2e13f
2020-08-29 14:46:15 +03:00
Leonid Yuriev
1d48cb88fe
mdbx: Add mdbx_txn_break().
...
Change-Id: Id38a09a0a95d092d75f2eb4fad2cbd7805cd59d0
2020-08-28 21:20:51 +03:00
Leonid Yuriev
04a77d3bf3
mdbx: add MDBX_ALLDUPS & MDBX_UPSERT, rework handling of others.
...
Change-Id: I27d437540d883935d78242e4fc7e28951ab9f496
2020-08-28 19:08:45 +03:00
Leonid Yuriev
08faeda430
mdbx: refine mdbx_replace_ex().
...
We can skip update only when a data exactly the same,
but user's md_dcmp() may returns zero even data is NOT matches byte-to-byte.
So to skip update the cmp_len fast() should be used instead of md_dcmp().
Change-Id: I6ad0f7cfc6a18722b46e565deef3a544ddf9968a
2020-08-28 16:45:30 +03:00
Leonid Yuriev
88a4b8cb9b
mdbx++: Initial C++ API (some extra methods are not implemented).
...
Change-Id: I0478d0c94dcd12b52916e87815e5731817407c3c
2020-08-28 16:45:30 +03:00
Leonid Yuriev
e3f0db7708
mdbx: refine/fix handling MDBX_MULTIPLE in the mdbx_cursor_put().
...
Change-Id: I06ac9d73cec01afb492b5c663acf310d19e4900b
2020-08-28 16:45:29 +03:00
Leonid Yuriev
c53627f5ac
mdbx: fix null-deref during MDBX_TXN_RDONLY_PREPARE in the MDBX_EXCLUSIVE mode.
...
Change-Id: I20b2bd4137293261a546910c8175be531d38b2c9
2020-08-23 16:28:00 +03:00
Leonid Yuriev
0a75417d5f
mdbx: add pure- & const-function attributes to C API.
...
Change-Id: Ie4d1742f3d4717a0cd1fd5677b9b1ae641193d45
2020-08-23 13:29:44 +03:00
Leonid Yuriev
54a09967a1
mdbx: refine mode_t for lck-file.
...
Change-Id: I7674a3a1c0a5778f0f362faa1d608c25e242d92d
2020-08-06 01:48:56 +03:00
Leonid Yuriev
17380fe079
mdbx: minor fix for MDBX_DBG_LEGACY_MULTIOPEN.
...
Change-Id: I7d1c30699708c4b9e47e1b781e96c9a4b6c2b109
2020-08-06 01:48:56 +03:00
Leonid Yuriev
ffa10a25d6
mdbx: use enums & bool in the C API.
...
Change-Id: I952f578cceb7d02ade16f545d47245d4d9106441
2020-08-06 01:48:56 +03:00
Leonid Yuriev
87de3fc25f
mdbx: add MDBX_TXN_RDONLY_PREPARE.
...
Change-Id: I95647d1679b69d1e97514a45f20d7373174244d5
2020-08-06 01:48:56 +03:00
Leonid Yuriev
1e7a1da14e
mdbx: separate transaction flags.
...
Change-Id: Ib9a0f6946e1ecf35059e2dccc91319ae130c9f9b
2020-08-06 01:48:56 +03:00