summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2019-07-10 15:15:29 +0900
committerMichael Paquier <michael@paquier.xyz>2019-07-10 15:15:29 +0900
commit7b60468fa14ac8b65ba91f2dc3c2df11361d4be3 (patch)
treeb636f631fc85504bfd931dc8fc988839261b36a5 /src
parentd49c127d90f94579a13106d4e7b198d04e5eea88 (diff)
Fix variable initialization when using buffering build with GiST
This can cause valgrind to complain, as the flag marking a buffer as a temporary copy was not getting initialized. While on it, fill in with zeros newly-created buffer pages. This does not matter when loading a block from a temporary file, but it makes the push of an index tuple into a new buffer page safer. This has been introduced by 1d27dcf, so backpatch all the way down to 9.4. Author: Alexander Lakhin Discussion: https://postgr.es/m/15899-0d24fb273b3dd90c@postgresql.org Backpatch-through: 9.4
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/gist/gistbuildbuffers.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/backend/access/gist/gistbuildbuffers.c b/src/backend/access/gist/gistbuildbuffers.c
index 577ea613b11..b92052eddb3 100644
--- a/src/backend/access/gist/gistbuildbuffers.c
+++ b/src/backend/access/gist/gistbuildbuffers.c
@@ -140,6 +140,7 @@ gistGetNodeBuffer(GISTBuildBuffers *gfbb, GISTSTATE *giststate,
nodeBuffer->pageBlocknum = InvalidBlockNumber;
nodeBuffer->pageBuffer = NULL;
nodeBuffer->queuedForEmptying = false;
+ nodeBuffer->isTemp = false;
nodeBuffer->level = level;
/*
@@ -188,8 +189,8 @@ gistAllocateNewPageBuffer(GISTBuildBuffers *gfbb)
{
GISTNodeBufferPage *pageBuffer;
- pageBuffer = (GISTNodeBufferPage *) MemoryContextAlloc(gfbb->context,
- BLCKSZ);
+ pageBuffer = (GISTNodeBufferPage *) MemoryContextAllocZero(gfbb->context,
+ BLCKSZ);
pageBuffer->prev = InvalidBlockNumber;
/* Set page free space */