Howard Chu
ffdf3d7afb
Merge remote branch 'mdb/mdb.master'
2011-09-05 15:19:41 -07:00
Howard Chu
963c421a97
Minor cleanup
2011-09-05 14:22:46 -07:00
Howard Chu
e44d4cf06a
Use mdb_midl_append/sort instead of _insert
2011-09-05 02:37:43 -07:00
Howard Chu
2cde97ae94
Use mdb_midl_append/sort instead of _insert
2011-09-05 02:36:24 -07:00
Howard Chu
221be39208
mdb_cmp refactoring
2011-09-05 01:19:24 -07:00
Howard Chu
0609aa45b3
Reimplement basic ops as cursor ops
2011-09-05 01:19:24 -07:00
Howard Chu
23790cf390
Add MDB_{FIRST,LAST}_DUP for cursor_get
2011-09-05 01:17:13 -07:00
Howard Chu
9cfbea8e8f
Cleanup midl, start documenting internals
2011-09-05 01:16:44 -07:00
Howard Chu
70a4f6f29d
mdb_cmp refactoring
2011-09-05 00:46:32 -07:00
Howard Chu
7bb14a2e79
Cursor stuff working, no major perf gain
2011-09-04 21:33:57 -07:00
Howard Chu
1843fe0b53
Cursors in-progress, broken
2011-09-04 21:33:57 -07:00
Howard Chu
8d89a53165
Use cursor->mc_flags
2011-09-04 21:33:57 -07:00
Howard Chu
7f46832ec5
Begin reimplementing basic ops as cursor ops
2011-09-04 21:33:57 -07:00
Howard Chu
f6edbd7793
Add MDB_{FIRST,LAST}_DUP for cursor_get
2011-09-04 21:33:57 -07:00
Howard Chu
2197928aaa
Fix mdb_split, fix MDB_GET_BOTH
2011-09-03 20:12:09 -07:00
Howard Chu
9d821c26c3
Fix mdb_split, fix MDB_GET_BOTH
2011-09-03 20:11:07 -07:00
Howard Chu
e91dae3ed5
Cleanup midl, start documenting internals
2011-09-03 14:27:07 -07:00
Howard Chu
30736a0ff5
Ugly-as-sin initial Windows port
2011-09-01 16:31:10 -07:00
Howard Chu
2510bea718
API cleanup, doxygen docs for public API
2011-09-01 16:31:10 -07:00
Howard Chu
0f459dd773
Cleanup, fix freelist alloc
...
Don't allow new pages for free list to come from the free list.
Otherwise a nasty data self-reference occurs that is too much
trouble to unwind.
2011-09-01 16:31:10 -07:00
Howard Chu
f7aa0d5e4a
Tweak locks, fix race conditions
2011-09-01 16:31:10 -07:00
Howard Chu
d27a7754f3
Reduce excessive memcpy in mdb_split
2011-09-01 16:31:10 -07:00
Howard Chu
027e1daa10
Fix mdb_split, tweak split_indx if space is tight
2011-09-01 16:31:10 -07:00
Howard Chu
01b9fc59fb
Fix update of big data items
2011-09-01 16:31:10 -07:00
Howard Chu
13c663f666
Fix free page reclaim and dbs table update
...
Can re-use free pages 1 txn earlier
Must update all dbs tables on txn commit
2011-09-01 16:31:10 -07:00
Howard Chu
94718fab00
More debug, fix MDB_DEL_DUP
2011-09-01 16:31:10 -07:00
Howard Chu
ee69051a7c
More debug output
2011-09-01 16:31:10 -07:00
Howard Chu
d54eb7dd81
Add txn_reset / txn_renew
2011-09-01 16:31:10 -07:00
Howard Chu
590c728044
First cut at DUPFIXED support
...
Also in cursor_set, check the current page (if already set from
before) before starting over again from the root.
2011-09-01 16:31:10 -07:00
Howard Chu
720c4b0a3d
Set MINKEYS to 2
...
For better space utilization
2011-09-01 16:31:10 -07:00
Howard Chu
66a647e55d
Keep re-using dpages instead of freeing them
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
ca496bd357
Avoid cast-away-const for errstr[]
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
5b3b522313
Wrap O_DSYNC in MDB_DSYNC.
...
If O_DSYNC is not defined, that may be due to poor compiler options.
We could fall back to the less efficient O_SYNC, but it seems better
to let the user learn of the problem and give better compiler options.
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
3029bb694d
Macro cleanup: Parenthesize, simplify, remove a ;
2011-09-01 16:31:10 -07:00
Hallvard B Furuseth
a1b4144b80
Drop gcc extension ,##__VA_ARGS__. Add DPUTS().
...
C99 says DPRINTF(fmt, ...) must get at least 2 args. Using DPUTS for 1 arg.
2011-09-01 16:31:10 -07:00
Howard Chu
8f77043372
Fix cursor_set for dups
...
Also make sure dups are counted in md_entries
2011-09-01 16:31:10 -07:00
Howard Chu
edf9d8e51b
Sorted dups fix
...
Write the first datum normally. Convert to a sub-db if
additional items for the same key are written.
2011-09-01 16:31:10 -07:00
Howard Chu
e15d4d16b6
Don't alloc in cursor_push/pop
2011-09-01 16:31:10 -07:00
Howard Chu
1ceae5c2c0
Fix multi-page commits
2011-09-01 16:31:10 -07:00
Howard Chu
6d924c1dda
Fix overflow page read
2011-09-01 16:31:10 -07:00
Howard Chu
3dd815162c
Sub-DB init/dirty fixes
2011-09-01 16:31:10 -07:00
Howard Chu
11308a190d
Fix dupsort fetch
2011-09-01 16:31:10 -07:00
Howard Chu
697e00a8e2
More txn/cursor cleanup
2011-09-01 16:31:10 -07:00
Howard Chu
e29660566c
Update DB tables on commit even if no dirty pages
2011-09-01 16:31:10 -07:00
Howard Chu
bab6be8077
Add mdb_strerror(), mdb_env_set_flags()
2011-09-01 16:31:10 -07:00
Howard Chu
9902a7764e
allow silent commit of read-only TXNs
2011-09-01 16:31:10 -07:00
Howard Chu
5e3a3db1f2
Error cleanup
...
Replace MDB_FAIL with more specific codes
Return MDB_PANIC after failure to write meta page
2011-09-01 16:31:09 -07:00
Howard Chu
1aa5105b67
Use IDL2 for dirty page list
2011-09-01 16:31:09 -07:00
Howard Chu
88a5f35c43
Use O_DSYNC on metafd.
...
Use sync writes in mtest.
2011-09-01 16:31:09 -07:00
Howard Chu
3e1c72a08e
Minor cleanup
2011-09-01 16:31:09 -07:00