pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
Declaration fixes
4+ messages / 2 participants
[nested] [flat]

Commits from this thread:
  2022-05-12 09cd33f47b  Add 'static' to file-local variables missing it.
  2022-05-12 905c020bef  Add missing 'extern' to function prototypes.
  2022-05-12 0699b1ae2d  Add missing binary_upgrade.h includes.
  2022-05-12 07d683b54a  Remove function declaration for function in pg_proc.
* Declaration fixes
@ 2022-05-12 16:45  Andres Freund <andres@anarazel.de>
  0 siblings, 1 reply; 4+ messages in thread

From: Andres Freund @ 2022-05-12 16:45 UTC (permalink / raw)
  To: pgsql-hackers

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
^ permalink raw reply [nested|flat] 4+ messages in thread

* Re: Declaration fixes
@ 2022-05-12 17:18  Tom Lane <tgl@sss.pgh.pa.us>
  parent: Andres Freund <andres@anarazel.de>
  0 siblings, 1 reply; 4+ messages in thread

From: Tom Lane @ 2022-05-12 17:18 UTC (permalink / raw)
  To: Andres Freund <andres@anarazel.de>; +Cc: pgsql-hackers

Andres Freund <andres@anarazel.de> writes:
> 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.

+1 to all of that.  Would the changes you're working on result in getting
warnings for these sorts of oversights on mainstream compilers?

			regards, tom lane





^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* Re: Declaration fixes
@ 2022-05-12 18:38  Andres Freund <andres@anarazel.de>
  parent: Tom Lane <tgl@sss.pgh.pa.us>
  0 siblings, 1 reply; 4+ messages in thread

From: Andres Freund @ 2022-05-12 18:38 UTC (permalink / raw)
  To: Tom Lane <tgl@sss.pgh.pa.us>; +Cc: pgsql-hackers

Hi,

On 2022-05-12 13:18:05 -0400, Tom Lane wrote:
> Andres Freund <andres@anarazel.de> writes:
> > 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.
> 
> +1 to all of that.

Cool.


> Would the changes you're working on result in getting
> warnings for these sorts of oversights on mainstream compilers?

I assume with "mainstream compiler" you basically mean gcc and clang? If so,
some oversights would be hard errors, some warnings, some runtime (i.e. symbol
not found errors when loading extension library) but some others unfortunately
would continue to only be visible in msvc :(.

Greetings,

Andres Freund





^ permalink  raw  reply  [nested|flat] 4+ messages in thread

* Re: Declaration fixes
@ 2022-05-12 19:44  Andres Freund <andres@anarazel.de>
  parent: Andres Freund <andres@anarazel.de>
  0 siblings, 0 replies; 4+ messages in thread

From: Andres Freund @ 2022-05-12 19:44 UTC (permalink / raw)
  To: Tom Lane <tgl@sss.pgh.pa.us>; +Cc: pgsql-hackers

On 2022-05-12 11:38:39 -0700, Andres Freund wrote:
> On 2022-05-12 13:18:05 -0400, Tom Lane wrote:
> > Andres Freund <andres@anarazel.de> writes:
> > > I think the attached patches are all a good idea and trivial enought that I
> > > think we should apply them now.
> > 
> > +1 to all of that.
> 
> Cool.

Pushed them.





^ permalink  raw  reply  [nested|flat] 4+ messages in thread


end of thread, other threads:[~2022-05-12 19:44 UTC | newest]

Thread overview: 4+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2022-05-12 16:45 Declaration fixes Andres Freund <andres@anarazel.de>
2022-05-12 17:18 ` Tom Lane <tgl@sss.pgh.pa.us>
2022-05-12 18:38   ` Andres Freund <andres@anarazel.de>
2022-05-12 19:44     ` Andres Freund <andres@anarazel.de>

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