Commit graph

746 commits

Author SHA1 Message Date
Howard Chu
b87dedd99e ITS#9376 Fixes for repeated deletes with xcursor
On DUPSORT DBs, must initialize xcursor regardless of whether
caller requested its data. Also in cursor_prev must check whether
cursor index is still within range before using it.
2020-10-23 17:03:54 +00:00
Howard Chu
93c72a7726 ITS#9364 add sample for authenticated encryption 2020-10-11 17:29:54 +01:00
Howard Chu
0bc8a4e929 ITS#9364 add error code texts 2020-10-11 14:07:26 +01:00
Howard Chu
8dc526c54f ITS#9364 rework crypto API
And add support for per-page checksums. Reserve space for checksum
at tail of page. Pass pgno+txnid as IV input for encryption.
2020-10-11 13:56:52 +01:00
Howard Chu
d1814f7e5d ITS#9017 fixes for encryption 2020-10-11 01:45:45 +01:00
Howard Chu
1002664c33 Fix rawpart flag collision 2020-10-11 01:32:30 +01:00
Howard Chu
de08119a29 Add mdb_env_set_pagesize() 2020-10-10 16:26:24 +01:00
Howard Chu
a7df9e63a5 More RAWPART support
Use mmap to read and initialize the meta pages, raw device
may not support read/write syscalls.
2020-10-10 16:21:57 +01:00
Howard Chu
5c0dda76c9 Preliminary raw partition support
Autodetects that a block device is being used.
2020-10-10 16:12:33 +01:00
Howard Chu
8bcc050fee ITS#9278 fix robust mutex cleanup for FreeBSD
FreeBSD 11 supports robust process-shared POSIX mutexes,
but requires them to be explicitly destroyed before munmap
2020-10-10 15:24:15 +01:00
Howard Chu
034a7e98a6 ITS#9017 cleanup Windows off_t 2020-10-10 15:22:12 +01:00
Howard Chu
9c01725fae ITS#9017 doxygen comment for MDB_FIXEDSIZE 2020-10-10 15:22:00 +01:00
Howard Chu
7deed69202 ITS#9017 LMDB: fix off_t usage on Windows 2020-10-10 15:21:49 +01:00
Kris Zyp
485465b6a7 ITS#9017 LMDB: allow using fixed file size on Windows 2020-10-10 15:21:32 +01:00
Kris Zyp
dfb3bbed65 ITS#9017 LMDB: improve Windows sync commit perf 2020-10-10 15:20:54 +01:00
Howard Chu
b485f2869c ITS#9155 lmdb: free mt_spill_pgs in non-nested txn on end 2020-10-10 13:51:45 +01:00
Quanah Gibson-Mount
1cd0da08a7 Happy New Year! 2020-10-10 13:51:45 +01:00
Howard Chu
697d52b6b7 Silence spurious fallthru warning 2020-10-10 13:31:00 +01:00
Howard Chu
37e99c2b9d ITS#9118 add MAP_NOSYNC for FreeBSD 2020-10-10 13:30:09 +01:00
Kris Zyp
52fbc38925 ITS#9007 don't free loose writemap pages
Broken in ITS#8756
2020-10-10 13:24:19 +01:00
Ka Ho Ng
29f33e7b3a ITS#8978 Fix mdb_env_open2() failing when getting handle for NTDLL.dll
Always call GetModuleHandleW() with Unicode string, as mdb_fopen() is
calling CreateFileW() already.
2020-10-10 13:23:54 +01:00
Howard Chu
a51fb486d8 ITS#8969 tweak mdb_page_split
Bump up number of keys for which we use fine-grained splitpoint search
2020-10-10 13:23:39 +01:00
Howard Chu
0a202f2ac7 Happy New Year 2020-10-10 13:21:36 +01:00
Howard Chu
279cc7b836 ITS#8891 fix M$ WINAPI typedefs 2020-10-10 13:20:33 +01:00
Howard Chu
b65765443a ITS#8756 remove loose pg from dirty list in freelist_save 2020-10-10 13:19:04 +01:00
Howard Chu
bfe439cd52 ITS#8844 use getpid() in mdb_env_close0() 2020-10-10 13:17:18 +01:00
Quanah Gibson-Mount
5a5e056f22 Happy New Year 2020-10-10 13:15:18 +01:00
Howard Chu
d52328b75d ITS#8819 can't use fakepage mp_ptrs directly 2020-10-10 13:12:59 +01:00
Howard Chu
bdfb167105 ITS#8324 More for Win32 NTDLL junk
Use GetProcAddress at runtime, avoid buildtime NTDLL link issues
2020-10-10 13:12:46 +01:00
Howard Chu
4d747ff2f9 ITS#8760 fix regression in 0.9.19 2020-10-10 13:10:58 +01:00
Howard Chu
cf3588baae Add -a append option to mdb_load
To allow reloading of custom-sorted DBs from mdb_dump
2020-10-10 13:10:34 +01:00
Quanah Gibson-Mount
d9ef7ace69 ITS#8612 Fix Solaris builds with liblmdb
This patch fixes liblmdb builds on Solaris and derivatives by defining
_POSIX_PTHREAD_SEMANTICS
2020-10-10 13:10:14 +01:00
Hallvard Furuseth
b9488faae4 Tweak ITS#8722 fix: Use XCURSOR_REFRESH()
This checks XCURSOR_INITED() and fixes the mn_flags check.
2020-10-10 13:09:49 +01:00
Hallvard Furuseth
5601781247 XCURSOR_REFRESH() fixups/cleanup
* Check NUMKEYS(), similar to f34b61f947
  "ITS#8722 fix FIRST_DUP/LAST_DUP cursor bounds check".
* Move XCURSOR_INITED() into XCURSOR_REFRESH().  This adds a check in
  mdb_cursor_put, below /* converted, write the original data first */.
* Factor mc_ki[] out to XCURSOR_REFRESH().
* Replace an mc_pg[] with mp which is equal (mdb_cursor_del0).
2020-10-10 13:09:39 +01:00
Howard Chu
2b397001a8 ITS#8728 fix MDB_VL32 freeing overflow page 2020-10-10 13:09:09 +01:00
Howard Chu
0e91bde589 ITS#8722 fix FIRST_DUP/LAST_DUP cursor bounds check 2020-10-10 13:06:28 +01:00
Howard Chu
27c8cee72d Add mdb_cursor_is_db()
Return 1 if the cursor is pointing to a named DB record
2020-10-10 13:06:09 +01:00
Howard Chu
e4cf950264 mdb_dbi_open tweak
Always save the terminating NUL of the incoming DB name
Stop using the old mdb_open/mdb_close function names
 .. should consider renaming mdb_stat/mdb_drop to mdb_dbi_... too.
2020-10-10 13:05:55 +01:00
Howard Chu
3585a1eb97 ITS#8704 Fix PREVMETA, rename to PREVSNAPSHOT
and enforce exclusive access to environment. Also fix txn_begin/pick_meta
to use correct meta page, and reset the flag after successful commit.
2020-10-10 13:04:50 +01:00
Hallvard Furuseth
16839f9893 Unref ovpages when deleting them 2020-10-10 13:04:37 +01:00
Hallvard Furuseth
73d75c6215 Drop always-false MDB_WRITEMAP test when IS_DIRTY_NW() 2020-10-10 13:04:26 +01:00
Howard Chu
d12ebb655a ITS#8704 Add PREVMETA to envflags() 2020-10-10 13:03:58 +01:00
moneromooo-monero
0158f67c14 ITS#8704 add MDB_PREVMETA flag to mdb_env_open
used to open the previous meta page, in case the latest one
is corrupted

From https://github.com/LMDB/lmdb/pull/12
2020-10-10 13:03:36 +01:00
Hallvard Furuseth
b4ddec0bb4 Expose MDB_ENCRYPT flag 2020-10-10 13:03:21 +01:00
Hallvard Furuseth
6e1f74856d Rename mdb_env_getflags->envflags, clarify options
The old name resembled existing function mdb_env_get_flags().
2020-10-10 13:03:01 +01:00
Hallvard Furuseth
8b31a4a62b mdb_page_get() can ignore the toplevel spill list
...when we search dirty list before instead of after spill list.
2020-10-10 13:02:52 +01:00
Hallvard Furuseth
d6cf476169 Drop mdb_page_get() arg 'level', it's always NULL 2020-10-10 13:01:46 +01:00
Hallvard Furuseth
61b5b6270d Doc fixes 2020-10-10 13:00:52 +01:00
Hallvard Furuseth
24f437df86 Less hungry mdb_pages_xkeep()
Skip pages that are dirty only in an ancestor txn
2020-10-10 13:00:42 +01:00
Hallvard Furuseth
972917449d Keep MC_OVPG() == NULL when not MDB_REMAPPING()
Needed since 418ea8b94e14567ba2be9f9772f38f563a0d7e9c introduced
option MDB_REMAP_CHUNKS.
2020-10-10 13:00:27 +01:00