Howard Chu
1b69295a48
Speedup cintcmp
...
Now that we know we're always 2-byte aligned...
13 years ago
Howard Chu
dac3fae3b5
Fix previous commit
13 years ago
Howard Chu
2e3bc39fa9
Further cursor-based restructuring
...
Get rid of all of the redundant MDB_*page structs and other cruft.
13 years ago
Howard Chu
976a150973
Cleanup unused code
13 years ago
Howard Chu
1f8c3369b9
Fix mdb_move_node again
13 years ago
Howard Chu
f9c8796d0b
Fix search_node, add cintcmp
13 years ago
Howard Chu
5e6a864513
Guarantee nodes are 2-byte aligned
...
Also fix xcursor_init1 md_dirty flag
Also another mdb_cmp refactoring fix
13 years ago
Howard Chu
293df78b2b
Change MDB_node to depend on 2-byte alignment
13 years ago
Howard Chu
807841b1aa
Fix for mdb_cmp refactoring
13 years ago
Howard Chu
963c421a97
Minor cleanup
13 years ago
Howard Chu
2cde97ae94
Use mdb_midl_append/sort instead of _insert
13 years ago
Howard Chu
70a4f6f29d
mdb_cmp refactoring
13 years ago
Howard Chu
7bb14a2e79
Cursor stuff working, no major perf gain
13 years ago
Howard Chu
1843fe0b53
Cursors in-progress, broken
13 years ago
Howard Chu
8d89a53165
Use cursor->mc_flags
13 years ago
Howard Chu
7f46832ec5
Begin reimplementing basic ops as cursor ops
13 years ago
Howard Chu
f6edbd7793
Add MDB_{FIRST,LAST}_DUP for cursor_get
13 years ago
Howard Chu
9d821c26c3
Fix mdb_split, fix MDB_GET_BOTH
13 years ago
Howard Chu
e91dae3ed5
Cleanup midl, start documenting internals
13 years ago
Howard Chu
30736a0ff5
Ugly-as-sin initial Windows port
13 years ago
Howard Chu
2510bea718
API cleanup, doxygen docs for public API
13 years ago
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.
13 years ago
Howard Chu
f7aa0d5e4a
Tweak locks, fix race conditions
13 years ago
Howard Chu
d27a7754f3
Reduce excessive memcpy in mdb_split
13 years ago
Howard Chu
027e1daa10
Fix mdb_split, tweak split_indx if space is tight
13 years ago
Howard Chu
01b9fc59fb
Fix update of big data items
13 years ago
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
13 years ago
Howard Chu
94718fab00
More debug, fix MDB_DEL_DUP
13 years ago
Howard Chu
ee69051a7c
More debug output
13 years ago
Howard Chu
d54eb7dd81
Add txn_reset / txn_renew
13 years ago
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.
13 years ago
Howard Chu
720c4b0a3d
Set MINKEYS to 2
...
For better space utilization
13 years ago
Howard Chu
66a647e55d
Keep re-using dpages instead of freeing them
13 years ago
Hallvard B Furuseth
ca496bd357
Avoid cast-away-const for errstr[]
13 years ago
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.
13 years ago
Hallvard B Furuseth
3029bb694d
Macro cleanup: Parenthesize, simplify, remove a ;
13 years ago
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.
13 years ago
Howard Chu
8f77043372
Fix cursor_set for dups
...
Also make sure dups are counted in md_entries
13 years ago
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.
13 years ago
Howard Chu
e15d4d16b6
Don't alloc in cursor_push/pop
13 years ago
Howard Chu
1ceae5c2c0
Fix multi-page commits
13 years ago
Howard Chu
6d924c1dda
Fix overflow page read
13 years ago
Howard Chu
3dd815162c
Sub-DB init/dirty fixes
13 years ago
Howard Chu
11308a190d
Fix dupsort fetch
13 years ago
Howard Chu
697e00a8e2
More txn/cursor cleanup
13 years ago
Howard Chu
e29660566c
Update DB tables on commit even if no dirty pages
13 years ago
Howard Chu
bab6be8077
Add mdb_strerror(), mdb_env_set_flags()
13 years ago
Howard Chu
9902a7764e
allow silent commit of read-only TXNs
13 years ago
Howard Chu
5e3a3db1f2
Error cleanup
...
Replace MDB_FAIL with more specific codes
Return MDB_PANIC after failure to write meta page
13 years ago
Howard Chu
1aa5105b67
Use IDL2 for dirty page list
13 years ago