projects
/
platform
/
upstream
/
lmdb.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a98b74e
)
ITS#8316 cursor fixup in page_merge
author
Howard Chu
<hyc@openldap.org>
Thu, 19 Nov 2015 20:04:16 +0000
(20:04 +0000)
committer
Howard Chu
<hyc@openldap.org>
Thu, 19 Nov 2015 20:04:16 +0000
(20:04 +0000)
Deleting the merged page requires bumping down other ki's
of the page's parent.
libraries/liblmdb/mdb.c
patch
|
blob
|
history
diff --git
a/libraries/liblmdb/mdb.c
b/libraries/liblmdb/mdb.c
index
99da353
..
9c0c95e
100644
(file)
--- a/
libraries/liblmdb/mdb.c
+++ b/
libraries/liblmdb/mdb.c
@@
-7963,6
+7963,8
@@
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_ki[top-1] > csrc->mc_ki[top-1]) {
+ m3->mc_ki[top-1]--;
}
}
}