Commit Graph

367 Commits

Author SHA1 Message Date
Howard Chu
fadf75a9cb Further clarification of mdb_open() 2012-05-05 19:41:45 -07:00
Howard Chu
fbf9c23304 ITS#7251 fix Apple/Windows shared mutex naming 2012-04-18 15:59:54 -07:00
Hallvard Furuseth
20baad4a20 libmdb: midl.h namespace cleanup.
Prefix ID, NOID, ID2, IDL, ID2L with 'MDB_'.
Also drop bdb from file description.
2012-04-12 08:24:36 +02:00
Hallvard Furuseth
0a4aa88927 libmdb: Simplify pick_meta() from read_meta().
Put one call in #if MDB_DEBUG. Move DPRINTF(Using meta page #) there.
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
dce5bb2fee libmdb: Simplify mdb_default_cmp. No real change. 2012-04-12 08:15:33 +02:00
Hallvard Furuseth
729a8a2819 libmdb: signed meets unsigned warning cleanup 2012-04-12 08:15:33 +02:00
Hallvard Furuseth
99fa22c164 libmdb: MDB_FDATASYNC code cleanup.
Define MDB_FDATASYNC() instead of redefining fdatasync().
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
592b3f8727 libmdb: Add C++ 'extern "C" {}' to *.h 2012-04-12 08:15:33 +02:00
Hallvard Furuseth
8e1ebbb4a8 libmdb: Don't open datafile twice when not needed.
If the database is opened with MDB_RDONLY or MDB_NOSYNC,
instead use the same file descriptor for me_mfd and me_fd.

Also factor out Windows/Unix error handling after open.
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
6d0b424dbe libmdb: Set close-on-exec flag on lockfile 2012-04-12 08:15:33 +02:00
Hallvard Furuseth
4a0b30499c libmdb: Do not use the MDB_txbody.mtb_txnid field.
Get txn->mt_txnid from the meta page instead.  Otherwise it
and txn->mt_toggle could become inconsistent, since read-only
txns fetched both from MDB_txbody without mutex proteciton.
2012-04-12 08:15:33 +02:00
Hallvard Furuseth
d1738c3e6b Fix MDB_DEBUG in last ITS#7299 commit.
Make DPRINTF usable in if-else.  Silence signed vs unsigned warning.
2012-04-12 07:34:13 +02:00
Howard Chu
d793594173 ITS#7229 more mdb_page_split tweaks
Also add mdb_debug/mdb_debug_start to toggle debug output at runtime
2012-04-10 14:05:05 -07:00
Howard Chu
a66f9e9292 ITS#7210 fix check for freelist changes
Was being fooled before because the newly malloc'd block had
the same address as the previously freed block.
2012-04-09 19:24:47 -07:00
Howard Chu
191d78948b ITS#7238 doc clarification 2012-04-09 05:01:37 -07:00
Howard Chu
ae027b5214 ITS#7229 additional tweaks
Should probably compare nsize to pg_size/4 instead...
2012-04-09 04:45:32 -07:00
Howard Chu
de0cb27d70 ITS#7230 check and strip 0 length IDLs from freelist 2012-04-09 04:44:08 -07:00
Howard Chu
7ba25c488a ITS#7229 more mdb_page_split fixes 2012-04-07 01:27:38 -07:00
Howard Chu
84acc0e803 ITS#7219 fixup keysize in previous commit 2012-04-04 05:44:53 -07:00
Howard Chu
0f10814494 ITS#7219 fix for odd-aligned keys in mdb_update_key() 2012-04-03 12:24:27 -07:00
Howard Chu
91bab157f6 ITS#7210 fix leak of overflow pages in freelist 2012-03-30 06:36:02 -07:00
Howard Chu
f53beeabee Partial revert of prev commit
Sub-DBs were correct before
2012-03-28 10:44:18 -07:00
Howard Chu
ac0b18911b Fix entry counts in cursor_put
when replacing an existing item
2012-03-28 10:34:35 -07:00
Howard Chu
0952cfdf84 Fix uninit'd xcursor index 2012-03-28 09:33:06 -07:00
Howard Chu
5c16c8842b Add mfree utility to show the freelist 2012-03-28 09:20:18 -07:00
Howard Chu
04f488e7a0 ITS#7210 additional freelist fixes
Also allow read access to freelist in mdb_cursor_open
2012-03-28 09:18:00 -07:00
Howard Chu
b92af0760b ITS#7210 partial fix
Allow pages from free list to be used when growing the free list.
(Yes, this is self-referential...)
2012-03-27 06:44:28 -07:00
Howard Chu
8a4981d8aa ITS#7213 fix page_split with MDB_APPEND
don't skip the cursor adjust checks
2012-03-26 06:58:16 -07:00
Howard Chu
25e8e82c5f Update overflow page count when freeing overflow page 2012-03-20 17:14:59 -07:00
Hallvard Furuseth
c7da506dd2 Fix MDB_txninfo.mt2 padding on Windows/Apple 2012-03-09 19:30:34 +01:00
Hallvard Furuseth
c7fe1f466e Tweak mdb comment with conflicting spec of 'ID' 2012-03-09 19:25:44 +01:00
Hallvard Furuseth
5c182fbedf Fix valgrind call after malloc failure in mdb.
Also line up the code logic a bit.
2012-03-09 19:22:31 +01:00
Hallvard Furuseth
d3b9939e71 Clean up MAP_FAILED handling in mdb.
Delay (MDB_txninfo*) cast to after comparing mmap() with MAP_FAILED.
Otherwise, if MAP_FAILED = (void*)-1 but MDB_txninfo requires stricter
alignment, the compiler could assume the result is never MAP_FAILED.

Also store NULL in env->(me_map, me_txns) after mmap failure.
2012-03-09 19:06:04 +01:00
Hallvard Furuseth
2baadabdff ITS#7191 Align dirty MDB pages on the stack 2012-03-09 18:45:39 +01:00
Howard Chu
15f3e650da ITS#7191 more alignment tweaks
Revealed when gcc optimization is enabled
2012-03-08 21:28:24 -08:00
Howard Chu
2ccf0d58b2 Fix typo in 7bc62c5128 2012-03-06 22:55:53 -08:00
Howard Chu
7bc62c5128 ITS#7190 fix merging of branch pages in deletes 2012-03-06 22:12:21 -08:00
Hallvard Furuseth
d50d57ed63 Fix libmdb comments 2012-03-03 09:58:05 +01:00
Hallvard Furuseth
e1b88d93ac Remove development file libmdb/make.sh 2012-03-03 09:52:33 +01:00
Hallvard Furuseth
d8b4598085 ITS#7191 Fix mdb_xcursor_init1() unaligned access 2012-03-03 09:49:20 +01:00
Howard Chu
1b07b48c1a ITS#7196 use IOV_MAX if it's defined and small 2012-03-02 17:26:49 -08:00
Howard Chu
b23bb7a0b1 ITS#7160 get BYTE_ORDER def for HPUX (and Solaris) 2012-02-21 11:52:01 -08:00
Howard Chu
953796759e Fix typo in e8e57be421 2012-01-21 17:31:23 -08:00
Howard Chu
e8e57be421 Add valgrind support with -DUSE_VALGRIND
Track allocations and invalid accesses to freed tmp pages.
2012-01-21 08:22:59 -08:00
Howard Chu
3d6b924c25 txn_commit must abort txn before returning errors
Fix for failure when committing a txn that is a child of
some parent txn.
2012-01-21 08:20:43 -08:00
Howard Chu
1c8de1883c ITS#7121 fix page splits when newindx == 0 2012-01-21 08:18:37 -08:00
Howard Chu
b9cbcb0588 ITS#7126 fix cursor tracking code
Don't compare cursors that aren't deep enough to match the
current cursor.
2012-01-21 08:12:56 -08:00
Howard Chu
713bf092b6 Happy New Year! 2012-01-21 08:09:16 -08:00
Howard Chu
a17f8e7326 ITS#7121 fix page splits when data+key size is too large 2012-01-21 08:09:16 -08:00
Kurt Zeilenga
81afbb2fca Happy New Year! 2012-01-21 08:07:21 -08:00