From a0a8f1903c3edacddd106fae22ad1182dbf03d70 Mon Sep 17 00:00:00 2001 From: Kosntantin Knizhnik Date: Sun, 22 Jun 2025 15:42:10 +0300 Subject: [PATCH] Fix relkind check --- pgxn/neon/file_cache.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pgxn/neon/file_cache.c b/pgxn/neon/file_cache.c index e679a7f3a4..ff0a6b5b28 100644 --- a/pgxn/neon/file_cache.c +++ b/pgxn/neon/file_cache.c @@ -1740,11 +1740,15 @@ lfc_writev(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, lfc_ctl->pinned += 1; dlist_delete(&entry->list_node); } - if (entry->relkind != RELKIND_UNKNOWN && entry->relkind != relkind) + if (relkind != RELKIND_UNKNOWN) { - ereport(PANIC, - (errmsg("Writing unexpected page %u %u/%u/%u.%u to LFC", blkno, RelFileInfoFmt(rinfo), forkNum), - errbacktrace())); + if (entry->relkind != RELKIND_UNKNOWN && entry->relkind != relkind) + { + ereport(PANIC, + (errmsg("Writing unexpected page %u %u/%u/%u.%u to LFC", blkno, RelFileInfoFmt(rinfo), forkNum), + errbacktrace())); + } + entry->relkind = relkind; } } else @@ -1760,10 +1764,10 @@ lfc_writev(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, nblocks -= blocks_in_chunk; continue; } + entry->relkind = RELKIND_UNKNOWN; } entry_offset = entry->offset; - entry->relkind = relkind; for (int i = 0; i < blocks_in_chunk; i++) {