The motivation for this change is my distribution moving to a multiarch
layout. While the architecture specific stuff (binaries, libraries,
etc.) is installed under /usr/${host}/{bin,lib,...} architecture-independent
data should still be installed to /usr/share/.
Change-Id: I9bc1e4ba975e8ef7fe945ca3b30f044ac40eedf2
Multiple bugs were fixed in the cursor fixups which
adjust other open cursors in response to various write ops.
Includes:
- 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.
- ITS#8321 don't skip fixups on splitting cursors.
Adjustments can't be skipped, in recursive calls each level must
fixup their own level.
- ITS#8321 fix mdb_cursor_chk().
It was reporting spurious errors due to uninit'd cursors
- ITS#8321 fix mdb_cursor_shadow().
Set a valid txn so that cursor fixup code works on the shadows
- ITS#8321 fix mdb_cursor_put.
Ignore sub-cursors that shouldn't be fixed up
- ITS#8321 track temporary cursors.
In rebalance/split operations, temporary cursors need to be visible
to propagate fixups
- ITS#8321 simplify page_split fixups.
- ITS#8321 reorganize page_split fixups.
DUPFIXED fixups needed to occur after separator update.
MDB_RESERVE handling moved after split fixup.
Change-Id: I0c04acf54ebf6e84f32996b5723ec6fafb983ad9
Check for top of stack. Usually the cursor only has height 1 when
calling page_split, but not always.
Change-Id: Iad221be30edac0f82b650f787e5dbe721cc978e0
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.)
Includes:
- ITS#8300 fix node_move
Don't adjust other cursors when we added a node on the right.
- ITS#8300 more for node_move fixups
When moving a node from the right neighbor, a different
adjustment is needed.
- ITS#8300 simplify
- ITS#8300 more for node_move
When moving a node from one page to another, make sure other cursors'
parent index gets adjusted too.