Commit graph

818 commits

Author SHA1 Message Date
Howard Chu
0a954f1a67 Fix Android recognition
The official macro is __ANDROID__; ANDROID may or may not be defined.
2019-01-17 19:37:40 +00:00
Howard Chu
aa77c832b8 Add -a append option to mdb_load
To allow reloading of custom-sorted DBs from mdb_dump
2019-01-17 19:08:15 +00:00
Howard Chu
af2f8cc814 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.
2019-01-17 19:02:39 +00:00
Howard Chu
ce83455904 ITS#8704 Add MDB_PREVMETA support to tools 2019-01-17 18:59:30 +00:00
Howard Chu
7edf504106 IDLs for VL32 must be same size as for 64bit 2019-01-17 18:46:10 +00:00
Howard Chu
1de70b2130 Happy New Year 2019-01-14 19:06:20 +00:00
Quanah Gibson-Mount
11308dfe26 Happy New Year! 2019-01-14 18:39:38 +00:00
moneromooo-monero
561ba50158 ITS#8857 document mdb_cursor_del does not invalidate the cursor 2018-09-10 19:05:16 +01:00
Howard Chu
eab90d5389 ITS#8908 DOC: GET_MULTIPLE etc don't return the key
Unnecessary since these are DUPs, the key will always be the same
2018-08-29 01:25:01 +01:00
Howard Chu
26c7df88e4 ITS#8891 fix M$ WINAPI typedefs 2018-08-06 13:10:59 +01:00
Howard Chu
1ffe472a08 ITS#8756 remove loose pg from dirty list in freelist_save 2018-06-22 16:30:13 +01:00
Howard Chu
86a90cad72 ITS#8844 use getpid() in mdb_env_close0() 2018-05-02 17:05:29 +01:00
Howard Chu
7aa7fadc5b ITS#8831 move flag init into readhdr
Avoid stomping on flags from 1st readhr invocation
2018-04-02 18:01:19 +01:00
Quanah Gibson-Mount
0a2622317f Happy New Year 2018-03-22 15:20:57 +00:00
Howard Chu
3b0f68a462 ITS#8819 can't use fakepage mp_ptrs directly 2018-03-20 18:34:56 +00:00
Howard Chu
e85ae1fe88 ITS#8324 More for Win32 NTDLL junk
Use GetProcAddress at runtime, avoid buildtime NTDLL link issues
2018-02-18 21:54:20 +00:00
Howard Chu
55fcd0cfee Add mdb_drop tool 2017-11-19 19:44:53 +00:00
Howard Chu
4d5e2d2a2a ITS#8760 fix regression in 0.9.19 2017-10-26 19:07:35 +01:00
Quanah Gibson-Mount
bb8502f088 ITS#8612 Fix Solaris builds with liblmdb
This patch fixes liblmdb builds on Solaris and derivatives by defining
_POSIX_PTHREAD_SEMANTICS
2017-10-06 11:35:37 -07:00
Hallvard Furuseth
8c2c5e2b4b Tweak ITS#8722 fix: Use XCURSOR_REFRESH()
This checks XCURSOR_INITED() and fixes the mn_flags check.
2017-09-11 00:00:14 +02:00
Hallvard Furuseth
7ead4169b6 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).
2017-09-10 23:59:35 +02:00
Howard Chu
fbdd452799 ITS#8728 fix MDB_VL32 freeing overflow page 2017-09-09 15:08:03 +01:00
Howard Chu
f34b61f947 ITS#8722 fix FIRST_DUP/LAST_DUP cursor bounds check 2017-09-06 21:16:47 +01:00
moneromooo-monero
3daab3be73 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
2017-07-31 18:48:30 +01:00
Howard Chu
47ca2f7095 ITS#8699 more for cursor_del ITS#8622
Set C_DEL flag on reinit'd subcursor
2017-07-26 21:37:40 +01:00
Howard Chu
4d2154397a ITS#8622 fix xcursor after cursor_del
Re-fix 6b1df0e4c7 from ITS#8406
2017-03-23 20:55:12 +00:00
Hallvard Furuseth
b5e5fcc31d ITS#8582 Fill in MDB_LOCK_FORMAT
Attempt to stop liblmdb variants compiled with conflicting options
from using the lockfile at the same time and thus breaking it.
2017-03-19 13:24:08 +01:00
Hallvard Furuseth
52c0df1d50 Clear any struct padding in idbuf 2017-03-19 13:21:52 +01:00
Hallvard Furuseth
172d825155 Simplify mdb_hash_val() -> mdb_hash()
Simpler usage since it's only called once, rename to match new usage,
and drop 3 loop pessimizations which were optimizations 20 years ago.
2017-03-19 13:21:52 +01:00
Hallvard Furuseth
68eda68f0b Store lock ID instead of pathname in lockfile
This limits the namespace which the user can meddle with for
POSIX semaphores and Windows mutexes.  Their names change a
bit, they no longer have fixed lengths.
2017-03-19 13:21:51 +01:00
Hallvard Furuseth
58ba039b8f ITS#8582 MDB_LOCK_VERSION = 2 due to format change 2017-03-04 13:03:15 +01:00
Howard Chu
e36517dbbe ITS#8582 keep mutex at end of struct
since it's variable size on Linux/glibc
2017-02-06 15:09:26 +00:00
Howard Chu
1db9f32ae2 Workaround VL32 cursor refcounting miscount
Don't try to deref cursor page if txn's pagelist is empty
2017-01-31 10:41:52 +00:00
Howard Chu
882e27c1b4 Further fix f8ce8a8271
Fully revert the change to GET_MULTIPLE
2017-01-14 19:22:34 +00:00
Howard Chu
5eae7aad7e Fix f8ce8a8271
GET_MULTIPLE was broken
2017-01-12 13:35:31 +00:00
Howard Chu
6ac9aa666e Happy New Year 2017-01-11 14:39:08 +00:00
Howard Chu
f8ce8a8271 More C_EOF tweaks 2017-01-11 11:19:18 +00:00
Howard Chu
c44b29eaa8 ITS#8557 fix prev commit 2017-01-11 11:18:57 +00:00
Howard Chu
511f5880e2 Tweak cursor_next C_EOF check
Allow C_EOF flag to be stale
2017-01-11 10:33:28 +00:00
Howard Chu
d84dee516f ITS#8557 fix mdb_cursor_last
Optimize mdb_page_search_root(PS_LAST) when cursor is already near
last position, ignoring C_EOF flag for now.
2017-01-11 09:51:43 +00:00
Howard Chu
59ac317d2a ITS#8558 fix mdb_load with escaped plaintext 2017-01-06 19:48:58 +00:00
Howard Chu
2e3eaf2ce2 ITS#8554 kFreeBSD is like BSD
Doesn't have POSIX robust mutexes - GNU userland on BSD kernel
2016-12-28 18:30:19 +00:00
Hallvard Furuseth
4bc270a2cb More MDB_node doc 2016-12-21 21:42:36 +01:00
Hallvard Furuseth
be94a7565b Doxygen fixes. Use DISTRIBUTE_GROUP_DOC.
- DISTRIBUTE_GROUP_DOC makes doxygen give several fields the
  same doc: mn_hi + mn_lo in MDB_node.
- With mdb_mutex_t + mdb_mutexref_t, instead split them up.
- Don't hide a doxygen #name inside double quotes.
2016-12-21 21:40:50 +01:00
Hallvard Furuseth
72c893fc82 Mention MDB_PREV_MULTIPLE along with MDB_NEXT_MULTIPLE 2016-12-15 22:12:45 +01:00
Hallvard Furuseth
e539654051 ITS#8504 Fix prev commit: mc_error, #ifdef SIGPIPE
Never clear mc_error, we could lose a failure in the other thread.
2016-12-13 18:50:45 +01:00
Lorenz Bauer
3e7a8e26e6 ITS#8504 mdb_env_copyfd2(): Don't abort on SIGPIPE
Return EPIPE instead.
2016-12-13 18:47:13 +01:00
Hallvard Furuseth
65e95ffccf ITS#7377 Catch mdb_cursor_sibling() error 2016-12-10 22:00:31 +01:00
Hallvard Furuseth
d78c80d902 Clean up and comment C_UNTRACK
Don't use it as a "cursor is tracked" hint in mdb_pages_xkeep().
It's been harmless so far, but would break after mdb_cursor_copy().
Checking m0 directly short-circuits better anyway.
2016-12-10 21:42:39 +01:00
Hallvard Furuseth
1fb0822b40 ITS#8355 cleanup
Drop ~C_EOF, pointless after 8c215aa970
2016-12-10 21:11:12 +01:00