From b0970b415c7ada268742e55d693f86069c564f45 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Tue, 1 Jul 2025 15:47:26 +0300 Subject: [PATCH] Don't call legacy lfc function when new communicator is used --- pgxn/neon/pagestore_smgr.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/pgxn/neon/pagestore_smgr.c b/pgxn/neon/pagestore_smgr.c index f52513e036..2bbb98b6c1 100644 --- a/pgxn/neon/pagestore_smgr.c +++ b/pgxn/neon/pagestore_smgr.c @@ -1234,8 +1234,6 @@ neon_prefetch(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, static bool neon_prefetch(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum) { - BufferTag tag; - switch (reln->smgr_relpersistence) { case 0: /* probably shouldn't happen, but ignore it */ @@ -1250,21 +1248,25 @@ neon_prefetch(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum) neon_log(ERROR, "unknown relpersistence '%c'", reln->smgr_relpersistence); } - if (lfc_cache_contains(InfoFromSMgrRel(reln), forknum, blocknum)) - return false; - - tag.forkNum = forknum; - tag.blockNum = blocknum; - - CopyNRelFileInfoToBufTag(tag, InfoFromSMgrRel(reln)); - if (neon_enable_new_communicator) + { communicator_new_prefetch_register_bufferv(InfoFromSMgrRel(reln), forknum, blocknum, 1); + } else + { + BufferTag tag; + + if (lfc_cache_contains(InfoFromSMgrRel(reln), forknum, blocknum)) + return false; + + tag.forkNum = forknum; + tag.blockNum = blocknum; + + CopyNRelFileInfoToBufTag(tag, InfoFromSMgrRel(reln)); communicator_prefetch_register_bufferv(tag, NULL, 1, NULL); - if (!neon_enable_new_communicator) communicator_prefetch_pump_state(); + } return false; }