From b2a670c765f36d50495f3569c1f7511950f553d3 Mon Sep 17 00:00:00 2001 From: Heikki Linnakangas Date: Mon, 7 Apr 2025 14:04:36 +0300 Subject: [PATCH] refactor: Use same prototype for neon_read_at_lsn on all PG versions (#11457) The 'neon_read' function needs to have a different prototype on PG < 16, because it's part of the smgr interface. But neon_read_at_lsn doesn't have that restriction. --- pgxn/neon/pagestore_client.h | 5 ----- pgxn/neon/pagestore_smgr.c | 10 ---------- pgxn/neon_test_utils/neontest.c | 5 ----- 3 files changed, 20 deletions(-) diff --git a/pgxn/neon/pagestore_client.h b/pgxn/neon/pagestore_client.h index d90dad6cc5..a2e3d57e47 100644 --- a/pgxn/neon/pagestore_client.h +++ b/pgxn/neon/pagestore_client.h @@ -274,13 +274,8 @@ typedef struct XLogRecPtr effective_request_lsn; } neon_request_lsns; -#if PG_MAJORVERSION_NUM < 16 -extern PGDLLEXPORT void neon_read_at_lsn(NRelFileInfo rnode, ForkNumber forkNum, BlockNumber blkno, - neon_request_lsns request_lsns, char *buffer); -#else extern PGDLLEXPORT void neon_read_at_lsn(NRelFileInfo rnode, ForkNumber forkNum, BlockNumber blkno, neon_request_lsns request_lsns, void *buffer); -#endif extern int64 neon_dbsize(Oid dbNode); /* utils for neon relsize cache */ diff --git a/pgxn/neon/pagestore_smgr.c b/pgxn/neon/pagestore_smgr.c index 0ed00061cb..a295304a58 100644 --- a/pgxn/neon/pagestore_smgr.c +++ b/pgxn/neon/pagestore_smgr.c @@ -3154,13 +3154,8 @@ neon_writeback(SMgrRelation reln, ForkNumber forknum, * The offsets in request_lsns, buffers, and mask are linked. */ static void -#if PG_MAJORVERSION_NUM < 16 -neon_read_at_lsnv(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber base_blockno, neon_request_lsns *request_lsns, - char **buffers, BlockNumber nblocks, const bits8 *mask) -#else neon_read_at_lsnv(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber base_blockno, neon_request_lsns *request_lsns, void **buffers, BlockNumber nblocks, const bits8 *mask) -#endif { NeonResponse *resp; uint64 ring_index; @@ -3356,13 +3351,8 @@ Retry: * To avoid breaking tests in the runtime please keep function signature in sync. */ void -#if PG_MAJORVERSION_NUM < 16 -neon_read_at_lsn(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, - neon_request_lsns request_lsns, char *buffer) -#else neon_read_at_lsn(NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, neon_request_lsns request_lsns, void *buffer) -#endif { neon_read_at_lsnv(rinfo, forkNum, blkno, &request_lsns, &buffer, 1, NULL); } diff --git a/pgxn/neon_test_utils/neontest.c b/pgxn/neon_test_utils/neontest.c index 0b5499ca53..d37412f674 100644 --- a/pgxn/neon_test_utils/neontest.c +++ b/pgxn/neon_test_utils/neontest.c @@ -50,13 +50,8 @@ PG_FUNCTION_INFO_V1(trigger_segfault); * Linkage to functions in neon module. * The signature here would need to be updated whenever function parameters change in pagestore_smgr.c */ -#if PG_MAJORVERSION_NUM < 16 -typedef void (*neon_read_at_lsn_type) (NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, - neon_request_lsns request_lsns, char *buffer); -#else typedef void (*neon_read_at_lsn_type) (NRelFileInfo rinfo, ForkNumber forkNum, BlockNumber blkno, neon_request_lsns request_lsns, void *buffer); -#endif static neon_read_at_lsn_type neon_read_at_lsn_ptr;