Commit graph

4000 commits

Author SHA1 Message Date
Howard Chu
bfbc6fe4a6 Merge remote-tracking branch 'origin/mdb.master' 2014-03-18 05:40:30 -07:00
Jan Synacek
5968804438 ITS#7723 fix reference counting 2014-03-18 03:38:11 -07:00
Hallvard Furuseth
2727e97de3 mtest: Accept an MDB_NOTFOUND case 2014-03-16 12:42:43 +01:00
Hallvard Furuseth
68e97b2184 Handle more errors. Invalidate txn if needed. 2014-03-16 12:42:43 +01:00
Hallvard Furuseth
937b5eff07 Don't use non-existent node info in branch/leaf2 2014-03-16 12:42:42 +01:00
Hallvard Furuseth
86f8b203f5 Move code out of mdb_cursor_del0() and mdb_del().
Prepares for the next commits.
2014-03-16 12:42:42 +01:00
Hallvard Furuseth
012d7b5de7 More checks for closed DBIs and invalidated txns.
Factor txn/DBI-checks out to TXN_DBI_EXIST().
mdb_audit(): Skip closed DBIs.
mdb_cursor_renew(), mdb_stat(): Check DBI and txn.
mdb_cursor_count(): Check txn.
mdb_dbi_flags(): Check DBI.
2014-03-16 12:42:42 +01:00
Hallvard Furuseth
3e7c1bd4e2 mdb_page_list(): Support & display all page types 2014-03-16 12:42:42 +01:00
Hallvard Furuseth
a22c31115f mdb_txn_renew0(): Fix un-mutexed me_flags update.
Replace env flag MDB_LIVE_READER with field me_live_reader.
2014-03-16 12:42:42 +01:00
Hallvard Furuseth
684bb867ce Doxygen fixes 2014-03-16 12:42:42 +01:00
Howard Chu
4ddf2ec831 Rename samples
They're meant to be read and studied, not run.
2014-03-16 03:55:03 -07:00
Howard Chu
797ff136a8 ITS#7815 more for page_split
This case didn't come up in testing. Needs finer grained test.
2014-03-05 20:40:12 -08:00
Howard Chu
0e7fba73b7 ITS#7815 fix mdb_page_split
Was leaving cursor pointed at wrong page if the newindx was
in the right sibling page, and the parent was also split.
2014-03-05 20:04:42 -08:00
Hallvard Furuseth
e2bdd44624 mtest*.c, sample-*.c: Add/note error checks. 2014-02-19 21:25:40 +01:00
Hallvard Furuseth
a604948993 mtest[46]: Use different DBs when different flags. 2014-02-19 21:25:40 +01:00
Howard Chu
106a4b90aa More for ITS#4365 refix CR/LF handling
Was rejecting "-\r\n" in input LDIF
2014-02-07 00:31:23 -08:00
Hallvard Furuseth
4e954f8ae8 ITS#7793 mdb_cursor_put(): Fix MDB_CURRENT.
Ignore key, broken by 5bda3565a9
and some older code.  Document and clarify MDB_CURRENT usage.

Also affects non-MDB_CURRENT put() with empty data and a key
which matches by the mdb_set_compare function but not by memcmp.
2014-01-28 14:27:27 +01:00
Kurt Zeilenga
5c878c1bf2 Happy new year (belated) 2014-01-25 05:21:25 -08:00
Quanah Gibson-Mount
be3971d5d2 Merge remote-tracking branch 'origin/mdb.master' 2014-01-15 11:17:26 -06:00
Howard Chu
aa3463ec7c Bump version to 0.9.11 2014-01-15 09:09:48 -08:00
Quanah Gibson-Mount
0b03c51e79 Merge remote-tracking branch 'origin/mdb.master' 2014-01-14 20:33:22 -06:00
Howard Chu
ec97f49a65 Note changes for LMDB 0.9.11 2014-01-14 17:12:48 -08:00
Hallvard Furuseth
98f3bc88bf Revert "ITS#7772 Reduce spurious sub-page growth."
This reverts commit 75494c08b4,
which must await a fix to ITS#7771 (DUPSORT cursor tracking).
2014-01-13 20:46:08 +01:00
Howard Chu
3f241365d5 Make sure mapsize changes take effect on Windows. 2014-01-12 20:04:50 -08:00
Howard Chu
14868fcab6 ITS#7783 workaround stupid NSPR bug
free(NULL) is supposed to be safe. "Portable wrapper libraries"
that fail to preserve this behavior are inherently broken.
But then again, this is Mozilla code, so that's redundant.
2014-01-12 13:51:09 -08:00
Quanah Gibson-Mount
752fdfd445 Merge remote-tracking branch 'origin/mdb.master' 2014-01-07 17:45:08 -06:00
Hallvard Furuseth
5bda3565a9 ITS#7775 Drop <assert.h>, drop/replace assert()s.
db_mid2l_insert(): Move assert to mdb.c.
mdb_cursor_set(): Previous assert cannot fail now.
mdb_cursor_put(): Check mc/key and return EINVAL.
mdb_cursor_dbi(): No error return, so just segfault if cursor==NULL.
2014-01-06 23:21:54 +01:00
Howard Chu
6fb561d33e ITS#7775 Cleanup mdb_node_del() 2014-01-06 23:21:44 +01:00
Hallvard Furuseth
88342f9661 ITS#7775 Add mdb_env_set_assert() 2014-01-06 23:17:38 +01:00
Hallvard Furuseth
e40dae1064 Add mdb_env_<set,get>_userctx() 2014-01-06 23:17:38 +01:00
Hallvard Furuseth
c99525f42a ITS#7377 Invalidate txn on page-allocation errors
This should likely be reverted when all callers handle these errors.
2014-01-06 23:17:37 +01:00
Hallvard Furuseth
123b6e3c3e Wrap __func__ in mdb_func_ 2014-01-05 16:37:26 +01:00
Hallvard Furuseth
21621cc741 Invalidate the txn on corruption/internal errors 2014-01-05 16:26:21 +01:00
Howard Chu
c48cdd7a16 ITS#7775 cleanup unnecessary assert()s 2014-01-03 12:40:28 -08:00
Hallvard Furuseth
1f191ba930 mdb_page_malloc(): Move VGMEMP_ALLOC before memset 2013-12-31 02:16:19 +01:00
Hallvard Furuseth
ce2a0d4016 ITS#7771 mdb_cursor_del0(): Fix xcursor tracking. 2013-12-29 15:58:21 +01:00
Hallvard Furuseth
5adc46d1d2 sprintf format: pid_t need not be an int. 2013-12-29 15:57:33 +01:00
Hallvard Furuseth
661dd2c66d Add mdb_dbg_pgno(): (sub)pagenum for debug output. 2013-12-29 15:09:51 +01:00
Hallvard Furuseth
75494c08b4 ITS#7772 Reduce spurious sub-page growth.
mdb_cursor_put(): Use free sub-page space added by a
previous put(existing DUPSORT item), if any.
Tweak NUMKEYS code to avoid a new signedness warning.
2013-12-29 15:09:05 +01:00
Hallvard Furuseth
46de4ab84c ITS#7665 Drop lmdb.h doc on non-overlapping flags.
It was inaccurate and misplaced. Verify it in mdb.c instead.
2013-12-29 14:54:17 +01:00
Hallvard Furuseth
353cc77cff ITS#7515 has been fixed. 2013-12-29 14:52:30 +01:00
Hallvard Furuseth
c91f38160c Drop UNLOCK_MUTEX_R() on mdb_reader_pid() error 2013-12-29 14:52:30 +01:00
Pierangelo Masarati
2358b35c58 fix years old cut'n'paste 2013-12-28 11:12:42 +01:00
Hallvard Furuseth
4c8f57615c Fix commit "Raise safe max MDB_MAXKEYSIZE."
I.e. d69d2ce230, it left out some changes.
2013-12-21 12:31:57 +01:00
Howard Chu
79b12f2f93 ITS#7762 shortcut NULL RDNs 2013-12-11 04:41:48 -08:00
Hallvard Furuseth
a2ed03642c Replace MDB_node.mn_offset[], to ease debugging. 2013-12-11 11:57:13 +01:00
Hallvard Furuseth
2ce9ffa003 Comment MDB_node, mdb_page_unspill, mdb_update_key 2013-12-11 11:57:13 +01:00
Hallvard Furuseth
7e453c9763 Fix mdb_reader_list() and its spec.
It and the MDB_msg_func can now return >= 0 for success.
Always return any MDB_msg_func() error result.
2013-12-11 11:57:13 +01:00
Hallvard Furuseth
a58fd16ae5 Support dynamic max MDB keysize. 2013-12-11 11:57:13 +01:00
Hallvard Furuseth
d69d2ce230 Raise safe max MDB_MAXKEYSIZE.
Use a sub-DB for DUPSORT item #1/#2 per key if needed: Not a sub-
page too big for a node, nor an overflow page (which not all DUPSORT
code checks for). Move "insert" code, to avoid non-loop goto upwards.

(This is the commit which needs the change to xdata.mv_size in
commit 9d6e4a9163 "page sizes".)
2013-12-11 11:57:13 +01:00