Hallvard Furuseth
2d1f3b7ed3
Fix memn(r)cmp of key sizes > INT_MAX. Simplify.
2011-09-10 22:49:34 +02:00
Hallvard Furuseth
69e53cf700
Check some mdb integer type assumptions
2011-09-10 22:49:34 +02:00
Hallvard Furuseth
88da18cccf
Put MDB_node.<mn_lo,mn_hi> in host byte order.
2011-09-10 22:49:20 +02:00
Hallvard Furuseth
c5dad7a6d0
C90 compatibility cleanup in mdb.
...
Fix void* pointer arithmetic in cintcmp().
Fix invalid ';'s in declarations after possibly-empty macros.
2011-09-10 15:39:02 +02:00
Hallvard Furuseth
3dc8fa491a
Cleanup mdb macros.
...
Parenthesize. Rename GetPageSize -> GET_PAGESIZE since it does not
behave like a function (it has a non-pointer output argument).
2011-09-10 10:11:55 +02:00
Hallvard Furuseth
ec2d82f79a
libmdb/.gitignore += test[45], Doxygen output
2011-09-10 10:11:55 +02:00
Howard Chu
acdc248f57
If put(NOOVERWRITE) exists, return existing data
2011-09-09 22:28:07 -07:00
Howard Chu
a7edb95e64
Minor typos, additional clarification
2011-09-09 03:52:12 -07:00
Howard Chu
0c487538cf
Partial revert, fix MDB_page definition
2011-09-08 20:18:29 -07:00
Howard Chu
9ac8638d9d
More docs
2011-09-08 17:13:51 -07:00
Howard Chu
bed3123b82
More docs
2011-09-08 14:34:21 -07:00
Howard Chu
1b69295a48
Speedup cintcmp
...
Now that we know we're always 2-byte aligned...
2011-09-08 13:10:17 -07:00
Howard Chu
dac3fae3b5
Fix previous commit
2011-09-08 10:08:21 -07:00
Howard Chu
6ac14938e2
Merge branch 'mdb.cursor' into mdb.master
2011-09-07 23:57:50 -07:00
Howard Chu
8678fef597
Forgot to commit this
2011-09-07 23:11:14 -07:00
Howard Chu
47c1218916
Forgot to commit this
2011-09-07 23:10:19 -07:00
Howard Chu
2e3bc39fa9
Further cursor-based restructuring
...
Get rid of all of the redundant MDB_*page structs and other cruft.
2011-09-07 23:09:45 -07:00
Howard Chu
976a150973
Cleanup unused code
2011-09-06 23:37:37 -07:00
Howard Chu
1f8c3369b9
Fix mdb_move_node again
2011-09-06 23:16:45 -07:00
Howard Chu
f9c8796d0b
Fix search_node, add cintcmp
2011-09-06 15:22:53 -07:00
Howard Chu
5e6a864513
Guarantee nodes are 2-byte aligned
...
Also fix xcursor_init1 md_dirty flag
Also another mdb_cmp refactoring fix
2011-09-06 13:50:51 -07:00
Howard Chu
293df78b2b
Change MDB_node to depend on 2-byte alignment
2011-09-06 05:17:24 -07:00
Howard Chu
807841b1aa
Fix for mdb_cmp refactoring
2011-09-05 16:54:39 -07:00
Howard Chu
963c421a97
Minor cleanup
2011-09-05 14:22:46 -07:00
Howard Chu
2cde97ae94
Use mdb_midl_append/sort instead of _insert
2011-09-05 02:36:24 -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
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
b30d0266e7
Tweak docs
2011-09-02 01:09:11 -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