Skip to content

Commit 5cb7702

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 368ffde commit 5cb7702

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
@@ -374,15 +374,15 @@ brin_revmap_data(PG_FUNCTION_ARGS)
374374
MemoryContext mctx;
375375
Page page;
376376

377-
/* minimally verify the page we got */
378-
page = verify_brin_page(raw_page, BRIN_PAGETYPE_REVMAP, "revmap");
379-
380377
/* create a function context for cross-call persistence */
381378
fctx = SRF_FIRSTCALL_INIT();
382379

383380
/* switch to memory context appropriate for multiple function calls */
384381
mctx = MemoryContextSwitchTo(fctx->multi_call_memory_ctx);
385382

383+
/* minimally verify the page we got */
384+
page = verify_brin_page(raw_page, BRIN_PAGETYPE_REVMAP, "revmap");
385+
386386
state = palloc(sizeof(*state));
387387
state->tids = ((RevmapContents *) PageGetContents(page))->rm_tids;
388388
state->idx = 0;

0 commit comments

Comments
 (0)