From 70c741fc13ea4ab53eef313828db1a85698fe381 Mon Sep 17 00:00:00 2001 From: Konstantin Knizhnik Date: Sat, 16 Sep 2023 21:40:55 +0300 Subject: [PATCH] Look at the database last written LSN in neon_exits --- pgxn/neon/pagestore_smgr.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pgxn/neon/pagestore_smgr.c b/pgxn/neon/pagestore_smgr.c index 919bca03e9..d11f6dc4fc 100644 --- a/pgxn/neon/pagestore_smgr.c +++ b/pgxn/neon/pagestore_smgr.c @@ -1450,6 +1450,9 @@ neon_exists(SMgrRelation reln, ForkNumber forkNum) BlockNumber n_blocks; bool latest; XLogRecPtr request_lsn; + XLogRecPtr rel_lsn; + XLogRecPtr db_lsn; + static const NRelFileInfo dummyNode = {0}; switch (reln->smgr_relpersistence) { @@ -1504,7 +1507,9 @@ neon_exists(SMgrRelation reln, ForkNumber forkNum) return false; } - request_lsn = neon_get_request_lsn(&latest, InfoFromSMgrRel(reln), forkNum, REL_METADATA_PSEUDO_BLOCKNO); + rel_lsn = neon_get_request_lsn(&latest, InfoFromSMgrRel(reln), forkNum, REL_METADATA_PSEUDO_BLOCKNO); + db_lsn = neon_get_request_lsn(&latest, dummyNode, MAIN_FORKNUM, 0); + request_lsn = Max(rel_lsn, db_lsn); { NeonExistsRequest request = { .req.tag = T_NeonExistsRequest,