Skip to content

Commit 652ca92

Browse files
committed
Fix unitialized variables
As complained by clang, reported by Andres Freund. Brown paper bag bug in ccc4c07. Add some comments, too. Backpatch to 9.5, like that one.
1 parent ec94bc1 commit 652ca92

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/backend/access/brin/brin_pageops.c

+10-3
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ brin_doupdate(Relation idxrel, BlockNumber pagesPerRange,
8686
{
8787
LockBuffer(oldbuf, BUFFER_LOCK_EXCLUSIVE);
8888
newbuf = InvalidBuffer;
89+
extended = false;
8990
}
9091
oldpage = BufferGetPage(oldbuf);
9192
oldlp = PageGetItemId(oldpage, oldoff);
@@ -335,9 +336,8 @@ brin_doinsert(Relation idxrel, BlockNumber pagesPerRange,
335336
brinRevmapExtend(revmap, heapBlk);
336337

337338
/*
338-
* Obtain a locked buffer to insert the new tuple. Note
339-
* brin_getinsertbuffer ensures there's enough space in the returned
340-
* buffer.
339+
* Acquire lock on buffer supplied by caller, if any. If it doesn't have
340+
* enough space, unpin it to obtain a new one below.
341341
*/
342342
if (BufferIsValid(*buffer))
343343
{
@@ -354,19 +354,26 @@ brin_doinsert(Relation idxrel, BlockNumber pagesPerRange,
354354
}
355355
}
356356

357+
/*
358+
* If we still don't have a usable buffer, have brin_getinsertbuffer
359+
* obtain one for us.
360+
*/
357361
if (!BufferIsValid(*buffer))
358362
{
359363
*buffer = brin_getinsertbuffer(idxrel, InvalidBuffer, itemsz, &extended);
360364
Assert(BufferIsValid(*buffer));
361365
Assert(extended || br_page_get_freespace(BufferGetPage(*buffer)) >= itemsz);
362366
}
367+
else
368+
extended = false;
363369

364370
/* Now obtain lock on revmap buffer */
365371
revmapbuf = brinLockRevmapPageForUpdate(revmap, heapBlk);
366372

367373
page = BufferGetPage(*buffer);
368374
blk = BufferGetBlockNumber(*buffer);
369375

376+
/* Execute the actual insertion */
370377
START_CRIT_SECTION();
371378
if (extended)
372379
brin_page_init(BufferGetPage(*buffer), BRIN_PAGETYPE_REGULAR);

0 commit comments

Comments
 (0)