Skip to content

Commit dc5b3bd

Browse files
committed
pageinspect: Fix memory context allocation of page in brin_revmap_data()
This caused the function to fail, as the aligned copy of the raw page given by the function caller was not saved in the correct memory context, which needs to be multi_call_memory_ctx in this case. Issue introduced by 076f4d9. Per buildfarm members sifika, mylodon and longfin. I have reproduced that locally with macos. Discussion: https://postgr.es/m/YjFPOtfCW6yLXUeM@paquier.xyz Backpatch-through: 10
1 parent ea70f69 commit dc5b3bd

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

contrib/pageinspect/brinfuncs.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -383,15 +383,15 @@ brin_revmap_data(PG_FUNCTION_ARGS)
383383
MemoryContext mctx;
384384
Page page;
385385

386-
/* minimally verify the page we got */
387-
page = verify_brin_page(raw_page, BRIN_PAGETYPE_REVMAP, "revmap");
388-
389386
/* create a function context for cross-call persistence */
390387
fctx = SRF_FIRSTCALL_INIT();
391388

392389
/* switch to memory context appropriate for multiple function calls */
393390
mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx);
394391

392+
/* minimally verify the page we got */
393+
page = verify_brin_page(raw_page, BRIN_PAGETYPE_REVMAP, "revmap");
394+
395395
state = palloc(sizeof(*state));
396396
state->tids = ((RevmapContents *) PageGetContents(page))->rm_tids;
397397
state->idx = 0;

0 commit comments

Comments
 (0)