mirror of
https://github.com/isar/libmdbx.git
synced 2025-01-04 17:34:14 +08:00
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:
parent
bf81e86d93
commit
6ba0b8b467
1
CHANGES
1
CHANGES
@ -20,6 +20,7 @@ LMDB 0.9.17 Release Engineering
|
|||||||
Fix ITS#8312 loose pages in nested txn
|
Fix ITS#8312 loose pages in nested txn
|
||||||
Fix ITS#8313 mdb_rebalance dummy cursor
|
Fix ITS#8313 mdb_rebalance dummy cursor
|
||||||
Fix ITS#8315 dirty_room in nested txn
|
Fix ITS#8315 dirty_room in nested txn
|
||||||
|
Fix ITS#8316 page_merge cursor tracking
|
||||||
Added mdb_txn_id() (ITS#7994)
|
Added mdb_txn_id() (ITS#7994)
|
||||||
Added robust mutex support
|
Added robust mutex support
|
||||||
Miscellaneous cleanup/simplification
|
Miscellaneous cleanup/simplification
|
||||||
|
3
mdb.c
3
mdb.c
@ -8009,6 +8009,9 @@ mdb_page_merge(MDB_cursor *csrc, MDB_cursor *cdst)
|
|||||||
m3->mc_pg[top] = pdst;
|
m3->mc_pg[top] = pdst;
|
||||||
m3->mc_ki[top] += nkeys;
|
m3->mc_ki[top] += nkeys;
|
||||||
m3->mc_ki[top-1] = cdst->mc_ki[top-1];
|
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]--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user