Commit Graph

2455 Commits

Author SHA1 Message Date
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
8707fb89f3 mdbx: fix pure attribute for mdbx_key_from_ptrfloat().
Change-Id: I0403aced54d1ecad83079696c01ab3e0813691b0
2020-08-28 16:44:20 +03:00
Leonid Yuriev
0c6cecaacb mdbx-doc: fix Doxygen \see refs.
Change-Id: Ia66553fe9c230931462f19871946afcdd7591e73
2020-08-27 13:19:44 +03:00
Leonid Yuriev
061750bccb mdbx-doc: fix LMDB/MDBX typo.
Change-Id: I6e492eebc43cde7ef274e9f64559f401500a780b
2020-08-24 01:19:42 +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
bda4ebc939 mdbx-doc: minor Doxygen refines.
Change-Id: I6417e2c16b3bbb9536e0c0825eea22547163457b
2020-08-23 16:28:00 +03:00
Leonid Yuriev
cb64ba8258 mdbx: add workaround for MSVC-2019 __has_cpp_attribute() bug.
Change-Id: Ie17bc57a9f20dda32af617560641fc1b69dc03a0
2020-08-23 16:23:59 +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
100ac532ed mdbx-docs: update ChangeLog.
Change-Id: I3c54dc41321b737046ce44757ae4a62e4e1317b8
2020-08-07 13:09:22 +03:00
Leonid Yuriev
3292677fe6 mdbx-docs: fix doxygen typo, etc.
Change-Id: I541ad3ecb9b9af015cfac9aad4eb72d8731b8ab2
2020-08-07 12:31:08 +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
b3dde2bafc mdbx: minor refines for Doxygen.
Change-Id: Iacedc42fc1c7e680306fdae819c165e8b40f6a5a
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
67d27c81d7 mdbx-docs: fix typos & add refs for Doxygen. 2020-07-30 21:16:08 +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
aa07d7a3a2 mdbx-docs: more for Doxygen (seems done).
Change-Id: I089748d738705b77e13887391a7e65a1ad327fea
2020-07-25 04:34:15 +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
bb3d4ab9ba mdbx-ci: build github-pages by doxygen.
Change-Id: I9d84ca299cf0b8579157f84dae42fcbb09a6f8bc
2020-07-23 11:58:04 +03:00
Leonid Yuriev
e3efef40c4 mdbx: initial support for doxygen.
Change-Id: I5258b9f5dac981f03658ed35a799a52250a3e136
2020-07-23 11:58:04 +03:00
Leonid Yuriev
19e4fc1414 mdbx: minor fix .gitignore
Change-Id: I3b54830fed6ba161bfb631e6989f616df106450d
2020-07-23 11:58:04 +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
b6085afb5a mdbx-test: minor fix for MSVC-2015.
Change-Id: I631009ffe0b04428026492d1cab691b58fdd160a
2020-07-08 03:13:07 +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
e34e58f529 mdbx: reformat ChangeLog (cosmetics).
Change-Id: Ida9e18a512604c3fff8d3d88558020f694e740b0
2020-07-07 00:38:27 +03:00
Leonid Yuriev
fc9ae9ebc6 mdbx: bump version to 0.8.2
Change-Id: I99ace837318d3aef4086392272c8256d966ef2fd
2020-07-06 16:37:35 +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