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.
4 years ago
Howard Chu
a51fb486d8
ITS#8969 tweak mdb_page_split
...
Bump up number of keys for which we use fine-grained splitpoint search
4 years ago
Howard Chu
09fb1de05e
IDLs for VL32 must be same size as for 64bit
4 years ago
Howard Chu
0a202f2ac7
Happy New Year
4 years ago
Quanah Gibson-Mount
227840fe25
Happy New Year!
4 years ago
moneromooo-monero
4efa54e5f3
ITS#8857 document mdb_cursor_del does not invalidate the cursor
4 years ago
Howard Chu
0612992edf
ITS#8908 DOC: GET_MULTIPLE etc don't return the key
...
Unnecessary since these are DUPs, the key will always be the same
4 years ago
Howard Chu
279cc7b836
ITS#8891 fix M$ WINAPI typedefs
4 years ago
Howard Chu
b65765443a
ITS#8756 remove loose pg from dirty list in freelist_save
4 years ago
Howard Chu
bfe439cd52
ITS#8844 use getpid() in mdb_env_close0()
4 years ago
Howard Chu
8218d06717
ITS#8831 move flag init into readhdr
...
Avoid stomping on flags from 1st readhr invocation
4 years ago
Quanah Gibson-Mount
5a5e056f22
Happy New Year
4 years ago
Howard Chu
d52328b75d
ITS#8819 can't use fakepage mp_ptrs directly
4 years ago
Howard Chu
bdfb167105
ITS#8324 More for Win32 NTDLL junk
...
Use GetProcAddress at runtime, avoid buildtime NTDLL link issues
4 years ago
Howard Chu
ec3e4ed9d8
Add mdb_drop tool
4 years ago
Howard Chu
4d747ff2f9
ITS#8760 fix regression in 0.9.19
4 years ago
Howard Chu
cf3588baae
Add -a append option to mdb_load
...
To allow reloading of custom-sorted DBs from mdb_dump
4 years ago
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
4 years ago
Hallvard Furuseth
b9488faae4
Tweak ITS#8722 fix: Use XCURSOR_REFRESH()
...
This checks XCURSOR_INITED() and fixes the mn_flags check.
4 years ago
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).
4 years ago
Howard Chu
2b397001a8
ITS#8728 fix MDB_VL32 freeing overflow page
4 years ago
Howard Chu
0e91bde589
ITS#8722 fix FIRST_DUP/LAST_DUP cursor bounds check
4 years ago
Howard Chu
05d5a9d3f6
Doc tweaks
...
Note about DB names being C strings
4 years ago
Howard Chu
27c8cee72d
Add mdb_cursor_is_db()
...
Return 1 if the cursor is pointing to a named DB record
4 years ago
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.
4 years ago
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.
4 years ago
Hallvard Furuseth
16839f9893
Unref ovpages when deleting them
4 years ago
Hallvard Furuseth
73d75c6215
Drop always-false MDB_WRITEMAP test when IS_DIRTY_NW()
4 years ago
Howard Chu
789c71c4c9
ITS#8704 Add MDB_PREVMETA support to tools
4 years ago
Howard Chu
d12ebb655a
ITS#8704 Add PREVMETA to envflags()
4 years ago
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
4 years ago
Hallvard Furuseth
b4ddec0bb4
Expose MDB_ENCRYPT flag
4 years ago
Hallvard Furuseth
6e1f74856d
Rename mdb_env_getflags->envflags, clarify options
...
The old name resembled existing function mdb_env_get_flags().
4 years ago
Hallvard Furuseth
8b31a4a62b
mdb_page_get() can ignore the toplevel spill list
...
...when we search dirty list before instead of after spill list.
4 years ago
Hallvard Furuseth
d6cf476169
Drop mdb_page_get() arg 'level', it's always NULL
4 years ago
Hallvard Furuseth
61b5b6270d
Doc fixes
4 years ago
Hallvard Furuseth
24f437df86
Less hungry mdb_pages_xkeep()
...
Skip pages that are dirty only in an ancestor txn
4 years ago
Hallvard Furuseth
972917449d
Keep MC_OVPG() == NULL when not MDB_REMAPPING()
...
Needed since 418ea8b94e14567ba2be9f9772f38f563a0d7e9c introduced
option MDB_REMAP_CHUNKS.
4 years ago
Howard Chu
499866aba7
ITS#8699 more for cursor_del ITS#8622
...
Set C_DEL flag on reinit'd subcursor
4 years ago
Howard Chu
81984ab228
Fix 418ea8b94e SEGV on spilled ovpg
...
Don't spill an ovpg that is referenced in a cursor
4 years ago
Hallvard Furuseth
adfa8f758a
Drop P_DIRTY, and MDB_WRITEMAP dirty/spill lists
...
mt_workid = mt_txnid when WRITEMAP, so dirty pages == "spilled"
pages and mdb_page_flush() does nothing.
4 years ago
Hallvard Furuseth
f1db84d332
mp_txnid = page state, avoids searching dirty_list
...
In nested txns, check mp_txnid to see which txn dirtied the page.
This change will also let us remove the P_DIRTY flag, and keep
some flags in (dirty page).mp_txnid if we should need it.
4 years ago
Hallvard Furuseth
c83434e178
Demo - move P_DIRTY to P_ADM_FLAGS, page_dirty()
...
...to have something substantial to test P_ADM_FLAGS with,
at least until we drop the P_DIRTY flag.
4 years ago
Hallvard Furuseth
0a99df54af
Divide page flags in P_ADM_FLAGS and the rest
...
P_ADM_FLAGS flags are tied to the page, even through page_loose-alloc.
OTOH mdb_page_split() should only duplicate the relevant flags.
This is just the code for the feature, P_ADM_FLAGS is 0 for now.
We'll need it for P_HIDESPILL later.
4 years ago
Hallvard Furuseth
3b55853fe0
Drop unnecessary searches in the spill lists
...
Check with IS_MUTABLE() if an MDB_page is spilled, instead of
searching spill lists. When unspilling, skip parent spill lists.
4 years ago
Hallvard Furuseth
34461da97b
Skip unnecessary mdb_page_get()s when spilling
...
Do not bring in pages merely to see if they should be skipped.
4 years ago
Hallvard Furuseth
6dd5a4d7f6
Protect freelist at end of mdb_freelist_save()
4 years ago
Hallvard Furuseth
12ee1a2d71
Use mdb_page_loose() more
4 years ago
Hallvard Furuseth
0e17ba43a8
Verify final loose_count in mdb_txn_commit()
...
Mismatch may indicate that pages leaked or got used twice
in the same snapshot.
4 years ago
Hallvard Furuseth
4b7e430303
mdb_page_touch: Always set MDB_TXN_ERROR on error
4 years ago