diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2014-04-01 19:19:47 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2014-04-01 19:19:47 +0300 |
commit | 954523cdfe229f1cb99a43a19e291a557ae2822d (patch) | |
tree | f5b79ed0f7e9d80d5de9f69fe7f7d1603f6e97c5 /src | |
parent | f7534296b484fa73b064c87cc3a5062ba3803f3b (diff) | |
download | postgresql-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.c | 8 |
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(); |