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
aa7695c513
mdbx++: Add support for C++17 polymorphic allocators.
...
Change-Id: I76054829551c247a4d8f81288fc47db47ead0288
2020-08-28 16:45:30 +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
3bcf808005
mdbx: separate and describe MDBX_DB_ACCEDE.
...
Change-Id: I1a846d196eb00138c1c5ec453537757b1df78d31
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
Leonid Yuriev
5e43ee61a2
mdbx: drop/deprecate MDBX_MAPASYNC.
...
Change-Id: I472f97f568a32325eb056c8ee4d2f2350a473bda
2020-08-06 01:48:56 +03:00
Leonid Yuriev
135bead730
mdbx: disable warning C4204 for MSVC.
...
Change-Id: Idf7246f5ee349294cea1ed15d69daa49e4dddedb
2020-07-31 01:33:16 +03:00
Leonid Yuriev
7ce33be933
mdbx: fix zero-length arrays for C++.
...
Change-Id: I24ee4b34064f1face40d63861fb2f8982b922f7d
2020-07-31 01:33:16 +03:00
Leonid Yuriev
f4021c8028
mdbx: refine mdbx_dump_val().
...
Change-Id: I72dac7c44c842d16d6b8776248ba20014d0709a9
2020-07-31 01:33:16 +03:00
Leonid Yuriev
0a01b46112
mdbx: add mdbx_thread_register() and mdbx_thread_unregister().
...
Change-Id: I605bc75a20631e781043fafcc26f5e59cb40adaa
2020-07-31 01:33:16 +03:00
Leonid Yuriev
b91918b027
mdbx: add mdbx_env_get_maxdbs().
...
Change-Id: Ie4bdd2f8a46130f277ef98861a5fca98f55bad54
2020-07-31 01:33:16 +03:00
Leonid Yuriev
9e90718bd5
mdbx: add check_env().
...
Change-Id: Iff9258d1e31349da77ef030cfe6da7bcfc5c5a19
2020-07-31 01:33:16 +03:00
Leonid Yuriev
0387d6f6d4
mdbx: rename MDBX_ENV_CHECKPID.
...
Change-Id: Id0afbea99b0747c6d7a5062c1c4a82ebc69f4f40
2020-07-31 01:33:16 +03:00
Leonid Yuriev
1e3c4dc0ef
mdbx: define & use bool type for C API.
...
Change-Id: Icb6cd635a4813bfc92d31bdc527414bdddce4a63
2020-07-31 01:33:16 +03:00
Leonid Yuriev
c778d3cfd4
mdbx: bump version to 0.9.x (not a release, but API changes).
...
Change-Id: I756f1224739df53d8503cf308c2c908f6ecd3fd1
2020-07-31 00:45:34 +03:00
Leonid Yuriev
dcd61289d8
mdbx-doc: more for Doxygen (refs, build options).
...
Change-Id: I8b15bce3d6638a24bdafa3171ae10f01311862d7
2020-07-29 02:18:44 +03:00
Leonid Yuriev
a902538e34
mdbx: more Doxygen tags (almost done).
...
Change-Id: I696e717e37a905f68af059c51f9df327c257332e
2020-07-24 22:49:21 +03:00
Leonid Yuriev
2cd7fcb16d
mdbx: fix minor Coverity issues.
...
Change-Id: I21c44de18e4e620ecec38ec837446150736faf79
2020-07-24 17:43:35 +03:00
Leonid Yuriev
5f4f828bae
mdbx-doc: provide non-API docs via doxygen (squashed).
...
Change-Id: Ie33858517f964f794ec182a1e8bb630730a0f172
2020-07-23 18:44:32 +03:00
Leonid Yuriev
3d31884c3b
mdbx-chk: always skip key ordering checking to avoid MDBX_CORRUPTED
when using custom comparators.
...
Change-Id: Ieb6ea4a1c36b0e661afc13da365505ffbb5d0b5e
2020-07-23 11:47:05 +03:00
Leonid Yuriev
9720ed39f5
mdbx: using enum
instead of #define for flags/modes.
...
Resolve https://github.com/erthink/libmdbx/issues/108
Change-Id: I45897300375d2b5b9361aaba81dadcf9801fe3cf
2020-07-08 02:26:46 +03:00
Leonid Yuriev
2e0d2e65af
mdbx: fix minor typos.
2020-07-07 23:16:43 +03:00
Leonid Yuriev
e989cb05ed
mdbx: deprecate mdbx_dbi_open_ex() and custom comparators.
...
Change-Id: I1d20f77b9ba5d8d5ec891df17019377afb466b06
2020-07-07 19:33:59 +03:00
Leonid Yuriev
fab6ddee14
mdbx: add MDBX_DEPRECATED macro.
...
Change-Id: I87e14b37a6d152fa1f69f4a74e16244870dedb0f
2020-07-07 19:33:17 +03:00
Leonid Yuriev
3351c1f869
mdbx: implements remapping of the database file when it it possible.
...
Change-Id: Ida15ba1f396a33b2c6063e680dff612f39a9608f
2020-07-06 16:23:52 +03:00
Leonid Yuriev
2d0a5c42a9
mdbx: avoids unnecessary remap in case geometry changed concurrently by another process(es).
...
Change-Id: Ibf3a90bc79b1e8e0fa752dabc21b129a697c08d4
2020-07-06 14:35:41 +03:00
Leonid Yuriev
5dbb0b4cfe
mdbx: rename internal flags & fields for clarity.
...
Change-Id: I79d6d8e88b0b4c30cbb8a464ca17f07dc2ab44c6
2020-07-06 14:35:41 +03:00
Leonid Yuriev
c22749a630
mdbx: add TODO for auto-recovery.
...
Change-Id: I7d5fd83a2fdeaec0501ba0339bbe865d06356bad
2020-07-05 00:34:32 +03:00
Leonid Yuriev
e6f5998b76
mdbx: refine mode bits while auto-creating LCK-file.
...
Change-Id: Ideb603cf6a1709188b3c121a9d6bf2097b9c244d
2020-07-05 00:34:32 +03:00
Leonid Yuriev
e6eeed6cf2
mdbx: return MDBX_CORRUPTED in case all meta-pages are weak and no other error.
...
Change-Id: I38c85738d8ccdb87856fa1a6e989ddaf75109722
2020-07-05 00:34:32 +03:00
Leonid Yuriev
5a25c7c5fb
mdbx: fix __pure_function & __const_function for CLANG & C++ exceptions.
...
This is crutch for https://bugs.llvm.org/show_bug.cgi?id=43275
Change-Id: I6d29456cd83f8e713a5b1f6b50ac721bf985148f
2020-07-05 00:34:23 +03:00
Leonid Yuriev
505ee31635
mdbx: add __fallthrough workaround for LCC.
...
Related to https://bugs.mcst.ru/bugzilla/show_bug.cgi?id=5093
2020-06-26 03:28:15 +03:00
Leonid Yuriev
0afc21eed9
mdbx: add mdbx_get_keycmp() & mdbx_get_datacmp().
...
Change-Id: I11f8a54f7eb21b0bab575c8f6b89081b7eaf1bb8
2020-06-24 17:15:56 +03:00
Leonid Yuriev
428f753c03
mdbx: add key-to-value functions.
...
Change-Id: Ie0acd8c58833047931444fd9d94d5b82e6d541bb
2020-06-24 17:15:56 +03:00
Leonid Yuriev
0fc2d39cce
mdbx: allow mixind with/without MDBX_WRITEMAP for the same database.
...
Change-Id: I916bb9e9b44a58cf78786e76a8c42d62e0bfc579
2020-06-20 23:55:15 +03:00
Leonid Yuriev
35313d18bc
mdbx-posix: refine mdbx_lck_init(), allow multi-opending with MDBX_LOCKING_SYSV.
2020-06-15 12:51:35 +03:00
Leonid Yuriev
e008f3132d
mdbx: support for huge transactions (MDBX_HUGE_TRANSACTIONS option).
...
Change-Id: I5d6cce6a7fb816add8cb4c066cc50f31cdebf9d5
2020-06-13 03:06:20 +03:00
Leonid Yuriev
7ab9d24d3b
mdbx: fix env_set_geometry() for opened-env + outside-txn case.
...
Change-Id: I4526aa8011895ef7b5529995503966117c37e107
2020-06-08 19:12:12 +03:00
Leonid Yuriev
03cc19babb
mdbx: preserve error from env_set_geometry() inside setup_dxb().
...
Change-Id: I8dae0b38eb09cfaa07cdd80cb37dc414e2f99d7a
2020-06-08 19:12:12 +03:00
Leonid Yuriev
0117473cbc
mdbx: bump version to 0.8.x
...
Change-Id: I6d2a1a3b04341461288e18c66d11e79d343750b0
2020-06-05 03:00:43 +03:00
Leonid Yuriev
36dc9e26b6
mdbx: avoid forward-invalidation of DBI-handle when it just closing.
...
Change-Id: I379f07c2eae9ea68ddf554d10d7d1deed1a00d2b
2020-06-04 12:24:11 +03:00
Leonid Yuriev
0146b3e2c0
mdbx: avoids using pwritev() for single-writes (up to 10% speedup for some kernels & scenarios).
...
Change-Id: I71fbf0e113b1de4d05b2a43e8532a977c42b8f91
2020-05-29 18:39:43 +03:00
Leonid Yuriev
a159ae4b06
mdbx-tools: fix using ENODATA for FreeBSD.
...
Change-Id: I3092e79116de96aa5e12e61e0963dc7545a1cf1b
2020-05-27 23:16:12 +03:00
Leonid Yuriev
ea353471d5
mdbx: fix minor typo.
...
Change-Id: I02ab17d1867e8b1a0b9ef971c9922688eca9dc7c
2020-05-27 21:48:14 +03:00
Leonid Yuriev
1f301e7e6f
mdbx: explicit sync lck-file after re-write/re-create.
...
Change-Id: I2fad76b1d04e4b0cd2ca08cb722bd819153f9824
2020-05-27 21:48:14 +03:00
Leonid Yuriev
5cc1cb3f87
mdbx: add mdbx_dbi_dupsort_depthmask().
...
Change-Id: Ib056663f26baea517d6f2b9d58cd64c643619ef9
2020-05-25 14:53:38 +03:00
Leonid Yuriev
51a016245a
mdbx: using couple of condvars/events to avoid glitches on Windows.
...
Change-Id: I3256a8dcbb95c78e8dea3eb31ca73f42c58d2f61
2020-05-24 13:29:55 +03:00
Leonid Yuriev
a2bdbc97dc
mdbx: truncate clk-file when DB closed in sync-state.
...
Change-Id: I2e2438606118e3aa3fa9d60811fea99994403d32
2020-05-23 01:34:52 +03:00
Leonid Yuriev
86a4085bf9
mdbx-windows: minor cleanup lck_downgrade().
...
Change-Id: I7f36baefe3e3d76083171ae0c0f97d21ad1e877a
2020-05-23 01:34:52 +03:00
Leonid Yuriev
d1d65f8090
mdbx: removes wrong condition from the assertion.
...
Fixes https://github.com/erthink/libmdbx/issues/105
I decided to remove the extra check, since a sub-cursor cannot return data
and there is no point in adding assignments just for this check.
Change-Id: I6a983930abb37b8f6ab768602763495572adf7fd
2020-05-22 22:12:08 +03:00
Leonid Yuriev
78e592579a
mdbx: refine update_gc() for small pages with huge transactions.
...
Change-Id: I66080e11a780a6a711691918179bc21d9a121347
2020-05-17 19:16:35 +03:00
Leonid Yuriev
d3e609d7ff
mdbx: simplify page-merge for LEAF2.
...
Change-Id: I25ad34f02b86b47562fc3c74f5454432f687cbde
2020-05-17 19:16:19 +03:00
Leonid Yuriev
5e2067decd
mdbx-tools: use MDBX_ACCEDE to open DBI with custom comparators.
2020-05-15 22:03:29 +03:00
Leonid Yuriev
6fa2748fc7
mdbx-tools: refine mdbx_stat.
2020-05-15 22:03:29 +03:00
Leonid Yuriev
efe4fd2cc9
mdbx-tools: use equal-or-greater comparator for dont-check-ordering mode.
2020-05-15 22:03:29 +03:00
Leonid Yuriev
3f0d2a6ac2
mdbx-tools: extends dump/load to support all mdbx attributes.
...
Change-Id: I04772ce0083c46b70f5342e92c7509c9a425724d
2020-05-15 22:03:29 +03:00
Leonid Yuriev
8f31aad0fb
mdbx: use MAX_TXN internally (cosmetics).
...
Change-Id: Ic8171dbfa8bb32272e46e939223316f6182d3a7a
2020-05-15 18:13:10 +03:00
Leonid Yuriev
463a8af35b
mdbx: copy unaligned keys/values instead of return error to avoid break compatibility.
...
Change-Id: I2f95674a3836568a5c51155ca70da0683c50b424
2020-05-15 11:30:35 +03:00
Leonid Yuriev
c2c74075e7
mdbx: fix Valgrind minor warning with MDBX_DEBUG > 1.
...
Change-Id: Idb93c6a3843e76071a55cbd6c34ddd22541c77d3
2020-05-15 11:30:35 +03:00
Leonid Yuriev
c6edd6fb91
mdbx: exclude MDBX_NOSUBDIR from persistent flags.
2020-05-15 11:30:35 +03:00
Leonid Yuriev
e28d223d42
mdbx: fix MDBX_NODUPDATA handling for key-value data.
...
More for https://github.com/erthink/libmdbx/issues/99
in continue to 9428efd2ae9f7fe984422b5eb1fc47f732236b51
Change-Id: I56050ddf5e56807a11d8613780c3ba76cc16d324
2020-05-15 11:30:35 +03:00
Leonid Yuriev
8c8c86038a
mdbx: fix unsigned-to-ptrdiff casting inside estimate().
...
Fixup after a238179c23e7378b2019de5229b2166cdfe515c7
Change-Id: I316e4aa1f41462fd0017f8e0a7f6d6e82aa4f3db
2020-05-15 11:30:35 +03:00
Leonid Yuriev
e6b48b613a
mdbx: more checking for MDBX_DEBUG.
...
Change-Id: Ie6bedda942bc5623e5d7cee5d2011e41009ea3d9
2020-05-15 11:30:35 +03:00
Leonid Yuriev
f6fe3b44de
mdbx: fix fetching of first/lower key in case starting from LEAF2-page during page merge.
...
More for b3f375c57f9ff0f1f58e77227374b1cfddcd3278
2020-05-15 11:30:35 +03:00
Leonid Yuriev
57d76d1f7a
mdbx: checking the order of keys on all pages during the audit (squashed).
2020-05-15 11:29:23 +03:00
Leonid Yuriev
30bb2363e1
mdbx: use comparators instead of is_samedata().
2020-05-15 08:59:10 +03:00
Leonid Yuriev
b7fb9bdeb1
mdbx: fix mdbx_xcursor_init1() for prev created databases.
2020-05-15 08:59:10 +03:00
Leonid Yuriev
d986d09b7b
mdbx: rework min/max length checking for keys & values (squashed).
2020-05-15 08:59:03 +03:00
Leonid Yuriev
9736a36efb
mdbx: add branch-less flags_db2sub().
2020-05-11 02:03:55 +03:00
Leonid Yuriev
e4ce115876
mdbx: fix MSVC warnings (minor).
...
Change-Id: I614ee9ec1c21586fbe08c6cedb395ac57a81914f
2020-05-10 03:56:25 +03:00
Leonid Yuriev
5b4b3fa9ea
mdbx-windows: fix MDBX_AVOID_CRT option & ntdll.def distribution.
...
Resolve https://github.com/erthink/libmdbx/issues/100
Change-Id: I18ab055e79e249fca856353b2585739c88e01758
2020-05-10 03:41:28 +03:00
Leonid Yuriev
a238179c23
mdbx: rename/reorganize internal fields for clarity.
...
Change-Id: I9b23a8ca271f30ebedda9cd8d21094b4797f8bb3
2020-05-09 20:00:31 +03:00
Leonid Yuriev
8ee3c6ddb0
mdbx: minor fix return MDBX_EBADSIGN.
...
Change-Id: Ia0da8b4c2a5f0776688c92ad50433eed5e83b73c
2020-05-09 20:00:25 +03:00
Leonid Yuriev
9428efd2ae
mdbx: avoid upsertion (early exit) the same key-value data.
...
Resolve https://github.com/erthink/libmdbx/issues/99
Change-Id: I6aac66d6cb6818951e29bc8a3626c342d6137151
2020-05-09 03:25:20 +03:00
Leonid Yuriev
86dad2d727
mdbx: drop obsolete/unused mn_hi & mn_lo.
...
Change-Id: Ie0099c5afa66ccb679b124f3feb095a364519edc
2020-05-09 03:25:20 +03:00
Leonid Yuriev
db635c9fbb
mdbx: fix/don't clean env-signature if open failed.
2020-05-09 02:48:56 +03:00
Leonid Yuriev
83cf4cd3d5
mdbx: refine/fix mdbx_dbi_open_ex() to safe concurrently opening the same handle from difference threads.
...
Change-Id: Ib01b6015bbb28eb2777f9206d6a5ac2cf9c2575f
2020-05-09 02:46:35 +03:00
Leonid Yuriev
f11607dfa6
mdbx: minor fix/workaround to avoid UBSAN traps for memcpy(ptr, nullptr, 0).
2020-05-03 01:48:12 +03:00
Leonid Yuriev
175c361018
mdbx: avoid gcc-anylyzer false-positive warnings.
2020-05-02 22:38:53 +03:00
Leonid Yuriev
b943466727
mdbx: fix missing comma in err-msg array (Coverity).
...
Change-Id: Ic441e63cf8ed14108dfe7c38e269f819879e21ce
2020-05-01 02:42:28 +03:00
Leonid Yuriev
1488457641
mdbx-tools: hide '-n' option (NOSUBDIR) since now it guessed automatically.
...
Change-Id: I8668ec919f2f90b133270a566f380066dbb8589f
2020-04-30 16:59:46 +03:00
Leonid Yuriev
b3f375c57f
mdbx: fix branch-page merge.
...
Change-Id: I48dce339d1735cd8d270f1ba1c091572daa897a6
2020-04-30 16:57:29 +03:00
Leonid Yuriev
eec465704d
mdbx: fix div-by-zero while copy-with-compaction for non-resizeable DB.
...
Change-Id: Ice7f5675c3b2864195874f2e3c4ade9148cad048
2020-04-29 18:57:00 +03:00
Leonid Yuriev
fac0d47913
mdbx: add MDBX_CP_FORCE_RESIZEABLE option.
...
Change-Id: I5fcdae7933dbbfbf8629e8a0423545a4f6b9f6b6
2020-04-29 18:57:00 +03:00
Leonid Yuriev
37abc146b4
mdbx-tools: minor refine mdbx_chk output.
...
Change-Id: I0d1b70029b861a6048bba8c0239138160c7c6425
2020-04-29 18:39:20 +03:00
Leonid Yuriev
b44520b7d1
mdbx: don't reset last txnid while copy with compactification.
...
Change-Id: Ia7c1b968ab6a21a3c178b45408088c84647276b1
2020-04-29 18:37:37 +03:00
Leonid Yuriev
eea1432e80
mdbx: auto-reset running transaction in mdbx_txn_renew().
...
Change-Id: If93ad13bb5a6dab8dd5fcb80882b5eb83fdf3dad
2020-04-26 03:32:50 +03:00
Leonid Yuriev
3b741a6d5f
mdbx: automatically abort errored transaction in mdbx_txn_commit().
...
Change-Id: I2cfac73c69a8ff46870778f174555724f8363a79
2020-04-26 03:23:04 +03:00
Leonid Yuriev
673570ec2a
mdbx: auto-choose pagesize for a large databases.
...
Change-Id: I3f8279ba077a8c31c70504d32fb619b6601cc5c4
2020-04-23 17:15:55 +03:00
Leonid Yuriev
a5fb85f0fc
mdbx: avoiding MDBX_UTTERLY_NOSYNC as result of flags merge.
...
Change-Id: Ia39de7b60a00b04a92ddf1468c995c4684f45474
2020-04-22 20:35:12 +03:00
Leonid Yuriev
21f9a445e8
mdbx: rework env_open() to auto-handling MDBX_NOSUBDIR for any exists database.
...
Change-Id: Id8a26937c9013c750323646df01c3080a909a4c0
2020-04-22 17:33:59 +03:00
Leonid Yuriev
30f7f15778
mdbx: automatic MDBX_NOSUBDIR while opening existing database.
...
Change-Id: Ieb2042d70b42bc2a572ac1083c160fa3cdbb7556
2020-04-22 16:58:38 +03:00
Leonid Yuriev
5765d92ac7
mdbx: return MDBX_EBADSIGN when mdbx_env_close() called concurrently from several threads.
...
Change-Id: I03a8c87bc51eefc5236baa52cee8b12a9f8aa0e2
2020-04-20 17:00:41 +03:00
Leonid Yuriev
83e303b059
mdbx: alter MDBX_CURSOR_FULL description.
...
Change-Id: I70d13e7503d10c6050bd17e4dd8bd814e46799af
2020-04-19 17:33:32 +03:00
Leonid Yuriev
1e9cc6b0a5
mdbx: more 'const' for API.
...
Change-Id: Iedea253733105acc4010e07a65a594f8ea52ce56
2020-04-19 17:33:32 +03:00
Leonid Yuriev
90bf7eb817
mdbx: fix/refine MDBX_BUILD_SHARED_LIBRARY definition.
...
Change-Id: If4e3d32b0ce360eb7275d962fff4b31e53926054
2020-04-17 00:37:57 +03:00
Leonid Yuriev
971f924c44
mdbx-build: rearrange source files, rework CMakeLists.txt and refine GNUMakefile (squashed).
...
Change-Id: Id73d346695011dab2f670bb9e6293a1e5a1835ca
2020-04-17 00:37:57 +03:00
Jens Alfke
f414876e99
mdbx: fixed AddressSanitizer errors after closing db.
...
Unpoison memory before unmapping, to avoid leaving dangling poisoned
address space. This caused Clang AddressSanitizer false errors after
database was closed.
More for https://github.com/erthink/libmdbx/issues/73
Close https://github.com/erthink/libmdbx/pull/93
Change-Id: I9cf19a06521330a90a62ed15317e1f966f0bd56f
2020-04-15 02:29:05 +03:00
Leonid Yuriev
ab2c98e41c
mdbx: support for Android/Bionic.
...
Change-Id: Ia6a4d8a7848ffe3e488b4a92c9ec53c61c78a9bb
2020-04-13 23:36:56 +03:00
Leonid Yuriev
595482ca57
mdbx: fix typo (extra closing parenthesis).
...
Change-Id: Icae740a640ab59dedc7608a725cc24623dba62bd
2020-04-13 23:35:08 +03:00
Leonid Yuriev
0986cb9379
mdbx-posix: fix feature-testing for PTHREAD_MUTEX_ROBUST.
...
Change-Id: I16f008b8448a70d4145ba2bcfe22b3326c8a0e21
2020-04-13 22:46:55 +03:00
Leonid Yuriev
abf38e97cc
mdbx: minor fix prev commit.
...
More for https://github.com/erthink/libmdbx/issues/97
Change-Id: I09ffe3430aa07bf5b01d9ad991affa004bb998a6
2020-04-11 20:51:24 +03:00
Leonid Yuriev
f89c3eda17
mdbx: crutch for WSL.
...
Fixes https://github.com/erthink/libmdbx/issues/97
Change-Id: Ia863ffc8cd939b1af65f21ab0c5c8197abf4e793
2020-04-11 20:33:36 +03:00
Leonid Yuriev
5a81413f17
mdbx-posix: fix comment typo.
...
Change-Id: I4573926a50ba392222dc738be3a7b9b3fabbb368
2020-04-11 17:21:36 +03:00
Leonid Yuriev
c590eb656f
mdbx: fix null-deref in an ASAN-enabled build while opening DB with error.
...
More for https://github.com/erthink/libmdbx/issues/95
Change-Id: I6250fe7b0fbbcae497c2b5c1da9b4e9f78ecf0f0
2020-04-11 14:55:03 +03:00
Leonid Yuriev
17d7d48281
mdbx: fix null-deref in an ASAN-enabled build while opening DB with MDBX_RDONLY.
...
Fixes https://github.com/erthink/libmdbx/issues/95
Change-Id: I1c000d3a456897f73367a590ef9fbda8ae90391c
2020-04-11 03:06:05 +03:00
Jens Alfke
48b6f76159
mdbx: Don't include <sys/vmmeter.h> on Apple platforms ( #94 )
...
A simpler fix for the issue of this header being missing on iOS.
It's not actually needed at all on Mach-based OSs.
Fixes https://github.com/erthink/libmdbx/issues/92
2020-04-10 21:40:58 +03:00
Leonid Yuriev
99f07f5054
mdbx: add iOS notes to README.
...
Change-Id: Ia46a43376370a73b179dbc4ab65e43956ee8c43a
2020-04-08 02:05:18 +03:00
Leonid Yuriev
81dca1f7e9
mdbx-cmake: add MDBX_BUILD_TOOLS option.
...
Change-Id: Ib6329fdea66dd52720021b80a6fecdaa078ceb2b
2020-04-07 23:06:18 +03:00
Leonid Yuriev
ed6863851e
mdbx: crutch for iOS.
...
Workaround for https://github.com/erthink/libmdbx/issues/92
Change-Id: Id8ed900d1310212ae0edd4bf6ab11bdba9c106a1
2020-04-07 17:35:49 +03:00
Leonid Yuriev
921f43da6f
mdbx: fix ceiling/flooring madvise-edge inside mdbx_sync_locked().
...
Fixes https://github.com/erthink/libmdbx/issues/91
Change-Id: I17da72d9a53a2c7453d81488bd3297063de0b7d1
2020-04-07 03:54:48 +03:00
Leonid Yuriev
94e58d7acc
mdbx: more explicit casting to size_t (paranoia).
...
Change-Id: I1c65943cdcdd77cc12bc27d9ced19765ea7911bb
2020-04-07 03:48:23 +03:00
Leonid Yuriev
bf0cff9a8a
mdbx: add & use floor_powerof2().
...
Change-Id: Ib5be7d5a68dc7944e208d75094050383ccdfa6d0
2020-04-07 03:48:20 +03:00
Leonid Yuriev
a846fb0d21
mdbx: rename roundup_powerof2() to ceil_powerof2().
...
Change-Id: Ie22f10ffa6637ef74f2c705fad5fc45a8d19d22e
2020-04-07 03:45:11 +03:00
Leonid Yuriev
4ad1c2daed
mdbx: minor fix/workaround to avoid GCC 10.x pedantic warnings.
...
Change-Id: If67c1ae593ad2c39130054475c37321dca761f5b
2020-04-07 01:54:58 +03:00
Leo Yuriev
3f7c9846e7
mdbx: use uintptr_t instead of size_t for pointer-wide values and types.
...
More for https://github.com/erthink/libmdbx/issues/88
Change-Id: Ic625096df3c09d0dd578c7b79aa302be35480699
2020-04-04 16:52:44 +03:00
Leo Yuriev
75de63dff1
mdbx: refine type-casting inside mdbx_thread_self() to avoid warning.
...
2 of 2 for https://github.com/erthink/libmdbx/issues/88
Change-Id: Ic4994141d23a5417b18f6b03a3e4038859fb9210
2020-04-04 16:52:42 +03:00
Leo Yuriev
089d7212e7
mdbx: fix mdbx_build_info for undefined flags case.
...
1 of 2 for https://github.com/erthink/libmdbx/issues/88
Change-Id: I079b329abe8f20793dc78c90ea55f874693dde43
2020-04-04 16:52:39 +03:00
Leo Yuriev
d329ea1fe0
mdbx-tools: fix txnid_t casting inside mdbx_stat.
...
Change-Id: I69799d8caca3e6692a433b2e62e7b2867b152b00
2020-04-04 16:01:05 +03:00
Leonid Yuriev
8f5ae79b51
mdbx: bump version to 0.7.x
...
Change-Id: I6cb06fbd7119eed086b54a9760db1e0edf5de07b
2020-03-18 17:19:12 +03:00
Leonid Yuriev
251d34d6e6
mdbx-doc: more for custom comparators.
...
Change-Id: I3326c5bdedbbdb01b1865bff68aa7ba8bc7056cc
2020-03-02 13:50:33 +03:00
Leo Yuriev
76e29c21f1
mdbx: merge branch 'devel' (crutches for Wine).
...
Change-Id: I1779bc6987449e403216584cdd2846e910f34c8a
2020-02-28 19:05:47 +03:00
Leo Yuriev
5072b45026
mdbx: rename MDBX_MAP_RESIZED to MDBX_UNABLE_EXTEND_MAPSIZE.
...
Change-Id: I22fbdb4f08fd7a6ae37da42e6827677ae8a8337b
2020-02-28 16:40:56 +03:00
Leo Yuriev
63449a44c5
mdbx-cmake: #if/#endif instead of cmake-conditions for posix/windows sources.
...
Change-Id: Ic95bd3ba345160cf1d68c79f11d6560d4c41cb2b
2020-02-28 15:51:12 +03:00
Leonid Yuriev
ecffc831fa
mdbx-tools: avoids extra error messages "bad txn" from mdbx_chk when DB is corrupted.
...
Change-Id: I6b92aced83bcf7e0c8e5c7108ddcf60714c9b30c
2020-02-27 16:04:00 +03:00
Leonid Yuriev
6248b67f75
mdbx-windows: more for running under Wine.
...
Wine unable create mapped-view large tran secton size.
More for https://github.com/erthink/libmdbx/issues/83
Change-Id: I93e98d58a827c785f8257cd9cac387a333e59621
2020-02-24 20:46:36 +03:00
Leonid Yuriev
fbf55e17cb
mdbx-windows: one more workaround for Wine.
...
SetFileInformationByHandle() is not implemented by Wine.
Change-Id: I61783c8d173397094cd6cbad7efc9d7aac57b470
002c:Call KERNEL32.SetFileInformationByHandle(00000060,00000006,0022f890,00000008) ret=127dd1b2
002c:fixme:file:SetFileInformationByHandle 0000000000000060, 6, 000000000022F890, 8
002c:Ret KERNEL32.SetFileInformationByHandle() retval=00000000 ret=127dd1b2
Related to https://github.com/erthink/libmdbx/issues/83
2020-02-22 20:02:17 +03:00
Leonid Yuriev
289f2896d0
mdbx-windows: more for Wine.
...
Related to https://github.com/erthink/libmdbx/issues/83 .
UnlockFile() cold return ERROR_LOCK_VIOLATION when file not locked, instead of ERROR_NOT_LOCKED.
Current versions of Wine seem to work correctly.
Change-Id: Ibc5bd4352184efc7f88705e7ae04d6656286a96e
2020-02-21 19:58:32 +03:00
Leonid Yuriev
4fed2d9fc0
mdbx-windows: minor workaround for MSVC "unresolved external symbol __except1 ..."
...
Workaround for MSVC error LNK2019: unresolved external symbol __except1 referenced in function __ftol3_except.
2020-02-19 16:31:25 +03:00
Leo Yuriev
9aa816dc73
mdbx-windows: using RegGetValueA() instead of wchar_t version.
...
Change-Id: I0848eaf2083985ae27fec605358329830b0733c2
2020-02-19 16:00:40 +03:00
Leo Yuriev
f750086bc1
mdbx-windows: rework workaround for Wine.
...
Resolves https://github.com/erthink/libmdbx/issues/83
in accordance with https://bugs.winehq.org/show_bug.cgi?id=48620
Change-Id: Ieb4385efdcd86c865184a783363cf6e90da14f61
2020-02-18 22:51:34 +03:00
Leonid Yuriev
bd3f234bce
mdbx: update github repo address.
...
Change-Id: Ifa8bf0e09b297ba6f495dd8e04e5c67f6626d9cb
2020-02-18 02:22:47 +03:00
Leo Yuriev
60a6560a3b
mdbx: workaround for NtExtendSection() on Wine.
...
This fixes https://github.com/erthink/libmdbx/issues/83
Change-Id: I8e00aa91c86348fad9dbe4285143671d9cb3f802
2020-02-17 22:55:17 +03:00
Leo Yuriev
d1173a1596
mdbx: drop unused WindowsNT API prototypes.
...
Change-Id: Ic929646653d0576671d6150a698e892d2145ae30
2020-02-17 19:44:05 +03:00
Leonid Yuriev
2356f3281b
mdbx: use underscores for GNU-attributes.
...
Change-Id: Iefd371dd91da1db8ee86554208536b3004535317
2020-02-17 14:01:11 +03:00
Leonid Yuriev
cd0d84dbb6
mdbx: fix error message typo.
...
Change-Id: I25db309ff4fb063893c7c39d623e62eaceb8b60f
2020-02-03 23:35:43 +03:00
Leonid Yuriev
8214d674be
mdbx: refine SEARCH_IMPL macro.
...
Change-Id: I975e480c047b88e0200aaf889334e8b83ab760ad
2020-02-03 18:13:17 +03:00
Leonid Yuriev
62a39d84b3
mdbx: fix aligned_alloc() usage.
2020-02-02 20:49:51 +03:00
Leonid Yuriev
6009bac1ed
mdbx: move is_powerof2() and roundup_powerof2() into header.
2020-02-02 20:41:04 +03:00