postgres.git / summary / log / commit / refs
commit 954523cdfe229f1cb99a43a19e291a557ae2822d
Author: Heikki Linnakangas <heikki.linnakangas@iki.fi>
Date: Tue Apr 01 16:19:47 2014 +0000
First released in: 9.4.0
Fix bug in the new B-tree incomplete-split code.
Inserting a downlink to an internal page clears the incomplete-split flag
of the child's left sibling, so the left sibling's LSN also needs to be
updated.
src/backend/access/nbtree/nbtinsert.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/backend/access/nbtree/nbtinsert.c b/src/backend/access/nbtree/nbtinsert.c
index 3fbeb41d6a8..d2ca8d9350e 100644
--- a/src/backend/access/nbtree/nbtinsert.c
+++ b/src/backend/access/nbtree/nbtinsert.c
@@ -910,6 +910,10 @@ _bt_insertonpg(Relation rel,
{
PageSetLSN(metapg, recptr);
}
+ if (BufferIsValid(cbuf))
+ {
+ PageSetLSN(BufferGetPage(cbuf), recptr);
+ }
PageSetLSN(page, recptr);
}
@@ -1402,6 +1406,10 @@ _bt_split(Relation rel, Buffer buf, Buffer cbuf, OffsetNumber firstright,
{
PageSetLSN(spage, recptr);
}
+ if (!isleaf)
+ {
+ PageSetLSN(BufferGetPage(cbuf), recptr);
+ }
}
END_CRIT_SECTION();
[parent: f7534296b484]