Howard Chu
1ffb5e1cba
Fix GET_BOTH_RANGE
...
On near match, return the matched data.
11 years ago
Howard Chu
b77689f975
ITS#7756 keysizes were wrong in mdb_update_key
11 years ago
Howard Chu
f6d8dc4e76
Windows/Win64/MSVC tweaks
...
Silence warnings, fix broken MinGW64 definitions, etc.
11 years ago
Howard Chu
509a197728
Change default mem init behavior
...
Init malloc'd memory by default, use #MDB_NOMEMINIT to disable.
Bump version to 0.9.10
11 years ago
Hallvard Furuseth
92f71f50f9
Add MDB_CLEANMEM option.
...
Initialize unused portions of DB pages, for security or to silence
checkers like Purify and Valgrind. Like BDB configure --enable-umrw.
11 years ago
Hallvard Furuseth
fc87d405f1
Fix MDB_MAXKEYSIZE doc: Account for MDB_DUPSORT.
...
A node may need room for [key, subpage with 2 items] = 3 keys.
11 years ago
Hallvard Furuseth
9d6e4a9163
ITS#7713 Handle bigger OS page sizes
...
Use DB page size = min(32k, OS pagesize). Previous limit was 8k
(MDB_MINKEYS*MDB_PAGESIZE).
Handle DB pagesize < OS pagesize. That's an I/O pessimization,
but transactions remain atomic: Only writing the MDB_meta must
be atomic, and it fits in one OS page.
Don't truncate desired subpage size: Asssign it to a size_t
(mv_size), not an uint16_t (mp_upper).
11 years ago
Hallvard Furuseth
25d370cb2e
mdb_cursor_put(): Factor out code. Kill a label.
11 years ago
Howard Chu
550bbe3788
Fix prev commit, cursor depth comparison
11 years ago
Howard Chu
4a1717708c
Fix cursor_del0 cursor fixup
...
Skip cursors that aren't as deep as current cursor
11 years ago
Howard Chu
8c9a26c90d
More for #7589
11 years ago
Howard Chu
34459e0585
ITS#7589 another mdb_page_split fix
...
Tweak split_indx check, go one slot further.
11 years ago
Howard Chu
e31983c723
ITS#7736 fix regression in ITS#7733 patch
...
In d8eccb353b
11 years ago
Howard Chu
d8eccb353b
ITS#7733 check cursor index before cursor_del
11 years ago
David Wilson
742a078ea5
ITS#7734 Add MDB_NORDAHEAD to CHANGELESS.
11 years ago
Howard Chu
b86f08e9d6
Add mdb_env_get_fd()
...
Return the environment's filedescriptor. Useful when the caller
is doing their own locking.
11 years ago
Howard Chu
dddc7a385b
Fix 01dfb2083d
...
USE_POSIX_SEM must define USE_HASH
11 years ago
Howard Chu
ab9b08f8af
ITS#7725 add MDB_NORDAHEAD flag for env_open
11 years ago
Howard Chu
5a9ddfd289
ITS#7589 silence warnings
11 years ago
Howard Chu
2211fb15db
ITS#7589 Fix typo in prev commit
11 years ago
Howard Chu
400e21370b
ITS#7589 Cleanup unneeded vars in prev patch
11 years ago
Howard Chu
310b656a2e
ITS#7589 avoid wasting space in mdb_page_split
...
Also, check the split point on branch pages as well as leaf pages.
11 years ago
Howard Chu
01dfb2083d
Add MDB_USE_HASH
...
There may be other uses for it besides semaphore names.
11 years ago
Howard Chu
940f5cb373
ITS#7722 fix page_merge for collapsing root
...
Other cursors being fixed up are not necessarily height 1.
11 years ago
Howard Chu
bf0e97aa0e
ITS#7718 invalidate cursor when DB gets emptied
11 years ago
Howard Chu
d327a36ad8
Fix mdb_env_set_mapsize()
...
Don't allow shrinking below minimum size for an already open env.
11 years ago
Howard Chu
2520247ba1
ITS#7715 always set filesize for WRITEMAP
11 years ago
Hallvard Furuseth
9f7ae8925f
Add Caveat: Readers need write access. Whitespace.
11 years ago
Hallvard Furuseth
0f9b79e12c
Maintain MDB_cursor.mc_top
11 years ago
Hallvard Furuseth
99ea7669a3
mdb_cursor_sibling(): Fix error result
11 years ago
Hallvard Furuseth
8f075595a1
mdb_node_add(): Plug page leak when MDB_PAGE_FULL.
...
Do not fail after mdb_page_new() succeeds.
11 years ago
Hallvard Furuseth
3a1d73daff
Optimize code holding reader mutex
11 years ago
Hallvard Furuseth
3d67838a59
Set MDB_xcursor DB_DIRTY, clear md_name.
...
Both were unused and md_name was unmaintained -- except
mdb_cursor_touch(xcursor) would abuse md_name as a key to
touch MAIN_DBI if it could somehow get passed ! DB_DIRTY.
11 years ago
Hallvard Furuseth
07dc79a7c3
Set subDB DBI=parent DBI, fix MDB_DUPSORT delete.
...
xcursor DBIs were parent DBI+1 for debugging. Instead output
-(parent DBI). Fixes a crash in mdb_cursor_del0()'s xcursor
tracking, it forgot to subtract 1 for C_SUB cursors.
11 years ago
Howard Chu
79eac42c0f
s/MDB_NORDLOCK/MDB_NOLOCK/
...
Leave all lock management to the caller.
11 years ago
Howard Chu
a1685c3ef7
More doc for MDB_NORDLOCK
11 years ago
Howard Chu
f739940547
Add MDB_NORDLOCK to omit all reader table usage
...
Calling app wants to manage its own locking.
11 years ago
Hallvard Furuseth
e3f6c152c5
Drop unneeded code.
...
MDB_txn.mt_toggle: Use (mt_txnid & 1) instead.
Drop error checks which will be repeated.
mdb_cursor_set(): Turn assert into if/return to match the above.
mdb_cursor_del(): 'flags' are now used as bitflags.
11 years ago
Hallvard Furuseth
2980bd30f5
Clean up and simplify mdb_page_search().
...
Only named DBs can have DB_STALE, and they do not use MDB_PS_MODIFY.
Replace magic key values with flags. Drop duplicated comments at
mdb_page_search_root() vs. mdb_page_search(), and rephrase.
11 years ago
Hallvard Furuseth
31cfca9316
Tweak MDB_DEBUG output
11 years ago
Hallvard Furuseth
52cb8b3417
mdb_page_unspill(): Rename local vars.
...
The names have caused bugs, "txn" was treated as
the current transaction.
11 years ago
Hallvard Furuseth
8e1d10e828
ITS#7515 Fix mdb_page_unspill() in nested txn.
...
Malloc a page in this txn, not in a parent.
11 years ago
Hallvard Furuseth
a3b3482854
ITS#7515 Fix mdb_txn_commit(nested txn with spills).
...
Catch malloc error.
Fix hunt for dirty vs spilled pages: Don't leave x at a deleted pageno.
Cleanup: Factor out variables, squash pages already marked for deletion.
11 years ago
Hallvard Furuseth
bc48a40621
ITS#7515 Fix mt_dirty_room in nested txns.
...
Fix description & code: Also ignore dirty pages hidden by
spilled pages, as they won't merge into our dirty_list.
Update it in mdb_page_flush() instead of mdb_page_spill().
11 years ago
Hallvard Furuseth
cfe262dce9
ITS#7515 mdb_pages_xkeep(): Careful about xcursors.
...
Don't prod sub-pages or pages referring to uninitialized xcursors.
11 years ago
Hallvard Furuseth
5b96d68faf
mdb_pages_xkeep(): Reformat, use common flag mask
11 years ago
Hallvard Furuseth
5b21307f29
Update MDB documentation and comments.
11 years ago
Hallvard Furuseth
3335b25834
ITS#7682 mdb_env_copy(): Avoid Linux O_DIRECT bug.
...
Use fcntl() to set the flag. Linux open(,O_DIRECT...) can create
the file even on failure, if the filesystem lacks O_DIRECT support.
11 years ago
Howard Chu
912e09fd04
ITS#7681 fix 18a07eb7c2
...
Set rc=0 when taking the SET_RANGE branch
11 years ago
Howard Chu
0144da6eab
ITS#7701 fix mdb_rebalance
...
Must copy tmp cursor back to real cursor when merging into tmp cursor.
11 years ago