pg.ddx.io pgsql-hackers@postgresql.org mailing list archive
help / color / mirror / Atom feed From: Andres Freund <andres@anarazel.de>
To: pgsql-hackers@postgresql.org
Subject: Declaration fixes
Date: Thu, 12 May 2022 09:45:13 -0700
Message-ID: <20220512164513.vaheofqp2q24l65r@alap3.anarazel.de> (raw )
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
Attachments: download all (4 files, .tar.gz)
v1-0001-Add-missing-extern-to-function-prototypes.patch (text/x-diff, 16.0K) download
From 33e9aa35d0c0153ef62ce647b8cc748079908b07 Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@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
v1-0002-Add-static-to-file-local-variables-missing-it.patch (text/x-diff, 5.6K) download
From 14df0767d6ccdfe4db473041f39fdfe469f4859d Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@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
v1-0003-Add-missing-binary_upgrade.h-where-includes.patch (text/x-diff, 1.5K) download
From 4facf2277d77afa5dece6f265317dfcd7fd40dd2 Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@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
v1-0004-Remove-function-declaration-for-function-in-pg_pr.patch (text/x-diff, 1.2K) download
From 74bb70774a25d4a07d4bc59db730d750e0a8b32d Mon Sep 17 00:00:00 2001
From: Andres Freund <andres@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
view thread (4+ messages) latest in thread
Message-ID: <20220512164513.vaheofqp2q24l65r@alap3.anarazel.de>
Permalink: ../20220512164513.vaheofqp2q24l65r@alap3.anarazel.de/
Also on: postgresql.org/message-id/20220512164513.vaheofqp2q24l65r@alap3.anarazel.de
copy link · copy postgr.es · copy git am
reply Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-hackers@postgresql.org
Cc: andres@anarazel.de
Subject: Re: Declaration fixes
In-Reply-To: <20220512164513.vaheofqp2q24l65r@alap3.anarazel.de>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox