Hi, I was experimenting with specifying symbol visiblity for functions explicitly, i.e. adding PGDLLIMPORT markers for them, with the goal of getting rid of src/tools/msvc/gendef.pl (and similar AIX stuff). While doing that I compared the set of exported symbols before / after, leading me to find a few pre-existing "issues".
I think the attached patches are all a good idea and trivial enought that I think we should apply them now. The changes are sufficiently obvious and/or explained in the commit messages. Comments? Greetings, Andres Freund
>From 33e9aa35d0c0153ef62ce647b8cc748079908b07 Mon Sep 17 00:00:00 2001 From: Andres Freund <and...@anarazel.de> Date: Thu, 12 May 2022 09:17:14 -0700 Subject: [PATCH v1 1/4] Add missing 'extern' to function prototypes. Postgres style is to spell out extern. Noticed while scripting adding PGDLLIMPORT markers to functions. Author: Reviewed-By: Discussion: https://postgr.es/m/ Backpatch: --- src/include/access/rewriteheap.h | 2 +- src/include/port/win32_port.h | 26 ++++----- src/include/replication/message.h | 6 +- src/include/replication/origin.h | 6 +- src/include/replication/reorderbuffer.h | 70 +++++++++++------------ src/include/replication/worker_internal.h | 4 +- src/include/storage/s_lock.h | 4 +- src/include/tsearch/dicts/regis.h | 8 +-- src/include/utils/attoptcache.h | 2 +- src/include/utils/numeric.h | 2 +- src/include/utils/pgstat_internal.h | 2 +- src/include/utils/spccache.h | 6 +- 12 files changed, 69 insertions(+), 69 deletions(-) diff --git a/src/include/access/rewriteheap.h b/src/include/access/rewriteheap.h index aa5c48f219a..3e27790b3f0 100644 --- a/src/include/access/rewriteheap.h +++ b/src/include/access/rewriteheap.h @@ -52,6 +52,6 @@ typedef struct LogicalRewriteMappingData * --- */ #define LOGICAL_REWRITE_FORMAT "map-%x-%x-%X_%X-%x-%x" -void CheckPointLogicalRewriteHeap(void); +extern void CheckPointLogicalRewriteHeap(void); #endif /* REWRITE_HEAP_H */ diff --git a/src/include/port/win32_port.h b/src/include/port/win32_port.h index 5045ced91b7..dbbf88f8e8c 100644 --- a/src/include/port/win32_port.h +++ b/src/include/port/win32_port.h @@ -455,10 +455,10 @@ extern PGDLLIMPORT HANDLE pgwin32_initial_signal_pipe; #define UNBLOCKED_SIGNAL_QUEUE() (pg_signal_queue & ~pg_signal_mask) #define PG_SIGNAL_COUNT 32 -void pgwin32_signal_initialize(void); -HANDLE pgwin32_create_signal_listener(pid_t pid); -void pgwin32_dispatch_queued_signals(void); -void pg_queue_signal(int signum); +extern void pgwin32_signal_initialize(void); +extern HANDLE pgwin32_create_signal_listener(pid_t pid); +extern void pgwin32_dispatch_queued_signals(void); +extern void pg_queue_signal(int signum); /* In src/port/kill.c */ #define kill(pid,sig) pgkill(pid,sig) @@ -475,15 +475,15 @@ extern int pgkill(int pid, int sig); #define recv(s, buf, len, flags) pgwin32_recv(s, buf, len, flags) #define send(s, buf, len, flags) pgwin32_send(s, buf, len, flags) -SOCKET pgwin32_socket(int af, int type, int protocol); -int pgwin32_bind(SOCKET s, struct sockaddr *addr, int addrlen); -int pgwin32_listen(SOCKET s, int backlog); -SOCKET pgwin32_accept(SOCKET s, struct sockaddr *addr, int *addrlen); -int pgwin32_connect(SOCKET s, const struct sockaddr *name, int namelen); -int pgwin32_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timeval *timeout); -int pgwin32_recv(SOCKET s, char *buf, int len, int flags); -int pgwin32_send(SOCKET s, const void *buf, int len, int flags); -int pgwin32_waitforsinglesocket(SOCKET s, int what, int timeout); +extern SOCKET pgwin32_socket(int af, int type, int protocol); +extern int pgwin32_bind(SOCKET s, struct sockaddr *addr, int addrlen); +extern int pgwin32_listen(SOCKET s, int backlog); +extern SOCKET pgwin32_accept(SOCKET s, struct sockaddr *addr, int *addrlen); +extern int pgwin32_connect(SOCKET s, const struct sockaddr *name, int namelen); +extern int pgwin32_select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, const struct timeval *timeout); +extern int pgwin32_recv(SOCKET s, char *buf, int len, int flags); +extern int pgwin32_send(SOCKET s, const void *buf, int len, int flags); +extern int pgwin32_waitforsinglesocket(SOCKET s, int what, int timeout); extern PGDLLIMPORT int pgwin32_noblock; diff --git a/src/include/replication/message.h b/src/include/replication/message.h index b9686c28550..0b396c56693 100644 --- a/src/include/replication/message.h +++ b/src/include/replication/message.h @@ -34,8 +34,8 @@ extern XLogRecPtr LogLogicalMessage(const char *prefix, const char *message, /* RMGR API */ #define XLOG_LOGICAL_MESSAGE 0x00 -void logicalmsg_redo(XLogReaderState *record); -void logicalmsg_desc(StringInfo buf, XLogReaderState *record); -const char *logicalmsg_identify(uint8 info); +extern void logicalmsg_redo(XLogReaderState *record); +extern void logicalmsg_desc(StringInfo buf, XLogReaderState *record); +extern const char *logicalmsg_identify(uint8 info); #endif /* PG_LOGICAL_MESSAGE_H */ diff --git a/src/include/replication/origin.h b/src/include/replication/origin.h index 14d5c497ce8..2d1b5e5c28c 100644 --- a/src/include/replication/origin.h +++ b/src/include/replication/origin.h @@ -62,9 +62,9 @@ extern void CheckPointReplicationOrigin(void); extern void StartupReplicationOrigin(void); /* WAL logging */ -void replorigin_redo(XLogReaderState *record); -void replorigin_desc(StringInfo buf, XLogReaderState *record); -const char *replorigin_identify(uint8 info); +extern void replorigin_redo(XLogReaderState *record); +extern void replorigin_desc(StringInfo buf, XLogReaderState *record); +extern const char *replorigin_identify(uint8 info); /* shared memory allocation */ extern Size ReplicationOriginShmemSize(void); diff --git a/src/include/replication/reorderbuffer.h b/src/include/replication/reorderbuffer.h index f12e75d69be..4a01f877e5d 100644 --- a/src/include/replication/reorderbuffer.h +++ b/src/include/replication/reorderbuffer.h @@ -618,68 +618,68 @@ struct ReorderBuffer }; -ReorderBuffer *ReorderBufferAllocate(void); -void ReorderBufferFree(ReorderBuffer *); +extern ReorderBuffer *ReorderBufferAllocate(void); +extern void ReorderBufferFree(ReorderBuffer *); -ReorderBufferTupleBuf *ReorderBufferGetTupleBuf(ReorderBuffer *, Size tuple_len); -void ReorderBufferReturnTupleBuf(ReorderBuffer *, ReorderBufferTupleBuf *tuple); -ReorderBufferChange *ReorderBufferGetChange(ReorderBuffer *); -void ReorderBufferReturnChange(ReorderBuffer *, ReorderBufferChange *, bool); +extern ReorderBufferTupleBuf *ReorderBufferGetTupleBuf(ReorderBuffer *, Size tuple_len); +extern void ReorderBufferReturnTupleBuf(ReorderBuffer *, ReorderBufferTupleBuf *tuple); +extern ReorderBufferChange *ReorderBufferGetChange(ReorderBuffer *); +extern void ReorderBufferReturnChange(ReorderBuffer *, ReorderBufferChange *, bool); -Oid *ReorderBufferGetRelids(ReorderBuffer *, int nrelids); -void ReorderBufferReturnRelids(ReorderBuffer *, Oid *relids); +extern Oid *ReorderBufferGetRelids(ReorderBuffer *, int nrelids); +extern void ReorderBufferReturnRelids(ReorderBuffer *, Oid *relids); -void ReorderBufferQueueChange(ReorderBuffer *, TransactionId, +extern void ReorderBufferQueueChange(ReorderBuffer *, TransactionId, XLogRecPtr lsn, ReorderBufferChange *, bool toast_insert); -void ReorderBufferQueueMessage(ReorderBuffer *, TransactionId, Snapshot snapshot, XLogRecPtr lsn, +extern void ReorderBufferQueueMessage(ReorderBuffer *, TransactionId, Snapshot snapshot, XLogRecPtr lsn, bool transactional, const char *prefix, Size message_size, const char *message); -void ReorderBufferCommit(ReorderBuffer *, TransactionId, +extern void ReorderBufferCommit(ReorderBuffer *, TransactionId, XLogRecPtr commit_lsn, XLogRecPtr end_lsn, TimestampTz commit_time, RepOriginId origin_id, XLogRecPtr origin_lsn); -void ReorderBufferFinishPrepared(ReorderBuffer *rb, TransactionId xid, +extern void ReorderBufferFinishPrepared(ReorderBuffer *rb, TransactionId xid, XLogRecPtr commit_lsn, XLogRecPtr end_lsn, XLogRecPtr two_phase_at, TimestampTz commit_time, RepOriginId origin_id, XLogRecPtr origin_lsn, char *gid, bool is_commit); -void ReorderBufferAssignChild(ReorderBuffer *, TransactionId, TransactionId, XLogRecPtr commit_lsn); -void ReorderBufferCommitChild(ReorderBuffer *, TransactionId, TransactionId, +extern void ReorderBufferAssignChild(ReorderBuffer *, TransactionId, TransactionId, XLogRecPtr commit_lsn); +extern void ReorderBufferCommitChild(ReorderBuffer *, TransactionId, TransactionId, XLogRecPtr commit_lsn, XLogRecPtr end_lsn); -void ReorderBufferAbort(ReorderBuffer *, TransactionId, XLogRecPtr lsn); -void ReorderBufferAbortOld(ReorderBuffer *, TransactionId xid); -void ReorderBufferForget(ReorderBuffer *, TransactionId, XLogRecPtr lsn); -void ReorderBufferInvalidate(ReorderBuffer *, TransactionId, XLogRecPtr lsn); +extern void ReorderBufferAbort(ReorderBuffer *, TransactionId, XLogRecPtr lsn); +extern void ReorderBufferAbortOld(ReorderBuffer *, TransactionId xid); +extern void ReorderBufferForget(ReorderBuffer *, TransactionId, XLogRecPtr lsn); +extern void ReorderBufferInvalidate(ReorderBuffer *, TransactionId, XLogRecPtr lsn); -void ReorderBufferSetBaseSnapshot(ReorderBuffer *, TransactionId, XLogRecPtr lsn, struct SnapshotData *snap); -void ReorderBufferAddSnapshot(ReorderBuffer *, TransactionId, XLogRecPtr lsn, struct SnapshotData *snap); -void ReorderBufferAddNewCommandId(ReorderBuffer *, TransactionId, XLogRecPtr lsn, +extern void ReorderBufferSetBaseSnapshot(ReorderBuffer *, TransactionId, XLogRecPtr lsn, struct SnapshotData *snap); +extern void ReorderBufferAddSnapshot(ReorderBuffer *, TransactionId, XLogRecPtr lsn, struct SnapshotData *snap); +extern void ReorderBufferAddNewCommandId(ReorderBuffer *, TransactionId, XLogRecPtr lsn, CommandId cid); -void ReorderBufferAddNewTupleCids(ReorderBuffer *, TransactionId, XLogRecPtr lsn, +extern void ReorderBufferAddNewTupleCids(ReorderBuffer *, TransactionId, XLogRecPtr lsn, RelFileNode node, ItemPointerData pt, CommandId cmin, CommandId cmax, CommandId combocid); -void ReorderBufferAddInvalidations(ReorderBuffer *, TransactionId, XLogRecPtr lsn, +extern void ReorderBufferAddInvalidations(ReorderBuffer *, TransactionId, XLogRecPtr lsn, Size nmsgs, SharedInvalidationMessage *msgs); -void ReorderBufferImmediateInvalidation(ReorderBuffer *, uint32 ninvalidations, +extern void ReorderBufferImmediateInvalidation(ReorderBuffer *, uint32 ninvalidations, SharedInvalidationMessage *invalidations); -void ReorderBufferProcessXid(ReorderBuffer *, TransactionId xid, XLogRecPtr lsn); +extern void ReorderBufferProcessXid(ReorderBuffer *, TransactionId xid, XLogRecPtr lsn); -void ReorderBufferXidSetCatalogChanges(ReorderBuffer *, TransactionId xid, XLogRecPtr lsn); -bool ReorderBufferXidHasCatalogChanges(ReorderBuffer *, TransactionId xid); -bool ReorderBufferXidHasBaseSnapshot(ReorderBuffer *, TransactionId xid); +extern void ReorderBufferXidSetCatalogChanges(ReorderBuffer *, TransactionId xid, XLogRecPtr lsn); +extern bool ReorderBufferXidHasCatalogChanges(ReorderBuffer *, TransactionId xid); +extern bool ReorderBufferXidHasBaseSnapshot(ReorderBuffer *, TransactionId xid); -bool ReorderBufferRememberPrepareInfo(ReorderBuffer *rb, TransactionId xid, +extern bool ReorderBufferRememberPrepareInfo(ReorderBuffer *rb, TransactionId xid, XLogRecPtr prepare_lsn, XLogRecPtr end_lsn, TimestampTz prepare_time, RepOriginId origin_id, XLogRecPtr origin_lsn); -void ReorderBufferSkipPrepare(ReorderBuffer *rb, TransactionId xid); -void ReorderBufferPrepare(ReorderBuffer *rb, TransactionId xid, char *gid); -ReorderBufferTXN *ReorderBufferGetOldestTXN(ReorderBuffer *); -TransactionId ReorderBufferGetOldestXmin(ReorderBuffer *rb); +extern void ReorderBufferSkipPrepare(ReorderBuffer *rb, TransactionId xid); +extern void ReorderBufferPrepare(ReorderBuffer *rb, TransactionId xid, char *gid); +extern ReorderBufferTXN *ReorderBufferGetOldestTXN(ReorderBuffer *); +extern TransactionId ReorderBufferGetOldestXmin(ReorderBuffer *rb); -void ReorderBufferSetRestartPoint(ReorderBuffer *, XLogRecPtr ptr); +extern void ReorderBufferSetRestartPoint(ReorderBuffer *, XLogRecPtr ptr); -void StartupReorderBuffer(void); +extern void StartupReorderBuffer(void); #endif diff --git a/src/include/replication/worker_internal.h b/src/include/replication/worker_internal.h index 4485d4ebee1..901845abc2c 100644 --- a/src/include/replication/worker_internal.h +++ b/src/include/replication/worker_internal.h @@ -99,8 +99,8 @@ extern char *LogicalRepSyncTableStart(XLogRecPtr *origin_startpos); extern bool AllTablesyncsReady(void); extern void UpdateTwoPhaseState(Oid suboid, char new_state); -void process_syncing_tables(XLogRecPtr current_lsn); -void invalidate_syncing_table_states(Datum arg, int cacheid, +extern void process_syncing_tables(XLogRecPtr current_lsn); +extern void invalidate_syncing_table_states(Datum arg, int cacheid, uint32 hashvalue); static inline bool diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h index 39faa4d8378..98b4d718d29 100644 --- a/src/include/storage/s_lock.h +++ b/src/include/storage/s_lock.h @@ -1082,7 +1082,7 @@ init_spin_delay(SpinDelayStatus *status, } #define init_local_spin_delay(status) init_spin_delay(status, __FILE__, __LINE__, PG_FUNCNAME_MACRO) -void perform_spin_delay(SpinDelayStatus *status); -void finish_spin_delay(SpinDelayStatus *status); +extern void perform_spin_delay(SpinDelayStatus *status); +extern void finish_spin_delay(SpinDelayStatus *status); #endif /* S_LOCK_H */ diff --git a/src/include/tsearch/dicts/regis.h b/src/include/tsearch/dicts/regis.h index c72f2702caf..c7c3d9fb348 100644 --- a/src/include/tsearch/dicts/regis.h +++ b/src/include/tsearch/dicts/regis.h @@ -38,12 +38,12 @@ typedef struct Regis unused:15; } Regis; -bool RS_isRegis(const char *str); +extern bool RS_isRegis(const char *str); -void RS_compile(Regis *r, bool issuffix, const char *str); -void RS_free(Regis *r); +extern void RS_compile(Regis *r, bool issuffix, const char *str); +extern void RS_free(Regis *r); /*returns true if matches */ -bool RS_execute(Regis *r, char *str); +extern bool RS_execute(Regis *r, char *str); #endif diff --git a/src/include/utils/attoptcache.h b/src/include/utils/attoptcache.h index cee6f5f18b4..ee37af95001 100644 --- a/src/include/utils/attoptcache.h +++ b/src/include/utils/attoptcache.h @@ -23,6 +23,6 @@ typedef struct AttributeOpts float8 n_distinct_inherited; } AttributeOpts; -AttributeOpts *get_attribute_options(Oid spcid, int attnum); +extern AttributeOpts *get_attribute_options(Oid spcid, int attnum); #endif /* ATTOPTCACHE_H */ diff --git a/src/include/utils/numeric.h b/src/include/utils/numeric.h index 21cd5a5cbf5..3caa74dfe7a 100644 --- a/src/include/utils/numeric.h +++ b/src/include/utils/numeric.h @@ -68,7 +68,7 @@ typedef struct NumericData *Numeric; */ extern bool numeric_is_nan(Numeric num); extern bool numeric_is_inf(Numeric num); -int32 numeric_maximum_size(int32 typmod); +extern int32 numeric_maximum_size(int32 typmod); extern char *numeric_out_sci(Numeric num, int scale); extern char *numeric_normalize(Numeric num); diff --git a/src/include/utils/pgstat_internal.h b/src/include/utils/pgstat_internal.h index 0ee60b2f2a1..0eccaea6c1a 100644 --- a/src/include/utils/pgstat_internal.h +++ b/src/include/utils/pgstat_internal.h @@ -488,7 +488,7 @@ static inline void *pgstat_get_entry_data(PgStat_Kind kind, PgStatShared_Common * Functions in pgstat.c */ -const PgStat_KindInfo *pgstat_get_kind_info(PgStat_Kind kind); +extern const PgStat_KindInfo *pgstat_get_kind_info(PgStat_Kind kind); #ifdef USE_ASSERT_CHECKING extern void pgstat_assert_is_up(void); diff --git a/src/include/utils/spccache.h b/src/include/utils/spccache.h index 68cc0aed7c3..5163eeedbd2 100644 --- a/src/include/utils/spccache.h +++ b/src/include/utils/spccache.h @@ -13,9 +13,9 @@ #ifndef SPCCACHE_H #define SPCCACHE_H -void get_tablespace_page_costs(Oid spcid, float8 *spc_random_page_cost, +extern void get_tablespace_page_costs(Oid spcid, float8 *spc_random_page_cost, float8 *spc_seq_page_cost); -int get_tablespace_io_concurrency(Oid spcid); -int get_tablespace_maintenance_io_concurrency(Oid spcid); +extern int get_tablespace_io_concurrency(Oid spcid); +extern int get_tablespace_maintenance_io_concurrency(Oid spcid); #endif /* SPCCACHE_H */ -- 2.35.1.677.gabf474a5dd
>From 14df0767d6ccdfe4db473041f39fdfe469f4859d Mon Sep 17 00:00:00 2001 From: Andres Freund <and...@anarazel.de> Date: Thu, 12 May 2022 09:19:04 -0700 Subject: [PATCH v1 2/4] Add 'static' to file-local variables missing it. Noticed when comparing the set of exported symbols without/with -fvisibility=hidden after adding PGDLLIMPORT to intentionally exported symbols. Author: Reviewed-By: Discussion: https://postgr.es/m/ Backpatch: --- src/backend/access/common/reloptions.c | 6 +++--- src/backend/access/transam/commit_ts.c | 2 +- src/backend/access/transam/xact.c | 6 +++--- src/backend/catalog/storage.c | 2 +- src/backend/replication/logical/launcher.c | 2 +- src/backend/replication/logical/tablesync.c | 2 +- src/backend/replication/logical/worker.c | 2 +- src/backend/tcop/cmdtag.c | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c index 599e160ca64..24211807ca1 100644 --- a/src/backend/access/common/reloptions.c +++ b/src/backend/access/common/reloptions.c @@ -475,7 +475,7 @@ static relopt_real realRelOpts[] = }; /* values from StdRdOptIndexCleanup */ -relopt_enum_elt_def StdRdOptIndexCleanupValues[] = +static relopt_enum_elt_def StdRdOptIndexCleanupValues[] = { {"auto", STDRD_OPTION_VACUUM_INDEX_CLEANUP_AUTO}, {"on", STDRD_OPTION_VACUUM_INDEX_CLEANUP_ON}, @@ -490,7 +490,7 @@ relopt_enum_elt_def StdRdOptIndexCleanupValues[] = }; /* values from GistOptBufferingMode */ -relopt_enum_elt_def gistBufferingOptValues[] = +static relopt_enum_elt_def gistBufferingOptValues[] = { {"auto", GIST_OPTION_BUFFERING_AUTO}, {"on", GIST_OPTION_BUFFERING_ON}, @@ -499,7 +499,7 @@ relopt_enum_elt_def gistBufferingOptValues[] = }; /* values from ViewOptCheckOption */ -relopt_enum_elt_def viewCheckOptValues[] = +static relopt_enum_elt_def viewCheckOptValues[] = { /* no value for NOT_SET */ {"local", VIEW_OPTION_CHECK_OPTION_LOCAL}, diff --git a/src/backend/access/transam/commit_ts.c b/src/backend/access/transam/commit_ts.c index 20950eb1e4a..4dc8d402bd3 100644 --- a/src/backend/access/transam/commit_ts.c +++ b/src/backend/access/transam/commit_ts.c @@ -98,7 +98,7 @@ typedef struct CommitTimestampShared bool commitTsActive; } CommitTimestampShared; -CommitTimestampShared *commitTsShared; +static CommitTimestampShared *commitTsShared; /* GUC variable */ diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 53f3e7fd1a6..47d80b0d257 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -121,9 +121,9 @@ bool bsysscan = false; * The XIDs are stored sorted in numerical order (not logical order) to make * lookups as fast as possible. */ -FullTransactionId XactTopFullTransactionId = {InvalidTransactionId}; -int nParallelCurrentXids = 0; -TransactionId *ParallelCurrentXids; +static FullTransactionId XactTopFullTransactionId = {InvalidTransactionId}; +static int nParallelCurrentXids = 0; +static TransactionId *ParallelCurrentXids; /* * Miscellaneous flag bits to record events which occur on the top level diff --git a/src/backend/catalog/storage.c b/src/backend/catalog/storage.c index e4d000d4fe8..8b5d7b3cbf0 100644 --- a/src/backend/catalog/storage.c +++ b/src/backend/catalog/storage.c @@ -73,7 +73,7 @@ typedef struct PendingRelSync } PendingRelSync; static PendingRelDelete *pendingDeletes = NULL; /* head of linked list */ -HTAB *pendingSyncHash = NULL; +static HTAB *pendingSyncHash = NULL; /* diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c index 0adb2d1d665..d59707e4d55 100644 --- a/src/backend/replication/logical/launcher.c +++ b/src/backend/replication/logical/launcher.c @@ -65,7 +65,7 @@ typedef struct LogicalRepCtxStruct LogicalRepWorker workers[FLEXIBLE_ARRAY_MEMBER]; } LogicalRepCtxStruct; -LogicalRepCtxStruct *LogicalRepCtx; +static LogicalRepCtxStruct *LogicalRepCtx; static void ApplyLauncherWakeup(void); static void logicalrep_launcher_onexit(int code, Datum arg); diff --git a/src/backend/replication/logical/tablesync.c b/src/backend/replication/logical/tablesync.c index 49ceec3bdc8..ae65ce07f59 100644 --- a/src/backend/replication/logical/tablesync.c +++ b/src/backend/replication/logical/tablesync.c @@ -124,7 +124,7 @@ static bool table_states_valid = false; static List *table_states_not_ready = NIL; static bool FetchTableStates(bool *started_tx); -StringInfo copybuf = NULL; +static StringInfo copybuf = NULL; /* * Exit routine for synchronization worker. diff --git a/src/backend/replication/logical/worker.c b/src/backend/replication/logical/worker.c index 7da7823c352..c2e6b9d30b8 100644 --- a/src/backend/replication/logical/worker.c +++ b/src/backend/replication/logical/worker.c @@ -251,7 +251,7 @@ static MemoryContext LogicalStreamingContext = NULL; WalReceiverConn *LogRepWorkerWalRcvConn = NULL; Subscription *MySubscription = NULL; -bool MySubscriptionValid = false; +static bool MySubscriptionValid = false; bool in_remote_transaction = false; static XLogRecPtr remote_final_lsn = InvalidXLogRecPtr; diff --git a/src/backend/tcop/cmdtag.c b/src/backend/tcop/cmdtag.c index a83bab14f4c..262484f561f 100644 --- a/src/backend/tcop/cmdtag.c +++ b/src/backend/tcop/cmdtag.c @@ -28,7 +28,7 @@ typedef struct CommandTagBehavior #define PG_CMDTAG(tag, name, evtrgok, rwrok, rowcnt) \ { name, evtrgok, rwrok, rowcnt }, -const CommandTagBehavior tag_behavior[COMMAND_TAG_NEXTTAG] = { +static const CommandTagBehavior tag_behavior[COMMAND_TAG_NEXTTAG] = { #include "tcop/cmdtaglist.h" }; -- 2.35.1.677.gabf474a5dd
>From 4facf2277d77afa5dece6f265317dfcd7fd40dd2 Mon Sep 17 00:00:00 2001 From: Andres Freund <and...@anarazel.de> Date: Thu, 12 May 2022 09:20:36 -0700 Subject: [PATCH v1 3/4] Add missing binary_upgrade.h where includes. A few places used binary_upgrade_* variables without including the header, which worked without warnings because the variables are defined in those places. However that can cause linker complaints with MSVC - except that we don't see them right now, due to the use of a symbol export file. Author: Reviewed-By: Discussion: https://postgr.es/m/ Backpatch: --- src/backend/catalog/heap.c | 1 + src/backend/commands/tablespace.c | 1 + 2 files changed, 2 insertions(+) diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index 9b512ccd3c0..c5a3fb06bbd 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -34,6 +34,7 @@ #include "access/relation.h" #include "access/table.h" #include "access/tableam.h" +#include "catalog/binary_upgrade.h" #include "catalog/catalog.h" #include "catalog/heap.h" #include "catalog/index.h" diff --git a/src/backend/commands/tablespace.c b/src/backend/commands/tablespace.c index 822d65287ef..c3d155833bb 100644 --- a/src/backend/commands/tablespace.c +++ b/src/backend/commands/tablespace.c @@ -58,6 +58,7 @@ #include "access/xact.h" #include "access/xloginsert.h" #include "access/xlogutils.h" +#include "catalog/binary_upgrade.h" #include "catalog/catalog.h" #include "catalog/dependency.h" #include "catalog/indexing.h" -- 2.35.1.677.gabf474a5dd
>From 74bb70774a25d4a07d4bc59db730d750e0a8b32d Mon Sep 17 00:00:00 2001 From: Andres Freund <and...@anarazel.de> Date: Thu, 12 May 2022 09:25:14 -0700 Subject: [PATCH v1 4/4] Remove function declaration for function in pg_proc. The declaration is automatically generated. Noticed when experimenting with adding PGDLLIMPORT markers for functions. Author: Reviewed-By: Discussion: https://postgr.es/m/ Backpatch: --- src/backend/replication/logical/launcher.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/backend/replication/logical/launcher.c b/src/backend/replication/logical/launcher.c index d59707e4d55..d7841a28acb 100644 --- a/src/backend/replication/logical/launcher.c +++ b/src/backend/replication/logical/launcher.c @@ -42,6 +42,7 @@ #include "storage/procarray.h" #include "storage/procsignal.h" #include "tcop/tcopprot.h" +#include "utils/builtins.h" #include "utils/memutils.h" #include "utils/pg_lsn.h" #include "utils/ps_status.h" @@ -75,8 +76,6 @@ static void logicalrep_worker_cleanup(LogicalRepWorker *worker); static bool on_commit_launcher_wakeup = false; -Datum pg_stat_get_subscription(PG_FUNCTION_ARGS); - /* * Load the list of subscriptions. -- 2.35.1.677.gabf474a5dd