Howard Chu
69829288dc
ITS#8321 page_touch - don't fixup the cursor we just touched
9 years ago
Howard Chu
db02a71dd8
ITS#8321 mdb_put cursor needs tracking too
9 years ago
Howard Chu
cf8677e1b8
ITS#8321 Fix mdb_cursor_set
...
Always reinit mc_pg[0] if cursor is not C_INITIALIZED
It might have a stale value when using nested txns
9 years ago
Howard Chu
b5ce8108e8
ITS#8321 deinit empty cursors
...
Always unset C_INIT flag if the cursor's target DB has been deleted
9 years ago
Howard Chu
83258ca81e
ITS#8323 Fix nested commit
...
Must remove our spilled pages from parent's dirty list
9 years ago
Hallvard Furuseth
fae01c8df5
CURSOR_TMP_[UN]TRACK() -> WITH_CURSOR_TRACKING()
9 years ago
Orivej Desh
85d2f9804a
ITS#8320 mdb_load: fix loading data from simple text files
...
mdb_load -T was supposed to read escaped text, but 21b51cb7
"Add mdb_load"
made it read hex.
9 years ago
Orivej Desh
e29cfa0b49
ITS#8319 mdb_load: explain readline and mdb_cursor_put errors
9 years ago
Howard Chu
6fdaea4165
ITS#8321 reorganize page_split fixups
...
DUPFIXED fixups needed to occur after separator update.
MDB_RESERVE handling moved after split fixup.
9 years ago
Howard Chu
fd598083a7
ITS#8321 simplify page_split fixups
9 years ago
Howard Chu
3a31dd5a8a
ITS#8321 track temporary cursors
...
In rebalance/split operations, temporary cursors need to be visible
to propagate fixups
9 years ago
Howard Chu
828107eb63
ITS#8321 fix mdb_cursor_put
...
Ignore sub-cursors that shouldn't be fixed up
9 years ago
Howard Chu
0d5ebc508e
ITS#8321 fix mdb_cursor_shadow()
...
Set a valid txn so that cursor fixup code works on the shadows
9 years ago
Howard Chu
88ac698707
ITS#8321 fix mdb_cursor_chk()
...
It was reporting spurious errors due to uninit'd cursors
9 years ago
Howard Chu
3b9f857d8b
ITS#8321 don't skip fixups on splitting cursors
...
Adjustments can't be skipped, in recursive calls each level must
fixup their own level.
9 years ago
Howard Chu
f3eb26c9bb
ITS#8321 Fix del/dupsort
...
When deleting a dupsort key, if other cursors pointed at that key,
set them to uninit'd, not EOF. They no longer have anything to
point at.
9 years ago
Howard Chu
f3e38565e4
ITS#8316 more for 60c34d14ec
9 years ago
Howard Chu
d6ae2553df
ITS#8300 more for prev commit
...
Just tell explicitly which direction we moved/merged from
9 years ago
Howard Chu
946e4d3b21
Silence some valgrind uninit warnings
9 years ago
Howard Chu
1bfe7578bd
Refix root split check from 5da67968af
9 years ago
Oskari Timperi
58ad1dd757
ITS#7992 assume Windows paths are UTF-8
9 years ago
Howard Chu
60c34d14ec
ITS#8316 cursor fixup in page_merge
...
Deleting the merged page requires bumping down other ki's
of the page's parent.
9 years ago
Howard Chu
a98b74e6df
ITS#8315 fix ovpage_free
...
Keep dirty_room sync'd with dirty_list
9 years ago
Howard Chu
f08b70d0df
ITS#8313 more for ITS#8062
...
dummy flags must be init'd due to 3d46d550
9 years ago
Hallvard Furuseth
4d140b92ee
ITS#8312 Fix loose pages in commit(nested txn)
9 years ago
Howard Chu
355f64ad07
ITS#8311 add comment
9 years ago
Howard Chu
6d63afb1d9
ITS#8311 fix page_split from update_key
...
Check for top of stack. Usually the cursor only has height 1 when
calling page_split, but not always.
9 years ago
Hallvard Furuseth
3360cbad66
ITS#7209 Default MDB_DSYNC = O_SYNC if no O_DSYNC
9 years ago
Howard Chu
c46119a545
ITS#8310 fix mdb_rebalance cursor fixup
...
When collapsing root, must adjust entire cursor stack
10 years ago
Howard Chu
c6d908075e
Tweak robust mutex detection for glibc
10 years ago
Howard Chu
3c9786b5e8
ITS#8304 fix page_merge
...
Was using the pre-touch dst page pointer instead of the touched page
10 years ago
Howard Chu
0fdfdf320c
ITS#8300 more for node_move
...
When moving a node from one page to another, make sure other cursors'
parent index gets adjusted too.
10 years ago
Howard Chu
3ff8a73704
ITS#8300 simplify
10 years ago
Howard Chu
b12bdaaade
ITS#8300 more for node_move fixups
...
When moving a node from the right neighbor, a different
adjustment is needed.
10 years ago
Howard Chu
7a5a78ef0c
ITS#8300 fix node_move
...
Don't adjust other cursors when we added a node on the right.
10 years ago
Howard Chu
0c777dfc99
ITS#8300 fix rebalance after node_move
...
ITS#8258, ITS#7829 fixes checked parent index to see if we were moving
from a left neighbor. Should have just checked to see if current index
was 0, meaning we added on the left. (Parent index may not tell us
anything meaningful after a nested rebalance.)
10 years ago
Howard Chu
eddd9b7537
ITS#8238 fix DUPFIXED page_split
...
Parent mc_ki wasn't adjusted if new_indx was > split point
10 years ago
Howard Chu
d372a2a199
ITS#8299 fix page_merge cursor fixup
...
The parent's mc_ki has changed. We need to fix that up as well
in other cursors.
10 years ago
Howard Chu
b9130d3d63
Use MDB_USE_ROBUST not MDB_NO_ROBUST
10 years ago
Howard Chu
2be6797534
Add MDB_NO_ROBUST to disable Robust Mutexes
10 years ago
Hallvard Furuseth
2ee9c4a30e
Fix MDB_NOSYNC,MDB_NOMETASYNC thinko
10 years ago
Ignacio Casal Quinteiro
619ccdd3da
ITS#8270 win32: fix conversion error with MSVC
10 years ago
Howard Chu
9411de60d2
ITS#7771 more for prev commit
10 years ago
Howard Chu
7c1baed4de
ITS#7771 fix cursor tracking on fake pages
...
node_del shifts nodes around, cursors pointing at fake pages
need to have their mc_pg[0] corrected.
10 years ago
Hallvard Furuseth
e211b870d0
ITS#8263 streamline prev patch
10 years ago
Howard Chu
c456d219a9
ITS#8263 fix cursor tracking in cursor_put
10 years ago
Howard Chu
b42cd65193
ITS#8264 fix cursor_del cursor tracking
...
Some destination fixups need to happen immediately after nodes
are moved, before rebalancing
10 years ago
Howard Chu
8b46dcc26d
ITS#8258 fix rebalance/split
...
The tree height can also increase during rebalance, not just shrink.
This can happen if update_key needs to split a parent branch page.
10 years ago
Hallvard Furuseth
436333b16c
Fix typo in mdb_tassert().
...
No effect on current code.
10 years ago
Howard Chu
e034bd3d84
ITS#8259 fix usage ordering
10 years ago