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
7449ca604c
Bump to 0.9.9
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
7bdb5be0b5
Rename SWAP() to avoid conflict with sqlightning.
...
Happened since sqlightning #includes mdb.c, midl.c.
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
Howard Chu
0f842a2710
Release 0.9.8
11 years ago
Howard Chu
7e58cc0fd3
updates
11 years ago
Salvador Ortiz
cfc13e2b48
ITS#7682 In mdb_env_copy retry open if O_DIRECT fails
11 years ago
Howard Chu
90c55178db
More for 5f6fa8c042
...
Reset delete flag in cursor_put().
11 years ago
Claude Brisson
18a07eb7c2
ITS#7681 fix mdb_cursor_set behaviour for MDB_SET_RANGE
11 years ago
Howard Chu
5f6fa8c042
Remember if last cursor op was a delete
...
If so, don't advance cursor on next NEXT. Also, init xcursor
on the next GET_CURRENT.
11 years ago
Howard Chu
3d59ca3558
Add a changelog
11 years ago
Howard Chu
5c5300c604
Bump version to 0.9.8
11 years ago
Howard Chu
2e7130cab0
Allow mdb_env_set_mapsize() on an open environment
...
The caller is responsible for making sure no transactions are
active in this process before resizing. This is slightly lighter
weight than doing a full env_close/env_open cycle.
11 years ago