aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-04-01 19:19:47 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-04-01 19:19:47 +0300
commit954523cdfe229f1cb99a43a19e291a557ae2822d (patch)
treef5b79ed0f7e9d80d5de9f69fe7f7d1603f6e97c5 /src
parentf7534296b484fa73b064c87cc3a5062ba3803f3b (diff)
downloadpostgresql-954523cdfe229f1cb99a43a19e291a557ae2822d.tar.gz
postgresql-954523cdfe229f1cb99a43a19e291a557ae2822d.zip
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.
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/nbtree/nbtinsert.c8
1 files changed, 8 insertions, 0 deletions
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();