mdbx: backport - ITS#8316 cursor fixup in page_merge.

Deleting the merged page requires bumping down other ki's
of the page's parent.

Change-Id: Ifc94e26b8755ede2400521556556a6824bc2c62b
This commit is contained in:
Howard Chu 2015-11-19 20:04:16 +00:00 committed by Leo Yuriev
parent bf81e86d93
commit 6ba0b8b467
2 changed files with 4 additions and 0 deletions

View File

@ -20,6 +20,7 @@ LMDB 0.9.17 Release Engineering
Fix ITS#8312 loose pages in nested txn
Fix ITS#8313 mdb_rebalance dummy cursor
Fix ITS#8315 dirty_room in nested txn
Fix ITS#8316 page_merge cursor tracking
Added mdb_txn_id() (ITS#7994)
Added robust mutex support
Miscellaneous cleanup/simplification

3
mdb.c
View File

@ -8009,6 +8009,9 @@ mdb_page_merge(MDB_cursor *csrc, MDB_cursor *cdst)
m3->mc_pg[top] = pdst;
m3->mc_ki[top] += nkeys;
m3->mc_ki[top-1] = cdst->mc_ki[top-1];
} else if (m3->mc_pg[top-1] == csrc->mc_pg[top-1] &&
m3->mc_ki[top-1] > csrc->mc_ki[top-1]) {
m3->mc_ki[top-1]--;
}
}
}