876 Commits

Author SHA1 Message Date
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
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
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
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
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
971f924c44 mdbx-build: rearrange source files, rework CMakeLists.txt and refine GNUMakefile (squashed).
Change-Id: Id73d346695011dab2f670bb9e6293a1e5a1835ca
2020-04-17 00:37:57 +03:00