From 6d82eddecba09fd690dbfcf4d49db198aff6569c Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Sun, 2 Mar 2025 09:17:28 +0200 Subject: [PATCH] Close relation in walredo --- pgxn/neon_walredo/walredoproc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pgxn/neon_walredo/walredoproc.c b/pgxn/neon_walredo/walredoproc.c index 8bfad72042..10a9dbdb76 100644 --- a/pgxn/neon_walredo/walredoproc.c +++ b/pgxn/neon_walredo/walredoproc.c @@ -759,7 +759,7 @@ BeginRedoForBlock(StringInfo input_message) { reln->smgr_cached_nblocks[forknum] = blknum + 1; } - if (taget_redo_tag.forkNum == MAIN_FORKNUM) + if (target_redo_tag.forkNum == MAIN_FORKNUM) { reln->smgr_cached_nblocks[FSM_FORKNUM] = MaxBlockNumber; reln->smgr_cached_nblocks[VISIBILITYMAP_FORKNUM] = MaxBlockNumber; @@ -1009,6 +1009,7 @@ GetPage(StringInfo input_message) Buffer buf; Page page; int tot_written; + SMgrRelation reln; /* * message format: @@ -1059,6 +1060,10 @@ GetPage(StringInfo input_message) DropRelationAllLocalBuffers(rinfo); wal_redo_buffer = InvalidBuffer; + /* Remove relation from SMGR relastion cache */ + reln = smgropen(rinfo, INVALID_PROC_NUMBER, RELPERSISTENCE_PERMANENT); + smgrclose(reln); + elog(TRACE, "Page sent back for block %u", blknum); }