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
Hallvard Furuseth
9e3603eb9d
Fix mdb_enctest()
...
Accept a partial ovpage. I.e. decryption of the beginning
should not depend on the data at the end.
Make the key and IV less regular. (Divisor 67 has period>64.)
4 years ago
Hallvard Furuseth
214aff2359
Move misplaced OVERFLOW_NOTYET code
...
...so it would set pgno,txnid in the MDB_dovpage, not the actual ovpage
4 years ago
Hallvard Furuseth
74928f6a3b
Fix broken mdb_page_get(ovpage) optimization
4 years ago
Hallvard Furuseth
ca8e48d994
Fix last commit - sizeof(pgno_t) and C90 compat
4 years ago
Howard Chu
757378fc1d
Scaled back on overflow page work
...
Still keeping page header at top of overflow page for now
4 years ago
Howard Chu
f0f985fa93
checkpoint - moving overflow page headers
...
Moving headers outside of overflow page.
4 years ago
Howard Chu
c7ef535aa9
Data format change: add txnid to page header
4 years ago
Hallvard Furuseth
f16ce88dc8
Trivial encryption when $LMDB_FLAGS = "e"
4 years ago
Hallvard Furuseth
de161fe9d9
Get flags from $LMDB_FLAGS when MDB_TEST
...
Now we don't need to tweak the code of callers to test encryption.
4 years ago
Howard Chu
fafbd42cd2
Save/restore enc IV in page 0
4 years ago
Howard Chu
34c3cfe853
Plug some information leaks
...
Zero out decrypted pages before freeing them.
Do proper init on reused loose pages.
4 years ago
Howard Chu
525a2cce91
Add test code for remap / encryption
4 years ago