diff --git a/src/include/access/gin.h b/src/include/access/gin.h index e83e0acd92..aacc665fdc 100644 --- a/src/include/access/gin.h +++ b/src/include/access/gin.h @@ -68,7 +68,7 @@ typedef char GinTernaryValue; /* GUC parameters */ extern PGDLLIMPORT int GinFuzzySearchLimit; -extern int gin_pending_list_limit; +extern PGDLLIMPORT int gin_pending_list_limit; /* ginutil.c */ extern void ginGetStats(Relation index, GinStatsData *stats); diff --git a/src/include/access/parallel.h b/src/include/access/parallel.h index 30786820f8..983841d45e 100644 --- a/src/include/access/parallel.h +++ b/src/include/access/parallel.h @@ -54,7 +54,7 @@ typedef struct ParallelWorkerContext shm_toc *toc; } ParallelWorkerContext; -extern volatile bool ParallelMessagePending; +extern PGDLLIMPORT volatile bool ParallelMessagePending; extern PGDLLIMPORT int ParallelWorkerNumber; extern PGDLLIMPORT bool InitializingParallelWorker; diff --git a/src/include/access/session.h b/src/include/access/session.h index 0ed52d4821..775888bbb0 100644 --- a/src/include/access/session.h +++ b/src/include/access/session.h @@ -39,6 +39,6 @@ extern void AttachSession(dsm_handle handle); extern void DetachSession(void); /* The current session, or NULL for none. */ -extern Session *CurrentSession; +extern PGDLLIMPORT Session *CurrentSession; #endif /* SESSION_H */ diff --git a/src/include/access/tableam.h b/src/include/access/tableam.h index bb365736b7..fe869c6c18 100644 --- a/src/include/access/tableam.h +++ b/src/include/access/tableam.h @@ -28,8 +28,8 @@ #define DEFAULT_TABLE_ACCESS_METHOD "heap" /* GUCs */ -extern char *default_table_access_method; -extern bool synchronize_seqscans; +extern PGDLLIMPORT char *default_table_access_method; +extern PGDLLIMPORT bool synchronize_seqscans; struct BulkInsertStateData; diff --git a/src/include/access/toast_compression.h b/src/include/access/toast_compression.h index 9b433c7721..deb8f99da5 100644 --- a/src/include/access/toast_compression.h +++ b/src/include/access/toast_compression.h @@ -20,7 +20,7 @@ * but the value is one of the char values defined below, as they appear in * pg_attribute.attcompression, e.g. TOAST_PGLZ_COMPRESSION. */ -extern int default_toast_compression; +extern PGDLLIMPORT int default_toast_compression; /* * Built-in compression method ID. The toast compression header will store diff --git a/src/include/access/twophase_rmgr.h b/src/include/access/twophase_rmgr.h index 284c7539f8..96381a5e3f 100644 --- a/src/include/access/twophase_rmgr.h +++ b/src/include/access/twophase_rmgr.h @@ -28,10 +28,10 @@ typedef uint8 TwoPhaseRmgrId; #define TWOPHASE_RM_PREDICATELOCK_ID 4 #define TWOPHASE_RM_MAX_ID TWOPHASE_RM_PREDICATELOCK_ID -extern const TwoPhaseCallback twophase_recover_callbacks[]; -extern const TwoPhaseCallback twophase_postcommit_callbacks[]; -extern const TwoPhaseCallback twophase_postabort_callbacks[]; -extern const TwoPhaseCallback twophase_standby_recover_callbacks[]; +extern PGDLLIMPORT const TwoPhaseCallback twophase_recover_callbacks[]; +extern PGDLLIMPORT const TwoPhaseCallback twophase_postcommit_callbacks[]; +extern PGDLLIMPORT const TwoPhaseCallback twophase_postabort_callbacks[]; +extern PGDLLIMPORT const TwoPhaseCallback twophase_standby_recover_callbacks[]; extern void RegisterTwoPhaseRecord(TwoPhaseRmgrId rmid, uint16 info, diff --git a/src/include/access/xact.h b/src/include/access/xact.h index 4e1e873501..837fe7de0b 100644 --- a/src/include/access/xact.h +++ b/src/include/access/xact.h @@ -38,7 +38,7 @@ #define XACT_REPEATABLE_READ 2 #define XACT_SERIALIZABLE 3 -extern int DefaultXactIsoLevel; +extern PGDLLIMPORT int DefaultXactIsoLevel; extern PGDLLIMPORT int XactIsoLevel; /* @@ -52,18 +52,18 @@ extern PGDLLIMPORT int XactIsoLevel; #define IsolationIsSerializable() (XactIsoLevel == XACT_SERIALIZABLE) /* Xact read-only state */ -extern bool DefaultXactReadOnly; -extern bool XactReadOnly; +extern PGDLLIMPORT bool DefaultXactReadOnly; +extern PGDLLIMPORT bool XactReadOnly; /* flag for logging statements in this transaction */ -extern bool xact_is_sampled; +extern PGDLLIMPORT bool xact_is_sampled; /* * Xact is deferrable -- only meaningful (currently) for read only * SERIALIZABLE transactions */ -extern bool DefaultXactDeferrable; -extern bool XactDeferrable; +extern PGDLLIMPORT bool DefaultXactDeferrable; +extern PGDLLIMPORT bool XactDeferrable; typedef enum { @@ -80,7 +80,7 @@ typedef enum #define SYNCHRONOUS_COMMIT_ON SYNCHRONOUS_COMMIT_REMOTE_FLUSH /* Synchronous commit level */ -extern int synchronous_commit; +extern PGDLLIMPORT int synchronous_commit; /* used during logical streaming of a transaction */ extern PGDLLIMPORT TransactionId CheckXidAlive; @@ -93,7 +93,7 @@ extern PGDLLIMPORT bool bsysscan; * globally accessible, so can be set from anywhere in the code which requires * recording flags. */ -extern int MyXactFlags; +extern PGDLLIMPORT int MyXactFlags; /* * XACT_FLAGS_ACCESSEDTEMPNAMESPACE - set when a temporary object is accessed. diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h index 5e1e3446ae..d9f2487a96 100644 --- a/src/include/access/xlog.h +++ b/src/include/access/xlog.h @@ -24,35 +24,35 @@ #define SYNC_METHOD_OPEN 2 /* for O_SYNC */ #define SYNC_METHOD_FSYNC_WRITETHROUGH 3 #define SYNC_METHOD_OPEN_DSYNC 4 /* for O_DSYNC */ -extern int sync_method; +extern PGDLLIMPORT int sync_method; -extern XLogRecPtr ProcLastRecPtr; -extern XLogRecPtr XactLastRecEnd; +extern PGDLLIMPORT XLogRecPtr ProcLastRecPtr; +extern PGDLLIMPORT XLogRecPtr XactLastRecEnd; extern PGDLLIMPORT XLogRecPtr XactLastCommitEnd; /* these variables are GUC parameters related to XLOG */ -extern PGDLLIMPORT int wal_segment_size; -extern int min_wal_size_mb; -extern int max_wal_size_mb; -extern int wal_keep_size_mb; -extern int max_slot_wal_keep_size_mb; -extern int XLOGbuffers; -extern int XLogArchiveTimeout; -extern int wal_retrieve_retry_interval; -extern char *XLogArchiveCommand; -extern bool EnableHotStandby; -extern bool fullPageWrites; -extern bool wal_log_hints; -extern int wal_compression; -extern bool wal_init_zero; -extern bool wal_recycle; -extern bool *wal_consistency_checking; -extern char *wal_consistency_checking_string; -extern bool log_checkpoints; -extern bool track_wal_io_timing; -extern int wal_decode_buffer_size; +extern PGDLLIMPORT int wal_segment_size; +extern PGDLLIMPORT int min_wal_size_mb; +extern PGDLLIMPORT int max_wal_size_mb; +extern PGDLLIMPORT int wal_keep_size_mb; +extern PGDLLIMPORT int max_slot_wal_keep_size_mb; +extern PGDLLIMPORT int XLOGbuffers; +extern PGDLLIMPORT int XLogArchiveTimeout; +extern PGDLLIMPORT int wal_retrieve_retry_interval; +extern PGDLLIMPORT char *XLogArchiveCommand; +extern PGDLLIMPORT bool EnableHotStandby; +extern PGDLLIMPORT bool fullPageWrites; +extern PGDLLIMPORT bool wal_log_hints; +extern PGDLLIMPORT int wal_compression; +extern PGDLLIMPORT bool wal_init_zero; +extern PGDLLIMPORT bool wal_recycle; +extern PGDLLIMPORT bool *wal_consistency_checking; +extern PGDLLIMPORT char *wal_consistency_checking_string; +extern PGDLLIMPORT bool log_checkpoints; +extern PGDLLIMPORT bool track_wal_io_timing; +extern PGDLLIMPORT int wal_decode_buffer_size; -extern int CheckPointSegments; +extern PGDLLIMPORT int CheckPointSegments; /* Archive modes */ typedef enum ArchiveMode @@ -61,7 +61,7 @@ typedef enum ArchiveMode ARCHIVE_MODE_ON, /* enabled while server is running normally */ ARCHIVE_MODE_ALWAYS /* enabled always (even during recovery) */ } ArchiveMode; -extern int XLogArchiveMode; +extern PGDLLIMPORT int XLogArchiveMode; /* WAL levels */ typedef enum WalLevel @@ -121,7 +121,7 @@ extern PGDLLIMPORT int wal_level; #define XLogLogicalInfoActive() (wal_level >= WAL_LEVEL_LOGICAL) #ifdef WAL_DEBUG -extern bool XLOG_DEBUG; +extern PGDLLIMPORT bool XLOG_DEBUG; #endif /* @@ -175,7 +175,7 @@ typedef struct CheckpointStatsData * entire sync phase. */ } CheckpointStatsData; -extern CheckpointStatsData CheckpointStats; +extern PGDLLIMPORT CheckpointStatsData CheckpointStats; /* * GetWALAvailability return codes diff --git a/src/include/access/xlog_internal.h b/src/include/access/xlog_internal.h index 750f634120..fae0bef8f5 100644 --- a/src/include/access/xlog_internal.h +++ b/src/include/access/xlog_internal.h @@ -358,9 +358,9 @@ extern void XLogRecGetBlockRefInfo(XLogReaderState *record, bool pretty, * Exported for the functions in timeline.c and xlogarchive.c. Only valid * in the startup process. */ -extern bool ArchiveRecoveryRequested; -extern bool InArchiveRecovery; -extern bool StandbyMode; -extern char *recoveryRestoreCommand; +extern PGDLLIMPORT bool ArchiveRecoveryRequested; +extern PGDLLIMPORT bool InArchiveRecovery; +extern PGDLLIMPORT bool StandbyMode; +extern PGDLLIMPORT char *recoveryRestoreCommand; #endif /* XLOG_INTERNAL_H */ diff --git a/src/include/access/xlogprefetcher.h b/src/include/access/xlogprefetcher.h index 80283a8fc2..fdd67fcedd 100644 --- a/src/include/access/xlogprefetcher.h +++ b/src/include/access/xlogprefetcher.h @@ -18,7 +18,7 @@ #include "access/xlogrecord.h" /* GUCs */ -extern int recovery_prefetch; +extern PGDLLIMPORT int recovery_prefetch; /* Possible values for recovery_prefetch */ typedef enum diff --git a/src/include/access/xlogrecovery.h b/src/include/access/xlogrecovery.h index 75a0f5fe5e..0aa85d90e8 100644 --- a/src/include/access/xlogrecovery.h +++ b/src/include/access/xlogrecovery.h @@ -49,33 +49,33 @@ typedef enum RecoveryPauseState } RecoveryPauseState; /* User-settable GUC parameters */ -extern bool recoveryTargetInclusive; -extern int recoveryTargetAction; -extern int recovery_min_apply_delay; -extern char *PrimaryConnInfo; -extern char *PrimarySlotName; -extern char *recoveryRestoreCommand; -extern char *recoveryEndCommand; -extern char *archiveCleanupCommand; +extern PGDLLIMPORT bool recoveryTargetInclusive; +extern PGDLLIMPORT int recoveryTargetAction; +extern PGDLLIMPORT int recovery_min_apply_delay; +extern PGDLLIMPORT char *PrimaryConnInfo; +extern PGDLLIMPORT char *PrimarySlotName; +extern PGDLLIMPORT char *recoveryRestoreCommand; +extern PGDLLIMPORT char *recoveryEndCommand; +extern PGDLLIMPORT char *archiveCleanupCommand; /* indirectly set via GUC system */ -extern TransactionId recoveryTargetXid; -extern char *recovery_target_time_string; -extern TimestampTz recoveryTargetTime; -extern const char *recoveryTargetName; -extern XLogRecPtr recoveryTargetLSN; -extern RecoveryTargetType recoveryTarget; -extern char *PromoteTriggerFile; -extern bool wal_receiver_create_temp_slot; -extern RecoveryTargetTimeLineGoal recoveryTargetTimeLineGoal; -extern TimeLineID recoveryTargetTLIRequested; -extern TimeLineID recoveryTargetTLI; +extern PGDLLIMPORT TransactionId recoveryTargetXid; +extern PGDLLIMPORT char *recovery_target_time_string; +extern PGDLLIMPORT TimestampTz recoveryTargetTime; +extern PGDLLIMPORT const char *recoveryTargetName; +extern PGDLLIMPORT XLogRecPtr recoveryTargetLSN; +extern PGDLLIMPORT RecoveryTargetType recoveryTarget; +extern PGDLLIMPORT char *PromoteTriggerFile; +extern PGDLLIMPORT bool wal_receiver_create_temp_slot; +extern PGDLLIMPORT RecoveryTargetTimeLineGoal recoveryTargetTimeLineGoal; +extern PGDLLIMPORT TimeLineID recoveryTargetTLIRequested; +extern PGDLLIMPORT TimeLineID recoveryTargetTLI; /* Have we already reached a consistent database state? */ -extern bool reachedConsistency; +extern PGDLLIMPORT bool reachedConsistency; /* Are we currently in standby mode? */ -extern bool StandbyMode; +extern PGDLLIMPORT bool StandbyMode; extern Size XLogRecoveryShmemSize(void); extern void XLogRecoveryShmemInit(void); diff --git a/src/include/access/xlogutils.h b/src/include/access/xlogutils.h index 3746e31e40..761625acf4 100644 --- a/src/include/access/xlogutils.h +++ b/src/include/access/xlogutils.h @@ -21,7 +21,7 @@ * potentially perform work during recovery should check RecoveryInProgress(). * See XLogCtl notes in xlog.c. */ -extern bool InRecovery; +extern PGDLLIMPORT bool InRecovery; /* * Like InRecovery, standbyState is only valid in the startup process. @@ -52,7 +52,7 @@ typedef enum STANDBY_SNAPSHOT_READY } HotStandbyState; -extern HotStandbyState standbyState; +extern PGDLLIMPORT HotStandbyState standbyState; #define InHotStandby (standbyState >= STANDBY_SNAPSHOT_PENDING) diff --git a/src/include/bootstrap/bootstrap.h b/src/include/bootstrap/bootstrap.h index 471414909f..49d4ad560f 100644 --- a/src/include/bootstrap/bootstrap.h +++ b/src/include/bootstrap/bootstrap.h @@ -27,9 +27,9 @@ #define BOOTCOL_NULL_FORCE_NULL 2 #define BOOTCOL_NULL_FORCE_NOT_NULL 3 -extern Relation boot_reldesc; -extern Form_pg_attribute attrtypes[MAXATTR]; -extern int numattr; +extern PGDLLIMPORT Relation boot_reldesc; +extern PGDLLIMPORT Form_pg_attribute attrtypes[MAXATTR]; +extern PGDLLIMPORT int numattr; extern void BootstrapModeMain(int argc, char *argv[], bool check_only) pg_attribute_noreturn(); diff --git a/src/include/catalog/namespace.h b/src/include/catalog/namespace.h index f963d82797..1bc55c01a5 100644 --- a/src/include/catalog/namespace.h +++ b/src/include/catalog/namespace.h @@ -182,7 +182,7 @@ extern void AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid, SubTransactionId parentSubid); /* stuff for search_path GUC variable */ -extern char *namespace_search_path; +extern PGDLLIMPORT char *namespace_search_path; extern List *fetch_search_path(bool includeImplicit); extern int fetch_search_path_array(Oid *sarray, int sarray_len); diff --git a/src/include/catalog/objectaddress.h b/src/include/catalog/objectaddress.h index 274f300054..cf4d8b3107 100644 --- a/src/include/catalog/objectaddress.h +++ b/src/include/catalog/objectaddress.h @@ -28,7 +28,7 @@ typedef struct ObjectAddress int32 objectSubId; /* Subitem within object (eg column), or 0 */ } ObjectAddress; -extern const ObjectAddress InvalidObjectAddress; +extern PGDLLIMPORT const ObjectAddress InvalidObjectAddress; #define ObjectAddressSubSet(addr, class_id, object_id, object_sub_id) \ do { \ diff --git a/src/include/catalog/storage.h b/src/include/catalog/storage.h index 844a023b2c..59f3404ac6 100644 --- a/src/include/catalog/storage.h +++ b/src/include/catalog/storage.h @@ -20,7 +20,7 @@ #include "utils/relcache.h" /* GUC variables */ -extern int wal_skip_threshold; +extern PGDLLIMPORT int wal_skip_threshold; extern SMgrRelation RelationCreateStorage(RelFileNode rnode, char relpersistence, diff --git a/src/include/commands/async.h b/src/include/commands/async.h index ebc9271789..926af933d1 100644 --- a/src/include/commands/async.h +++ b/src/include/commands/async.h @@ -20,8 +20,8 @@ */ #define NUM_NOTIFY_BUFFERS 8 -extern bool Trace_notify; -extern volatile sig_atomic_t notifyInterruptPending; +extern PGDLLIMPORT bool Trace_notify; +extern PGDLLIMPORT volatile sig_atomic_t notifyInterruptPending; extern Size AsyncShmemSize(void); extern void AsyncShmemInit(void); diff --git a/src/include/commands/tablespace.h b/src/include/commands/tablespace.h index 323528ebb8..24b647332d 100644 --- a/src/include/commands/tablespace.h +++ b/src/include/commands/tablespace.h @@ -19,7 +19,7 @@ #include "lib/stringinfo.h" #include "nodes/parsenodes.h" -extern bool allow_in_place_tablespaces; +extern PGDLLIMPORT bool allow_in_place_tablespaces; /* XLOG stuff */ #define XLOG_TBLSPC_CREATE 0x00 diff --git a/src/include/commands/user.h b/src/include/commands/user.h index 0b7a3cd65f..d3dd8303d2 100644 --- a/src/include/commands/user.h +++ b/src/include/commands/user.h @@ -17,7 +17,7 @@ #include "parser/parse_node.h" /* GUC. Is actually of type PasswordType. */ -extern int Password_encryption; +extern PGDLLIMPORT int Password_encryption; /* Hook to check passwords in CreateRole() and AlterRole() */ typedef void (*check_password_hook_type) (const char *username, const char *shadow_pass, PasswordType password_type, Datum validuntil_time, bool validuntil_null); diff --git a/src/include/commands/vacuum.h b/src/include/commands/vacuum.h index ead88edda7..f38e1148f9 100644 --- a/src/include/commands/vacuum.h +++ b/src/include/commands/vacuum.h @@ -252,17 +252,17 @@ typedef struct VacDeadItems /* GUC parameters */ extern PGDLLIMPORT int default_statistics_target; /* PGDLLIMPORT for PostGIS */ -extern int vacuum_freeze_min_age; -extern int vacuum_freeze_table_age; -extern int vacuum_multixact_freeze_min_age; -extern int vacuum_multixact_freeze_table_age; -extern int vacuum_failsafe_age; -extern int vacuum_multixact_failsafe_age; +extern PGDLLIMPORT int vacuum_freeze_min_age; +extern PGDLLIMPORT int vacuum_freeze_table_age; +extern PGDLLIMPORT int vacuum_multixact_freeze_min_age; +extern PGDLLIMPORT int vacuum_multixact_freeze_table_age; +extern PGDLLIMPORT int vacuum_failsafe_age; +extern PGDLLIMPORT int vacuum_multixact_failsafe_age; /* Variables for cost-based parallel vacuum */ -extern pg_atomic_uint32 *VacuumSharedCostBalance; -extern pg_atomic_uint32 *VacuumActiveNWorkers; -extern int VacuumCostBalanceLocal; +extern PGDLLIMPORT pg_atomic_uint32 *VacuumSharedCostBalance; +extern PGDLLIMPORT pg_atomic_uint32 *VacuumActiveNWorkers; +extern PGDLLIMPORT int VacuumCostBalanceLocal; /* in commands/vacuum.c */ diff --git a/src/include/common/file_perm.h b/src/include/common/file_perm.h index 85d32ed141..48d68ef276 100644 --- a/src/include/common/file_perm.h +++ b/src/include/common/file_perm.h @@ -41,11 +41,11 @@ #define PG_FILE_MODE_GROUP (S_IRUSR | S_IWUSR | S_IRGRP) /* Modes for creating directories and files in the data directory */ -extern int pg_dir_create_mode; -extern int pg_file_create_mode; +extern PGDLLIMPORT int pg_dir_create_mode; +extern PGDLLIMPORT int pg_file_create_mode; /* Mode mask to pass to umask() */ -extern int pg_mode_mask; +extern PGDLLIMPORT int pg_mode_mask; /* Set permissions and mask based on the provided mode */ extern void SetDataDirectoryCreatePerm(int dataDirMode); diff --git a/src/include/common/jsonapi.h b/src/include/common/jsonapi.h index 52cb4a9339..8d31630e5c 100644 --- a/src/include/common/jsonapi.h +++ b/src/include/common/jsonapi.h @@ -128,7 +128,7 @@ extern JsonParseErrorType pg_parse_json(JsonLexContext *lex, JsonSemAction *sem); /* the null action object used for pure validation */ -extern JsonSemAction nullSemAction; +extern PGDLLIMPORT JsonSemAction nullSemAction; /* * json_count_array_elements performs a fast secondary parse to determine the diff --git a/src/include/common/logging.h b/src/include/common/logging.h index 43cc79afa8..61cfdce653 100644 --- a/src/include/common/logging.h +++ b/src/include/common/logging.h @@ -55,7 +55,7 @@ enum pg_log_level PG_LOG_OFF, }; -extern enum pg_log_level __pg_log_level; +extern PGDLLIMPORT enum pg_log_level __pg_log_level; /* * Kind of a hack to be able to produce the psql output exactly as required by diff --git a/src/include/common/pg_lzcompress.h b/src/include/common/pg_lzcompress.h index 3e53fbe97b..2a12b33a00 100644 --- a/src/include/common/pg_lzcompress.h +++ b/src/include/common/pg_lzcompress.h @@ -75,8 +75,8 @@ typedef struct PGLZ_Strategy * output would be larger than input. * ---------- */ -extern const PGLZ_Strategy *const PGLZ_strategy_default; -extern const PGLZ_Strategy *const PGLZ_strategy_always; +extern PGDLLIMPORT const PGLZ_Strategy *const PGLZ_strategy_default; +extern PGDLLIMPORT const PGLZ_Strategy *const PGLZ_strategy_always; /* ---------- diff --git a/src/include/common/relpath.h b/src/include/common/relpath.h index a4b5dc853b..13849a3790 100644 --- a/src/include/common/relpath.h +++ b/src/include/common/relpath.h @@ -56,7 +56,7 @@ typedef enum ForkNumber #define FORKNAMECHARS 4 /* max chars for a fork name */ -extern const char *const forkNames[]; +extern PGDLLIMPORT const char *const forkNames[]; extern ForkNumber forkname_to_number(const char *forkName); extern int forkname_chars(const char *str, ForkNumber *fork); diff --git a/src/include/fe_utils/cancel.h b/src/include/fe_utils/cancel.h index 7005b804bc..3b84daf6eb 100644 --- a/src/include/fe_utils/cancel.h +++ b/src/include/fe_utils/cancel.h @@ -18,7 +18,7 @@ #include "libpq-fe.h" -extern volatile sig_atomic_t CancelRequested; +extern PGDLLIMPORT volatile sig_atomic_t CancelRequested; extern void SetCancelConn(PGconn *conn); extern void ResetCancelConn(void); diff --git a/src/include/fe_utils/print.h b/src/include/fe_utils/print.h index 836b4e29a8..bb2f1bf4e6 100644 --- a/src/include/fe_utils/print.h +++ b/src/include/fe_utils/print.h @@ -177,11 +177,12 @@ typedef struct printQueryOpt } printQueryOpt; -extern volatile sig_atomic_t cancel_pressed; +extern PGDLLIMPORT volatile sig_atomic_t cancel_pressed; -extern const printTextFormat pg_asciiformat; -extern const printTextFormat pg_asciiformat_old; -extern printTextFormat pg_utf8format; /* ideally would be const, but... */ +extern PGDLLIMPORT const printTextFormat pg_asciiformat; +extern PGDLLIMPORT const printTextFormat pg_asciiformat_old; +extern PGDLLIMPORT printTextFormat pg_utf8format; /* ideally would be const, + * but... */ extern void disable_sigpipe_trap(void); diff --git a/src/include/fe_utils/string_utils.h b/src/include/fe_utils/string_utils.h index 3c88250e6c..b9b8708dab 100644 --- a/src/include/fe_utils/string_utils.h +++ b/src/include/fe_utils/string_utils.h @@ -20,7 +20,7 @@ #include "pqexpbuffer.h" /* Global variables controlling behavior of fmtId() and fmtQualifiedId() */ -extern int quote_all_identifiers; +extern PGDLLIMPORT int quote_all_identifiers; extern PQExpBuffer (*getLocalPQExpBuffer) (void); /* Functions */ diff --git a/src/include/fmgr.h b/src/include/fmgr.h index 6560e462d6..a1cf4bd646 100644 --- a/src/include/fmgr.h +++ b/src/include/fmgr.h @@ -721,7 +721,7 @@ extern bool CheckFunctionValidatorAccess(Oid validatorOid, Oid functionOid); /* * Routines in dfmgr.c */ -extern char *Dynamic_library_path; +extern PGDLLIMPORT char *Dynamic_library_path; extern void *load_external_function(const char *filename, const char *funcname, bool signalNotFound, void **filehandle); diff --git a/src/include/jit/jit.h b/src/include/jit/jit.h index 707176d9ed..d194033209 100644 --- a/src/include/jit/jit.h +++ b/src/include/jit/jit.h @@ -79,16 +79,16 @@ struct JitProviderCallbacks /* GUCs */ -extern bool jit_enabled; -extern char *jit_provider; -extern bool jit_debugging_support; -extern bool jit_dump_bitcode; -extern bool jit_expressions; -extern bool jit_profiling_support; -extern bool jit_tuple_deforming; -extern double jit_above_cost; -extern double jit_inline_above_cost; -extern double jit_optimize_above_cost; +extern PGDLLIMPORT bool jit_enabled; +extern PGDLLIMPORT char *jit_provider; +extern PGDLLIMPORT bool jit_debugging_support; +extern PGDLLIMPORT bool jit_dump_bitcode; +extern PGDLLIMPORT bool jit_expressions; +extern PGDLLIMPORT bool jit_profiling_support; +extern PGDLLIMPORT bool jit_tuple_deforming; +extern PGDLLIMPORT double jit_above_cost; +extern PGDLLIMPORT double jit_inline_above_cost; +extern PGDLLIMPORT double jit_optimize_above_cost; extern void jit_reset_after_error(void); diff --git a/src/include/jit/llvmjit.h b/src/include/jit/llvmjit.h index 66143afccc..4541f9a2c4 100644 --- a/src/include/jit/llvmjit.h +++ b/src/include/jit/llvmjit.h @@ -56,30 +56,30 @@ typedef struct LLVMJitContext } LLVMJitContext; /* llvm module containing information about types */ -extern LLVMModuleRef llvm_types_module; +extern PGDLLIMPORT LLVMModuleRef llvm_types_module; /* type and struct definitions */ -extern LLVMTypeRef TypeParamBool; -extern LLVMTypeRef TypePGFunction; -extern LLVMTypeRef TypeSizeT; -extern LLVMTypeRef TypeStorageBool; +extern PGDLLIMPORT LLVMTypeRef TypeParamBool; +extern PGDLLIMPORT LLVMTypeRef TypePGFunction; +extern PGDLLIMPORT LLVMTypeRef TypeSizeT; +extern PGDLLIMPORT LLVMTypeRef TypeStorageBool; -extern LLVMTypeRef StructNullableDatum; -extern LLVMTypeRef StructTupleDescData; -extern LLVMTypeRef StructHeapTupleData; -extern LLVMTypeRef StructTupleTableSlot; -extern LLVMTypeRef StructHeapTupleTableSlot; -extern LLVMTypeRef StructMinimalTupleTableSlot; -extern LLVMTypeRef StructMemoryContextData; -extern LLVMTypeRef StructFunctionCallInfoData; -extern LLVMTypeRef StructExprContext; -extern LLVMTypeRef StructExprEvalStep; -extern LLVMTypeRef StructExprState; -extern LLVMTypeRef StructAggState; -extern LLVMTypeRef StructAggStatePerTransData; -extern LLVMTypeRef StructAggStatePerGroupData; +extern PGDLLIMPORT LLVMTypeRef StructNullableDatum; +extern PGDLLIMPORT LLVMTypeRef StructTupleDescData; +extern PGDLLIMPORT LLVMTypeRef StructHeapTupleData; +extern PGDLLIMPORT LLVMTypeRef StructTupleTableSlot; +extern PGDLLIMPORT LLVMTypeRef StructHeapTupleTableSlot; +extern PGDLLIMPORT LLVMTypeRef StructMinimalTupleTableSlot; +extern PGDLLIMPORT LLVMTypeRef StructMemoryContextData; +extern PGDLLIMPORT LLVMTypeRef StructFunctionCallInfoData; +extern PGDLLIMPORT LLVMTypeRef StructExprContext; +extern PGDLLIMPORT LLVMTypeRef StructExprEvalStep; +extern PGDLLIMPORT LLVMTypeRef StructExprState; +extern PGDLLIMPORT LLVMTypeRef StructAggState; +extern PGDLLIMPORT LLVMTypeRef StructAggStatePerTransData; +extern PGDLLIMPORT LLVMTypeRef StructAggStatePerGroupData; -extern LLVMValueRef AttributeTemplate; +extern PGDLLIMPORT LLVMValueRef AttributeTemplate; extern void llvm_enter_fatal_on_oom(void); diff --git a/src/include/libpq/auth.h b/src/include/libpq/auth.h index 6d7ee1acb9..d3c189efe3 100644 --- a/src/include/libpq/auth.h +++ b/src/include/libpq/auth.h @@ -16,9 +16,9 @@ #include "libpq/libpq-be.h" -extern char *pg_krb_server_keyfile; -extern bool pg_krb_caseins_users; -extern char *pg_krb_realm; +extern PGDLLIMPORT char *pg_krb_server_keyfile; +extern PGDLLIMPORT bool pg_krb_caseins_users; +extern PGDLLIMPORT char *pg_krb_realm; extern void ClientAuthentication(Port *port); extern void sendAuthRequest(Port *port, AuthRequest areq, const char *extradata, diff --git a/src/include/libpq/libpq-be.h b/src/include/libpq/libpq-be.h index c3bf514652..90c20da22b 100644 --- a/src/include/libpq/libpq-be.h +++ b/src/include/libpq/libpq-be.h @@ -326,7 +326,7 @@ extern ssize_t be_gssapi_read(Port *port, void *ptr, size_t len); extern ssize_t be_gssapi_write(Port *port, void *ptr, size_t len); #endif /* ENABLE_GSS */ -extern ProtocolVersion FrontendProtocol; +extern PGDLLIMPORT ProtocolVersion FrontendProtocol; /* TCP keepalives configuration. These are no-ops on an AF_UNIX socket. */ diff --git a/src/include/libpq/libpq.h b/src/include/libpq/libpq.h index d348a55812..2de7d9bad2 100644 --- a/src/include/libpq/libpq.h +++ b/src/include/libpq/libpq.h @@ -58,7 +58,7 @@ extern const PGDLLIMPORT PQcommMethods *PqCommMethods; /* * prototypes for functions in pqcomm.c */ -extern WaitEventSet *FeBeWaitSet; +extern PGDLLIMPORT WaitEventSet *FeBeWaitSet; #define FeBeWaitSetSocketPos 0 #define FeBeWaitSetLatchPos 1 @@ -87,17 +87,17 @@ extern bool pq_check_connection(void); /* * prototypes for functions in be-secure.c */ -extern char *ssl_library; -extern char *ssl_cert_file; -extern char *ssl_key_file; -extern char *ssl_ca_file; -extern char *ssl_crl_file; -extern char *ssl_crl_dir; -extern char *ssl_dh_params_file; +extern PGDLLIMPORT char *ssl_library; +extern PGDLLIMPORT char *ssl_cert_file; +extern PGDLLIMPORT char *ssl_key_file; +extern PGDLLIMPORT char *ssl_ca_file; +extern PGDLLIMPORT char *ssl_crl_file; +extern PGDLLIMPORT char *ssl_crl_dir; +extern PGDLLIMPORT char *ssl_dh_params_file; extern PGDLLIMPORT char *ssl_passphrase_command; extern PGDLLIMPORT bool ssl_passphrase_command_supports_reload; #ifdef USE_SSL -extern bool ssl_loaded_verify_locations; +extern PGDLLIMPORT bool ssl_loaded_verify_locations; #endif extern int secure_initialize(bool isServerStart); @@ -118,11 +118,11 @@ extern ssize_t secure_open_gssapi(Port *port); #endif /* GUCs */ -extern char *SSLCipherSuites; -extern char *SSLECDHCurve; -extern bool SSLPreferServerCiphers; -extern int ssl_min_protocol_version; -extern int ssl_max_protocol_version; +extern PGDLLIMPORT char *SSLCipherSuites; +extern PGDLLIMPORT char *SSLECDHCurve; +extern PGDLLIMPORT bool SSLPreferServerCiphers; +extern PGDLLIMPORT int ssl_min_protocol_version; +extern PGDLLIMPORT int ssl_max_protocol_version; enum ssl_protocol_versions { diff --git a/src/include/libpq/pqcomm.h b/src/include/libpq/pqcomm.h index ed26ad2256..b418283d5f 100644 --- a/src/include/libpq/pqcomm.h +++ b/src/include/libpq/pqcomm.h @@ -135,7 +135,7 @@ typedef ProtocolVersion MsgType; typedef uint32 PacketLen; -extern bool Db_user_namespace; +extern PGDLLIMPORT bool Db_user_namespace; /* * In protocol 3.0 and later, the startup packet length is not fixed, but diff --git a/src/include/libpq/scram.h b/src/include/libpq/scram.h index e60992a0d2..c51e848c24 100644 --- a/src/include/libpq/scram.h +++ b/src/include/libpq/scram.h @@ -18,7 +18,7 @@ #include "libpq/sasl.h" /* SASL implementation callbacks */ -extern const pg_be_sasl_mech pg_be_scram_mech; +extern PGDLLIMPORT const pg_be_sasl_mech pg_be_scram_mech; /* Routines to handle and check SCRAM-SHA-256 secret */ extern char *pg_be_scram_build_secret(const char *password); diff --git a/src/include/mb/pg_wchar.h b/src/include/mb/pg_wchar.h index fd89bee80b..31f5b393da 100644 --- a/src/include/mb/pg_wchar.h +++ b/src/include/mb/pg_wchar.h @@ -359,7 +359,7 @@ typedef struct pg_enc2name #endif } pg_enc2name; -extern const pg_enc2name pg_enc2name_tbl[]; +extern PGDLLIMPORT const pg_enc2name pg_enc2name_tbl[]; /* * Encoding names for gettext @@ -370,7 +370,7 @@ typedef struct pg_enc2gettext const char *name; } pg_enc2gettext; -extern const pg_enc2gettext pg_enc2gettext_tbl[]; +extern PGDLLIMPORT const pg_enc2gettext pg_enc2gettext_tbl[]; /* * pg_wchar stuff @@ -406,7 +406,7 @@ typedef struct int maxmblen; /* max bytes for a char in this encoding */ } pg_wchar_tbl; -extern const pg_wchar_tbl pg_wchar_table[]; +extern PGDLLIMPORT const pg_wchar_tbl pg_wchar_table[]; /* * Data structures for conversions between UTF-8 and other encodings diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h index bcf2016421..e9ad52c347 100644 --- a/src/include/miscadmin.h +++ b/src/include/miscadmin.h @@ -182,15 +182,15 @@ extern PGDLLIMPORT pg_time_t MyStartTime; extern PGDLLIMPORT TimestampTz MyStartTimestamp; extern PGDLLIMPORT struct Port *MyProcPort; extern PGDLLIMPORT struct Latch *MyLatch; -extern int32 MyCancelKey; -extern int MyPMChildSlot; +extern PGDLLIMPORT int32 MyCancelKey; +extern PGDLLIMPORT int MyPMChildSlot; -extern char OutputFileName[]; +extern PGDLLIMPORT char OutputFileName[]; extern PGDLLIMPORT char my_exec_path[]; -extern char pkglib_path[]; +extern PGDLLIMPORT char pkglib_path[]; #ifdef EXEC_BACKEND -extern char postgres_exec_path[]; +extern PGDLLIMPORT char postgres_exec_path[]; #endif /* @@ -255,25 +255,25 @@ extern PGDLLIMPORT int IntervalStyle; #define MAXTZLEN 10 /* max TZ name len, not counting tr. null */ -extern bool enableFsync; +extern PGDLLIMPORT bool enableFsync; extern PGDLLIMPORT bool allowSystemTableMods; extern PGDLLIMPORT int work_mem; extern PGDLLIMPORT double hash_mem_multiplier; extern PGDLLIMPORT int maintenance_work_mem; extern PGDLLIMPORT int max_parallel_maintenance_workers; -extern int VacuumCostPageHit; -extern int VacuumCostPageMiss; -extern int VacuumCostPageDirty; -extern int VacuumCostLimit; -extern double VacuumCostDelay; +extern PGDLLIMPORT int VacuumCostPageHit; +extern PGDLLIMPORT int VacuumCostPageMiss; +extern PGDLLIMPORT int VacuumCostPageDirty; +extern PGDLLIMPORT int VacuumCostLimit; +extern PGDLLIMPORT double VacuumCostDelay; -extern int64 VacuumPageHit; -extern int64 VacuumPageMiss; -extern int64 VacuumPageDirty; +extern PGDLLIMPORT int64 VacuumPageHit; +extern PGDLLIMPORT int64 VacuumPageMiss; +extern PGDLLIMPORT int64 VacuumPageDirty; -extern int VacuumCostBalance; -extern bool VacuumCostActive; +extern PGDLLIMPORT int VacuumCostBalance; +extern PGDLLIMPORT bool VacuumCostActive; /* in tcop/postgres.c */ @@ -299,7 +299,7 @@ extern void PreventCommandIfParallelMode(const char *cmdname); extern void PreventCommandDuringRecovery(const char *cmdname); /* in utils/misc/guc.c */ -extern int trace_recovery_messages; +extern PGDLLIMPORT int trace_recovery_messages; extern int trace_recovery(int trace_level); /***************************************************************************** @@ -312,7 +312,7 @@ extern int trace_recovery(int trace_level); #define SECURITY_RESTRICTED_OPERATION 0x0002 #define SECURITY_NOFORCE_RLS 0x0004 -extern char *DatabasePath; +extern PGDLLIMPORT char *DatabasePath; /* now in utils/init/miscinit.c */ extern void InitPostmasterChild(void); @@ -337,7 +337,7 @@ typedef enum BackendType B_LOGGER, } BackendType; -extern BackendType MyBackendType; +extern PGDLLIMPORT BackendType MyBackendType; extern const char *GetBackendTypeDesc(BackendType backendType); @@ -400,7 +400,7 @@ typedef enum ProcessingMode NormalProcessing /* normal processing */ } ProcessingMode; -extern ProcessingMode Mode; +extern PGDLLIMPORT ProcessingMode Mode; #define IsBootstrapProcessingMode() (Mode == BootstrapProcessing) #define IsInitProcessingMode() (Mode == InitProcessing) @@ -438,7 +438,7 @@ typedef enum NUM_AUXPROCTYPES /* Must be last! */ } AuxProcType; -extern AuxProcType MyAuxProcType; +extern PGDLLIMPORT AuxProcType MyAuxProcType; #define AmStartupProcess() (MyAuxProcType == StartupProcess) #define AmBackgroundWriterProcess() (MyAuxProcType == BgWriterProcess) @@ -456,19 +456,19 @@ extern AuxProcType MyAuxProcType; /* in utils/init/postinit.c */ extern void pg_split_opts(char **argv, int *argcp, const char *optstr); extern void InitializeMaxBackends(void); -extern int GetMaxBackends(void); +extern int GetMaxBackends(void); extern void SetMaxBackends(int max_backends); extern void InitPostgres(const char *in_dbname, Oid dboid, const char *username, Oid useroid, char *out_dbname, bool override_allow_connections); extern void BaseInit(void); /* in utils/init/miscinit.c */ -extern bool IgnoreSystemIndexes; +extern PGDLLIMPORT bool IgnoreSystemIndexes; extern PGDLLIMPORT bool process_shared_preload_libraries_in_progress; -extern bool process_shared_preload_libraries_done; -extern char *session_preload_libraries_string; -extern char *shared_preload_libraries_string; -extern char *local_preload_libraries_string; +extern PGDLLIMPORT bool process_shared_preload_libraries_done; +extern PGDLLIMPORT char *session_preload_libraries_string; +extern PGDLLIMPORT char *shared_preload_libraries_string; +extern PGDLLIMPORT char *local_preload_libraries_string; extern void CreateDataDirLockFile(bool amPostmaster); extern void CreateSocketLockFile(const char *socketfile, bool amPostmaster, diff --git a/src/include/nodes/readfuncs.h b/src/include/nodes/readfuncs.h index 41794354e2..66717fd6c3 100644 --- a/src/include/nodes/readfuncs.h +++ b/src/include/nodes/readfuncs.h @@ -20,7 +20,7 @@ * variable in read.c that needs to be accessible to readfuncs.c */ #ifdef WRITE_READ_PARSE_PLAN_TREES -extern bool restore_location_fields; +extern PGDLLIMPORT bool restore_location_fields; #endif /* diff --git a/src/include/optimizer/geqo.h b/src/include/optimizer/geqo.h index 4563f200cd..d399323332 100644 --- a/src/include/optimizer/geqo.h +++ b/src/include/optimizer/geqo.h @@ -49,23 +49,24 @@ * * If you change these, update backend/utils/misc/postgresql.conf.sample */ -extern int Geqo_effort; /* 1 .. 10, knob for adjustment of defaults */ +extern PGDLLIMPORT int Geqo_effort; /* 1 .. 10, knob for adjustment of + * defaults */ #define DEFAULT_GEQO_EFFORT 5 #define MIN_GEQO_EFFORT 1 #define MAX_GEQO_EFFORT 10 -extern int Geqo_pool_size; /* 2 .. inf, or 0 to use default */ +extern PGDLLIMPORT int Geqo_pool_size; /* 2 .. inf, or 0 to use default */ -extern int Geqo_generations; /* 1 .. inf, or 0 to use default */ +extern PGDLLIMPORT int Geqo_generations; /* 1 .. inf, or 0 to use default */ -extern double Geqo_selection_bias; +extern PGDLLIMPORT double Geqo_selection_bias; #define DEFAULT_GEQO_SELECTION_BIAS 2.0 #define MIN_GEQO_SELECTION_BIAS 1.5 #define MAX_GEQO_SELECTION_BIAS 2.0 -extern double Geqo_seed; /* 0 .. 1 */ +extern PGDLLIMPORT double Geqo_seed; /* 0 .. 1 */ /* diff --git a/src/include/optimizer/optimizer.h b/src/include/optimizer/optimizer.h index 2302ab6d54..d40ce2eae1 100644 --- a/src/include/optimizer/optimizer.h +++ b/src/include/optimizer/optimizer.h @@ -112,8 +112,8 @@ typedef enum } ForceParallelMode; /* GUC parameters */ -extern int force_parallel_mode; -extern bool parallel_leader_participation; +extern PGDLLIMPORT int force_parallel_mode; +extern PGDLLIMPORT bool parallel_leader_participation; extern struct PlannedStmt *planner(Query *parse, const char *query_string, int cursorOptions, diff --git a/src/include/optimizer/planmain.h b/src/include/optimizer/planmain.h index 6947bc65d1..c4f61c1a09 100644 --- a/src/include/optimizer/planmain.h +++ b/src/include/optimizer/planmain.h @@ -19,7 +19,7 @@ /* GUC parameters */ #define DEFAULT_CURSOR_TUPLE_FRACTION 0.1 -extern double cursor_tuple_fraction; +extern PGDLLIMPORT double cursor_tuple_fraction; /* query_planner callback to compute query_pathkeys */ typedef void (*query_pathkeys_callback) (PlannerInfo *root, void *extra); @@ -64,8 +64,8 @@ extern Limit *make_limit(Plan *lefttree, Node *limitOffset, Node *limitCount, /* * prototypes for plan/initsplan.c */ -extern int from_collapse_limit; -extern int join_collapse_limit; +extern PGDLLIMPORT int from_collapse_limit; +extern PGDLLIMPORT int join_collapse_limit; extern void add_base_rels_to_query(PlannerInfo *root, Node *jtnode); extern void add_other_rels_to_query(PlannerInfo *root); diff --git a/src/include/parser/parse_expr.h b/src/include/parser/parse_expr.h index 308e84edda..c8e5c57b43 100644 --- a/src/include/parser/parse_expr.h +++ b/src/include/parser/parse_expr.h @@ -16,7 +16,7 @@ #include "parser/parse_node.h" /* GUC parameters */ -extern bool Transform_null_equals; +extern PGDLLIMPORT bool Transform_null_equals; extern Node *transformExpr(ParseState *pstate, Node *expr, ParseExprKind exprKind); diff --git a/src/include/parser/parser.h b/src/include/parser/parser.h index 6aac0e096a..828150f01b 100644 --- a/src/include/parser/parser.h +++ b/src/include/parser/parser.h @@ -53,8 +53,8 @@ typedef enum } BackslashQuoteType; /* GUC variables in scan.l (every one of these is a bad idea :-() */ -extern int backslash_quote; -extern bool escape_string_warning; +extern PGDLLIMPORT int backslash_quote; +extern PGDLLIMPORT bool escape_string_warning; extern PGDLLIMPORT bool standard_conforming_strings; diff --git a/src/include/pg_getopt.h b/src/include/pg_getopt.h index ec9f6e6ee3..9d91e602e6 100644 --- a/src/include/pg_getopt.h +++ b/src/include/pg_getopt.h @@ -33,10 +33,10 @@ */ #ifndef HAVE_GETOPT_H -extern char *optarg; -extern int optind; -extern int opterr; -extern int optopt; +extern PGDLLIMPORT char *optarg; +extern PGDLLIMPORT int optind; +extern PGDLLIMPORT int opterr; +extern PGDLLIMPORT int optopt; #endif /* HAVE_GETOPT_H */ @@ -45,7 +45,7 @@ extern int optopt; * Cygwin, however, doesn't like this either. */ #if defined(HAVE_INT_OPTRESET) && !defined(__CYGWIN__) -extern int optreset; +extern PGDLLIMPORT int optreset; #endif /* Provide getopt() declaration if the platform doesn't have it */ diff --git a/src/include/pgstat.h b/src/include/pgstat.h index 88c87a0cc5..ac28f813b4 100644 --- a/src/include/pgstat.h +++ b/src/include/pgstat.h @@ -651,7 +651,7 @@ extern PGDLLIMPORT int pgstat_fetch_consistency; */ /* updated directly by bgwriter and bufmgr */ -extern PgStat_BgWriterStats PendingBgWriterStats; +extern PGDLLIMPORT PgStat_BgWriterStats PendingBgWriterStats; /* @@ -662,7 +662,7 @@ extern PgStat_BgWriterStats PendingBgWriterStats; * Checkpointer statistics counters are updated directly by checkpointer and * bufmgr. */ -extern PgStat_CheckpointerStats PendingCheckpointerStats; +extern PGDLLIMPORT PgStat_CheckpointerStats PendingCheckpointerStats; /* @@ -670,18 +670,18 @@ extern PgStat_CheckpointerStats PendingCheckpointerStats; */ /* Updated by pgstat_count_buffer_*_time macros */ -extern PgStat_Counter pgStatBlockReadTime; -extern PgStat_Counter pgStatBlockWriteTime; +extern PGDLLIMPORT PgStat_Counter pgStatBlockReadTime; +extern PGDLLIMPORT PgStat_Counter pgStatBlockWriteTime; /* * Updated by pgstat_count_conn_*_time macros, called by * pgstat_report_activity(). */ -extern PgStat_Counter pgStatActiveTime; -extern PgStat_Counter pgStatTransactionIdleTime; +extern PGDLLIMPORT PgStat_Counter pgStatActiveTime; +extern PGDLLIMPORT PgStat_Counter pgStatTransactionIdleTime; /* updated by the traffic cop and in errfinish() */ -extern SessionEndType pgStatSessionEndCause; +extern PGDLLIMPORT SessionEndType pgStatSessionEndCause; /* @@ -689,7 +689,7 @@ extern SessionEndType pgStatSessionEndCause; */ /* updated directly by backends and background processes */ -extern PgStat_WalStats PendingWalStats; +extern PGDLLIMPORT PgStat_WalStats PendingWalStats; #endif /* PGSTAT_H */ diff --git a/src/include/pgtime.h b/src/include/pgtime.h index 441d7847c1..1c44be8baa 100644 --- a/src/include/pgtime.h +++ b/src/include/pgtime.h @@ -81,7 +81,7 @@ extern size_t pg_strftime(char *s, size_t max, const char *format, /* these functions and variables are in pgtz.c */ extern PGDLLIMPORT pg_tz *session_timezone; -extern pg_tz *log_timezone; +extern PGDLLIMPORT pg_tz *log_timezone; extern void pg_timezone_initialize(void); extern pg_tz *pg_tzset(const char *tzname); diff --git a/src/include/port/win32_port.h b/src/include/port/win32_port.h index 4bb6fc5e1e..5045ced91b 100644 --- a/src/include/port/win32_port.h +++ b/src/include/port/win32_port.h @@ -449,8 +449,8 @@ extern char *pgwin32_setlocale(int category, const char *locale); /* In backend/port/win32/signal.c */ extern PGDLLIMPORT volatile int pg_signal_queue; extern PGDLLIMPORT int pg_signal_mask; -extern HANDLE pgwin32_signal_event; -extern HANDLE pgwin32_initial_signal_pipe; +extern PGDLLIMPORT HANDLE pgwin32_signal_event; +extern PGDLLIMPORT HANDLE pgwin32_initial_signal_pipe; #define UNBLOCKED_SIGNAL_QUEUE() (pg_signal_queue & ~pg_signal_mask) #define PG_SIGNAL_COUNT 32 @@ -485,7 +485,7 @@ 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 int pgwin32_noblock; +extern PGDLLIMPORT int pgwin32_noblock; #endif /* FRONTEND */ diff --git a/src/include/port/win32ntdll.h b/src/include/port/win32ntdll.h index 663b9754bd..291b067ea4 100644 --- a/src/include/port/win32ntdll.h +++ b/src/include/port/win32ntdll.h @@ -23,9 +23,9 @@ #include #include -typedef NTSTATUS (__stdcall *RtlGetLastNtStatus_t) (void); +typedef NTSTATUS (__stdcall * RtlGetLastNtStatus_t) (void); -extern RtlGetLastNtStatus_t pg_RtlGetLastNtStatus; +extern PGDLLIMPORT RtlGetLastNtStatus_t pg_RtlGetLastNtStatus; extern int initialize_ntdll(void); diff --git a/src/include/postmaster/autovacuum.h b/src/include/postmaster/autovacuum.h index 30a2b3274f..9d40fd6d54 100644 --- a/src/include/postmaster/autovacuum.h +++ b/src/include/postmaster/autovacuum.h @@ -27,25 +27,25 @@ typedef enum /* GUC variables */ -extern bool autovacuum_start_daemon; -extern int autovacuum_max_workers; -extern int autovacuum_work_mem; -extern int autovacuum_naptime; -extern int autovacuum_vac_thresh; -extern double autovacuum_vac_scale; -extern int autovacuum_vac_ins_thresh; -extern double autovacuum_vac_ins_scale; -extern int autovacuum_anl_thresh; -extern double autovacuum_anl_scale; -extern int autovacuum_freeze_max_age; -extern int autovacuum_multixact_freeze_max_age; -extern double autovacuum_vac_cost_delay; -extern int autovacuum_vac_cost_limit; +extern PGDLLIMPORT bool autovacuum_start_daemon; +extern PGDLLIMPORT int autovacuum_max_workers; +extern PGDLLIMPORT int autovacuum_work_mem; +extern PGDLLIMPORT int autovacuum_naptime; +extern PGDLLIMPORT int autovacuum_vac_thresh; +extern PGDLLIMPORT double autovacuum_vac_scale; +extern PGDLLIMPORT int autovacuum_vac_ins_thresh; +extern PGDLLIMPORT double autovacuum_vac_ins_scale; +extern PGDLLIMPORT int autovacuum_anl_thresh; +extern PGDLLIMPORT double autovacuum_anl_scale; +extern PGDLLIMPORT int autovacuum_freeze_max_age; +extern PGDLLIMPORT int autovacuum_multixact_freeze_max_age; +extern PGDLLIMPORT double autovacuum_vac_cost_delay; +extern PGDLLIMPORT int autovacuum_vac_cost_limit; /* autovacuum launcher PID, only valid when worker is shutting down */ -extern int AutovacuumLauncherPid; +extern PGDLLIMPORT int AutovacuumLauncherPid; -extern int Log_autovacuum_min_duration; +extern PGDLLIMPORT int Log_autovacuum_min_duration; /* Status inquiry functions */ extern bool AutoVacuumingActive(void); diff --git a/src/include/postmaster/bgworker_internals.h b/src/include/postmaster/bgworker_internals.h index 75900686fc..387683546d 100644 --- a/src/include/postmaster/bgworker_internals.h +++ b/src/include/postmaster/bgworker_internals.h @@ -42,7 +42,7 @@ typedef struct RegisteredBgWorker slist_node rw_lnode; /* list link */ } RegisteredBgWorker; -extern slist_head BackgroundWorkerList; +extern PGDLLIMPORT slist_head BackgroundWorkerList; extern Size BackgroundWorkerShmemSize(void); extern void BackgroundWorkerShmemInit(void); diff --git a/src/include/postmaster/bgwriter.h b/src/include/postmaster/bgwriter.h index 2882efd67b..2511ef451e 100644 --- a/src/include/postmaster/bgwriter.h +++ b/src/include/postmaster/bgwriter.h @@ -22,10 +22,10 @@ /* GUC options */ -extern int BgWriterDelay; -extern int CheckPointTimeout; -extern int CheckPointWarning; -extern double CheckPointCompletionTarget; +extern PGDLLIMPORT int BgWriterDelay; +extern PGDLLIMPORT int CheckPointTimeout; +extern PGDLLIMPORT int CheckPointWarning; +extern PGDLLIMPORT double CheckPointCompletionTarget; extern void BackgroundWriterMain(void) pg_attribute_noreturn(); extern void CheckpointerMain(void) pg_attribute_noreturn(); diff --git a/src/include/postmaster/pgarch.h b/src/include/postmaster/pgarch.h index 9bc7593a2d..38cb1c6477 100644 --- a/src/include/postmaster/pgarch.h +++ b/src/include/postmaster/pgarch.h @@ -36,7 +36,7 @@ extern void PgArchForceDirScan(void); /* * The value of the archive_library GUC. */ -extern char *XLogArchiveLibrary; +extern PGDLLIMPORT char *XLogArchiveLibrary; /* * Archive module callbacks @@ -55,19 +55,19 @@ typedef struct ArchiveModuleCallbacks ArchiveCheckConfiguredCB check_configured_cb; ArchiveFileCB archive_file_cb; ArchiveShutdownCB shutdown_cb; -} ArchiveModuleCallbacks; +} ArchiveModuleCallbacks; /* * Type of the shared library symbol _PG_archive_module_init that is looked * up when loading an archive library. */ -typedef void (*ArchiveModuleInit) (ArchiveModuleCallbacks *cb); +typedef void (*ArchiveModuleInit) (ArchiveModuleCallbacks * cb); /* * Since the logic for archiving via a shell command is in the core server * and does not need to be loaded via a shared library, it has a special * initialization function. */ -extern void shell_archive_init(ArchiveModuleCallbacks *cb); +extern void shell_archive_init(ArchiveModuleCallbacks * cb); #endif /* _PGARCH_H */ diff --git a/src/include/postmaster/postmaster.h b/src/include/postmaster/postmaster.h index 324a30ec1a..90e333ccd2 100644 --- a/src/include/postmaster/postmaster.h +++ b/src/include/postmaster/postmaster.h @@ -14,27 +14,27 @@ #define _POSTMASTER_H /* GUC options */ -extern bool EnableSSL; -extern int ReservedBackends; +extern PGDLLIMPORT bool EnableSSL; +extern PGDLLIMPORT int ReservedBackends; extern PGDLLIMPORT int PostPortNumber; -extern int Unix_socket_permissions; -extern char *Unix_socket_group; -extern char *Unix_socket_directories; -extern char *ListenAddresses; -extern bool ClientAuthInProgress; -extern int PreAuthDelay; -extern int AuthenticationTimeout; -extern bool Log_connections; -extern bool log_hostname; -extern bool enable_bonjour; -extern char *bonjour_name; -extern bool restart_after_crash; -extern bool remove_temp_files_after_crash; +extern PGDLLIMPORT int Unix_socket_permissions; +extern PGDLLIMPORT char *Unix_socket_group; +extern PGDLLIMPORT char *Unix_socket_directories; +extern PGDLLIMPORT char *ListenAddresses; +extern PGDLLIMPORT bool ClientAuthInProgress; +extern PGDLLIMPORT int PreAuthDelay; +extern PGDLLIMPORT int AuthenticationTimeout; +extern PGDLLIMPORT bool Log_connections; +extern PGDLLIMPORT bool log_hostname; +extern PGDLLIMPORT bool enable_bonjour; +extern PGDLLIMPORT char *bonjour_name; +extern PGDLLIMPORT bool restart_after_crash; +extern PGDLLIMPORT bool remove_temp_files_after_crash; #ifdef WIN32 -extern HANDLE PostmasterHandle; +extern PGDLLIMPORT HANDLE PostmasterHandle; #else -extern int postmaster_alive_fds[2]; +extern PGDLLIMPORT int postmaster_alive_fds[2]; /* * Constants that represent which of postmaster_alive_fds is held by diff --git a/src/include/postmaster/startup.h b/src/include/postmaster/startup.h index 7e39db7159..d66ec1fcb1 100644 --- a/src/include/postmaster/startup.h +++ b/src/include/postmaster/startup.h @@ -23,7 +23,7 @@ ereport(LOG, errmsg(msg, secs, (usecs / 10000), __VA_ARGS__ )); \ } while(0) -extern int log_startup_progress_interval; +extern PGDLLIMPORT int log_startup_progress_interval; extern void HandleStartupProcInterrupts(void); extern void StartupProcessMain(void) pg_attribute_noreturn(); diff --git a/src/include/postmaster/syslogger.h b/src/include/postmaster/syslogger.h index 1ca326e52e..6436724f3d 100644 --- a/src/include/postmaster/syslogger.h +++ b/src/include/postmaster/syslogger.h @@ -67,18 +67,18 @@ typedef union #define PIPE_PROTO_DEST_JSONLOG 0x40 /* GUC options */ -extern bool Logging_collector; -extern int Log_RotationAge; -extern int Log_RotationSize; +extern PGDLLIMPORT bool Logging_collector; +extern PGDLLIMPORT int Log_RotationAge; +extern PGDLLIMPORT int Log_RotationSize; extern PGDLLIMPORT char *Log_directory; extern PGDLLIMPORT char *Log_filename; -extern bool Log_truncate_on_rotation; -extern int Log_file_mode; +extern PGDLLIMPORT bool Log_truncate_on_rotation; +extern PGDLLIMPORT int Log_file_mode; #ifndef WIN32 -extern int syslogPipe[2]; +extern PGDLLIMPORT int syslogPipe[2]; #else -extern HANDLE syslogPipe[2]; +extern PGDLLIMPORT HANDLE syslogPipe[2]; #endif diff --git a/src/include/postmaster/walwriter.h b/src/include/postmaster/walwriter.h index 5a3011d9c9..ddc943657e 100644 --- a/src/include/postmaster/walwriter.h +++ b/src/include/postmaster/walwriter.h @@ -13,8 +13,8 @@ #define _WALWRITER_H /* GUC options */ -extern int WalWriterDelay; -extern int WalWriterFlushAfter; +extern PGDLLIMPORT int WalWriterDelay; +extern PGDLLIMPORT int WalWriterFlushAfter; extern void WalWriterMain(void) pg_attribute_noreturn(); diff --git a/src/include/replication/logicallauncher.h b/src/include/replication/logicallauncher.h index 15596fe446..f1e2821e25 100644 --- a/src/include/replication/logicallauncher.h +++ b/src/include/replication/logicallauncher.h @@ -12,8 +12,8 @@ #ifndef LOGICALLAUNCHER_H #define LOGICALLAUNCHER_H -extern int max_logical_replication_workers; -extern int max_sync_workers_per_subscription; +extern PGDLLIMPORT int max_logical_replication_workers; +extern PGDLLIMPORT int max_sync_workers_per_subscription; extern void ApplyLauncherRegister(void); extern void ApplyLauncherMain(Datum main_arg); diff --git a/src/include/replication/syncrep.h b/src/include/replication/syncrep.h index 27be230d77..4d7c90b9f0 100644 --- a/src/include/replication/syncrep.h +++ b/src/include/replication/syncrep.h @@ -72,14 +72,14 @@ typedef struct SyncRepConfigData char member_names[FLEXIBLE_ARRAY_MEMBER]; } SyncRepConfigData; -extern SyncRepConfigData *SyncRepConfig; +extern PGDLLIMPORT SyncRepConfigData *SyncRepConfig; /* communication variables for parsing synchronous_standby_names GUC */ -extern SyncRepConfigData *syncrep_parse_result; -extern char *syncrep_parse_error_msg; +extern PGDLLIMPORT SyncRepConfigData *syncrep_parse_result; +extern PGDLLIMPORT char *syncrep_parse_error_msg; /* user-settable parameters for synchronous replication */ -extern char *SyncRepStandbyNames; +extern PGDLLIMPORT char *SyncRepStandbyNames; /* called by user backend */ extern void SyncRepWaitForLSN(XLogRecPtr lsn, bool commit); diff --git a/src/include/replication/walreceiver.h b/src/include/replication/walreceiver.h index 92f73a55b8..81184aa92f 100644 --- a/src/include/replication/walreceiver.h +++ b/src/include/replication/walreceiver.h @@ -25,9 +25,9 @@ #include "utils/tuplestore.h" /* user-settable parameters */ -extern int wal_receiver_status_interval; -extern int wal_receiver_timeout; -extern bool hot_standby_feedback; +extern PGDLLIMPORT int wal_receiver_status_interval; +extern PGDLLIMPORT int wal_receiver_timeout; +extern PGDLLIMPORT bool hot_standby_feedback; /* * MAXCONNINFO: maximum size of a connection string. @@ -160,7 +160,7 @@ typedef struct sig_atomic_t force_reply; /* used as a bool */ } WalRcvData; -extern WalRcvData *WalRcv; +extern PGDLLIMPORT WalRcvData *WalRcv; typedef struct { diff --git a/src/include/replication/walsender.h b/src/include/replication/walsender.h index b1892e9e4b..d99a21b077 100644 --- a/src/include/replication/walsender.h +++ b/src/include/replication/walsender.h @@ -25,15 +25,15 @@ typedef enum } CRSSnapshotAction; /* global state */ -extern bool am_walsender; -extern bool am_cascading_walsender; -extern bool am_db_walsender; -extern bool wake_wal_senders; +extern PGDLLIMPORT bool am_walsender; +extern PGDLLIMPORT bool am_cascading_walsender; +extern PGDLLIMPORT bool am_db_walsender; +extern PGDLLIMPORT bool wake_wal_senders; /* user-settable parameters */ -extern int max_wal_senders; -extern int wal_sender_timeout; -extern bool log_replication_commands; +extern PGDLLIMPORT int max_wal_senders; +extern PGDLLIMPORT int wal_sender_timeout; +extern PGDLLIMPORT bool log_replication_commands; extern void InitWalSender(void); extern bool exec_replication_command(const char *query_string); diff --git a/src/include/replication/walsender_private.h b/src/include/replication/walsender_private.h index 9631047c6c..c14888e493 100644 --- a/src/include/replication/walsender_private.h +++ b/src/include/replication/walsender_private.h @@ -80,7 +80,7 @@ typedef struct WalSnd TimestampTz replyTime; } WalSnd; -extern WalSnd *MyWalSnd; +extern PGDLLIMPORT WalSnd *MyWalSnd; /* There is one WalSndCtl struct for the whole database cluster */ typedef struct @@ -107,7 +107,7 @@ typedef struct WalSnd walsnds[FLEXIBLE_ARRAY_MEMBER]; } WalSndCtlData; -extern WalSndCtlData *WalSndCtl; +extern PGDLLIMPORT WalSndCtlData *WalSndCtl; extern void WalSndSetState(WalSndState state); @@ -123,6 +123,6 @@ extern void replication_scanner_init(const char *query_string); extern void replication_scanner_finish(void); extern bool replication_scanner_is_replication_command(void); -extern Node *replication_parse_result; +extern PGDLLIMPORT Node *replication_parse_result; #endif /* _WALSENDER_PRIVATE_H */ diff --git a/src/include/replication/worker_internal.h b/src/include/replication/worker_internal.h index 3c3f5f6a3a..4485d4ebee 100644 --- a/src/include/replication/worker_internal.h +++ b/src/include/replication/worker_internal.h @@ -69,16 +69,16 @@ typedef struct LogicalRepWorker } LogicalRepWorker; /* Main memory context for apply worker. Permanent during worker lifetime. */ -extern MemoryContext ApplyContext; +extern PGDLLIMPORT MemoryContext ApplyContext; /* libpqreceiver connection */ -extern struct WalReceiverConn *LogRepWorkerWalRcvConn; +extern PGDLLIMPORT struct WalReceiverConn *LogRepWorkerWalRcvConn; /* Worker and subscription objects. */ -extern Subscription *MySubscription; -extern LogicalRepWorker *MyLogicalRepWorker; +extern PGDLLIMPORT Subscription *MySubscription; +extern PGDLLIMPORT LogicalRepWorker *MyLogicalRepWorker; -extern bool in_remote_transaction; +extern PGDLLIMPORT bool in_remote_transaction; extern void logicalrep_worker_attach(int slot); extern LogicalRepWorker *logicalrep_worker_find(Oid subid, Oid relid, diff --git a/src/include/storage/buf_internals.h b/src/include/storage/buf_internals.h index b903d2bcaf..a17e7b28a5 100644 --- a/src/include/storage/buf_internals.h +++ b/src/include/storage/buf_internals.h @@ -279,7 +279,7 @@ extern PGDLLIMPORT BufferDescPadded *BufferDescriptors; extern PGDLLIMPORT WritebackContext BackendWritebackContext; /* in localbuf.c */ -extern BufferDesc *LocalBufferDescriptors; +extern PGDLLIMPORT BufferDesc *LocalBufferDescriptors; /* in bufmgr.c */ @@ -298,7 +298,7 @@ typedef struct CkptSortItem int buf_id; } CkptSortItem; -extern CkptSortItem *CkptBufferIds; +extern PGDLLIMPORT CkptSortItem *CkptBufferIds; /* * Internal buffer management routines diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h index a6b657f0ba..58391406f6 100644 --- a/src/include/storage/bufmgr.h +++ b/src/include/storage/bufmgr.h @@ -65,16 +65,16 @@ struct SMgrRelationData; extern PGDLLIMPORT int NBuffers; /* in bufmgr.c */ -extern bool zero_damaged_pages; -extern int bgwriter_lru_maxpages; -extern double bgwriter_lru_multiplier; -extern bool track_io_timing; -extern int effective_io_concurrency; -extern int maintenance_io_concurrency; +extern PGDLLIMPORT bool zero_damaged_pages; +extern PGDLLIMPORT int bgwriter_lru_maxpages; +extern PGDLLIMPORT double bgwriter_lru_multiplier; +extern PGDLLIMPORT bool track_io_timing; +extern PGDLLIMPORT int effective_io_concurrency; +extern PGDLLIMPORT int maintenance_io_concurrency; -extern int checkpoint_flush_after; -extern int backend_flush_after; -extern int bgwriter_flush_after; +extern PGDLLIMPORT int checkpoint_flush_after; +extern PGDLLIMPORT int backend_flush_after; +extern PGDLLIMPORT int bgwriter_flush_after; /* in buf_init.c */ extern PGDLLIMPORT char *BufferBlocks; diff --git a/src/include/storage/dsm_impl.h b/src/include/storage/dsm_impl.h index f60b76f075..c51584dc6a 100644 --- a/src/include/storage/dsm_impl.h +++ b/src/include/storage/dsm_impl.h @@ -39,8 +39,8 @@ #endif /* GUC. */ -extern int dynamic_shared_memory_type; -extern int min_dynamic_shared_memory; +extern PGDLLIMPORT int dynamic_shared_memory_type; +extern PGDLLIMPORT int min_dynamic_shared_memory; /* * Directory for on-disk state. diff --git a/src/include/storage/fd.h b/src/include/storage/fd.h index 29209e2724..69549b000f 100644 --- a/src/include/storage/fd.h +++ b/src/include/storage/fd.h @@ -59,12 +59,12 @@ typedef int File; /* GUC parameter */ extern PGDLLIMPORT int max_files_per_process; extern PGDLLIMPORT bool data_sync_retry; -extern int recovery_init_sync_method; +extern PGDLLIMPORT int recovery_init_sync_method; /* * This is private to fd.c, but exported for save/restore_backend_variables() */ -extern int max_safe_fds; +extern PGDLLIMPORT int max_safe_fds; /* * On Windows, we have to interpret EACCES as possibly meaning the same as diff --git a/src/include/storage/large_object.h b/src/include/storage/large_object.h index 274b97fd42..b826a7dcd5 100644 --- a/src/include/storage/large_object.h +++ b/src/include/storage/large_object.h @@ -79,7 +79,7 @@ typedef struct LargeObjectDesc /* * GUC: backwards-compatibility flag to suppress LO permission checks */ -extern bool lo_compat_privileges; +extern PGDLLIMPORT bool lo_compat_privileges; /* * Function definitions... diff --git a/src/include/storage/lock.h b/src/include/storage/lock.h index dc537e20f2..e4e1495b24 100644 --- a/src/include/storage/lock.h +++ b/src/include/storage/lock.h @@ -34,14 +34,14 @@ typedef struct PROC_QUEUE } PROC_QUEUE; /* GUC variables */ -extern int max_locks_per_xact; +extern PGDLLIMPORT int max_locks_per_xact; #ifdef LOCK_DEBUG -extern int Trace_lock_oidmin; -extern bool Trace_locks; -extern bool Trace_userlocks; -extern int Trace_lock_table; -extern bool Debug_deadlocks; +extern PGDLLIMPORT int Trace_lock_oidmin; +extern PGDLLIMPORT bool Trace_locks; +extern PGDLLIMPORT bool Trace_userlocks; +extern PGDLLIMPORT int Trace_lock_table; +extern PGDLLIMPORT bool Debug_deadlocks; #endif /* LOCK_DEBUG */ @@ -154,7 +154,7 @@ typedef enum LockTagType #define LOCKTAG_LAST_TYPE LOCKTAG_ADVISORY -extern const char *const LockTagTypeNames[]; +extern PGDLLIMPORT const char *const LockTagTypeNames[]; /* * The LOCKTAG struct is defined with malice aforethought to fit into 16 diff --git a/src/include/storage/lwlock.h b/src/include/storage/lwlock.h index 33eb4c1033..e8c91139f8 100644 --- a/src/include/storage/lwlock.h +++ b/src/include/storage/lwlock.h @@ -110,7 +110,7 @@ typedef enum LWLockMode #ifdef LOCK_DEBUG -extern bool Trace_lwlocks; +extern PGDLLIMPORT bool Trace_lwlocks; #endif extern bool LWLockAcquire(LWLock *lock, LWLockMode mode); @@ -121,7 +121,7 @@ extern void LWLockReleaseClearVar(LWLock *lock, uint64 *valptr, uint64 val); extern void LWLockReleaseAll(void); extern bool LWLockHeldByMe(LWLock *lock); extern bool LWLockHeldByMeInMode(LWLock *lock, LWLockMode mode); -extern int LWLockHeldCount(void); +extern int LWLockHeldCount(void); extern bool LWLockWaitForVar(LWLock *lock, uint64 *valptr, uint64 oldval, uint64 *newval); extern void LWLockUpdateVar(LWLock *lock, uint64 *valptr, uint64 value); diff --git a/src/include/storage/pg_shmem.h b/src/include/storage/pg_shmem.h index 50e5c5f99b..da5962edb9 100644 --- a/src/include/storage/pg_shmem.h +++ b/src/include/storage/pg_shmem.h @@ -42,9 +42,9 @@ typedef struct PGShmemHeader /* standard header for all Postgres shmem */ } PGShmemHeader; /* GUC variables */ -extern int shared_memory_type; -extern int huge_pages; -extern int huge_page_size; +extern PGDLLIMPORT int shared_memory_type; +extern PGDLLIMPORT int huge_pages; +extern PGDLLIMPORT int huge_page_size; /* Possible values for huge_pages */ typedef enum @@ -63,12 +63,12 @@ typedef enum } PGShmemType; #ifndef WIN32 -extern unsigned long UsedShmemSegID; +extern PGDLLIMPORT unsigned long UsedShmemSegID; #else -extern HANDLE UsedShmemSegID; -extern void *ShmemProtectiveRegion; +extern PGDLLIMPORT HANDLE UsedShmemSegID; +extern PGDLLIMPORT void *ShmemProtectiveRegion; #endif -extern void *UsedShmemSegAddr; +extern PGDLLIMPORT void *UsedShmemSegAddr; #if !defined(WIN32) && !defined(EXEC_BACKEND) #define DEFAULT_SHARED_MEMORY_TYPE SHMEM_TYPE_MMAP diff --git a/src/include/storage/pmsignal.h b/src/include/storage/pmsignal.h index ea42c2072d..58f4ddf476 100644 --- a/src/include/storage/pmsignal.h +++ b/src/include/storage/pmsignal.h @@ -89,7 +89,7 @@ extern void PostmasterDeathSignalInit(void); #endif #ifdef USE_POSTMASTER_DEATH_SIGNAL -extern volatile sig_atomic_t postmaster_possibly_dead; +extern PGDLLIMPORT volatile sig_atomic_t postmaster_possibly_dead; static inline bool PostmasterIsAlive(void) diff --git a/src/include/storage/predicate.h b/src/include/storage/predicate.h index ba12904f22..8dfcb3944b 100644 --- a/src/include/storage/predicate.h +++ b/src/include/storage/predicate.h @@ -22,9 +22,9 @@ /* * GUC variables */ -extern int max_predicate_locks_per_xact; -extern int max_predicate_locks_per_relation; -extern int max_predicate_locks_per_page; +extern PGDLLIMPORT int max_predicate_locks_per_xact; +extern PGDLLIMPORT int max_predicate_locks_per_relation; +extern PGDLLIMPORT int max_predicate_locks_per_page; /* Number of SLRU buffers to use for Serial SLRU */ diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h index 36ecf7d005..c02001d3a0 100644 --- a/src/include/storage/proc.h +++ b/src/include/storage/proc.h @@ -400,7 +400,7 @@ typedef struct PROC_HDR extern PGDLLIMPORT PROC_HDR *ProcGlobal; -extern PGPROC *PreparedXactProcs; +extern PGDLLIMPORT PGPROC *PreparedXactProcs; /* Accessor for PGPROC given a pgprocno. */ #define GetPGProcByNumber(n) (&ProcGlobal->allProcs[(n)]) @@ -421,7 +421,7 @@ extern PGDLLIMPORT int StatementTimeout; extern PGDLLIMPORT int LockTimeout; extern PGDLLIMPORT int IdleInTransactionSessionTimeout; extern PGDLLIMPORT int IdleSessionTimeout; -extern bool log_lock_waits; +extern PGDLLIMPORT bool log_lock_waits; /* diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h index af1145d98f..39faa4d837 100644 --- a/src/include/storage/s_lock.h +++ b/src/include/storage/s_lock.h @@ -1042,7 +1042,7 @@ extern int tas(volatile slock_t *lock); /* in port/.../tas.s, or #define TAS_SPIN(lock) TAS(lock) #endif /* TAS_SPIN */ -extern slock_t dummy_spinlock; +extern PGDLLIMPORT slock_t dummy_spinlock; /* * Platform-independent out-of-line support routines diff --git a/src/include/storage/sinval.h b/src/include/storage/sinval.h index 593a4211af..e7cd45658c 100644 --- a/src/include/storage/sinval.h +++ b/src/include/storage/sinval.h @@ -123,9 +123,9 @@ typedef union /* Counter of messages processed; don't worry about overflow. */ -extern uint64 SharedInvalidMessageCounter; +extern PGDLLIMPORT uint64 SharedInvalidMessageCounter; -extern volatile sig_atomic_t catchupInterruptPending; +extern PGDLLIMPORT volatile sig_atomic_t catchupInterruptPending; extern void SendSharedInvalidMessages(const SharedInvalidationMessage *msgs, int n); diff --git a/src/include/storage/spin.h b/src/include/storage/spin.h index 70070ca9ab..7031f1d2c5 100644 --- a/src/include/storage/spin.h +++ b/src/include/storage/spin.h @@ -71,7 +71,7 @@ extern Size SpinlockSemaSize(void); #ifndef HAVE_SPINLOCKS extern void SpinlockSemaInit(void); -extern PGSemaphore *SpinlockSemaArray; +extern PGDLLIMPORT PGSemaphore *SpinlockSemaArray; #endif #endif /* SPIN_H */ diff --git a/src/include/storage/standby.h b/src/include/storage/standby.h index 58ea21aa13..6a7763264b 100644 --- a/src/include/storage/standby.h +++ b/src/include/storage/standby.h @@ -21,10 +21,10 @@ #include "storage/standbydefs.h" /* User-settable GUC parameters */ -extern int vacuum_defer_cleanup_age; -extern int max_standby_archive_delay; -extern int max_standby_streaming_delay; -extern bool log_recovery_conflict_waits; +extern PGDLLIMPORT int vacuum_defer_cleanup_age; +extern PGDLLIMPORT int max_standby_archive_delay; +extern PGDLLIMPORT int max_standby_streaming_delay; +extern PGDLLIMPORT bool log_recovery_conflict_waits; extern void InitRecoveryTransactionEnvironment(void); extern void ShutdownRecoveryTransactionEnvironment(void); diff --git a/src/include/tcop/tcopprot.h b/src/include/tcop/tcopprot.h index 92291a750d..87e408b719 100644 --- a/src/include/tcop/tcopprot.h +++ b/src/include/tcop/tcopprot.h @@ -25,11 +25,11 @@ /* Required daylight between max_stack_depth and the kernel limit, in bytes */ #define STACK_DEPTH_SLOP (512 * 1024L) -extern CommandDest whereToSendOutput; +extern PGDLLIMPORT CommandDest whereToSendOutput; extern PGDLLIMPORT const char *debug_query_string; -extern int max_stack_depth; -extern int PostAuthDelay; -extern int client_connection_check_interval; +extern PGDLLIMPORT int max_stack_depth; +extern PGDLLIMPORT int PostAuthDelay; +extern PGDLLIMPORT int client_connection_check_interval; /* GUC-configurable parameters */ diff --git a/src/include/tsearch/ts_cache.h b/src/include/tsearch/ts_cache.h index 5e70d74b41..5e4a49ea1c 100644 --- a/src/include/tsearch/ts_cache.h +++ b/src/include/tsearch/ts_cache.h @@ -84,7 +84,7 @@ typedef struct /* * GUC variable for current configuration */ -extern char *TSCurrentConfig; +extern PGDLLIMPORT char *TSCurrentConfig; extern TSParserCacheEntry *lookup_ts_parser_cache(Oid prsId); diff --git a/src/include/tsearch/ts_type.h b/src/include/tsearch/ts_type.h index 1a8bad8491..a2008f5504 100644 --- a/src/include/tsearch/ts_type.h +++ b/src/include/tsearch/ts_type.h @@ -169,7 +169,7 @@ typedef struct #define OP_PHRASE 4 /* highest code, tsquery_cleanup.c */ #define OP_COUNT 4 -extern const int tsearch_op_priority[OP_COUNT]; +extern PGDLLIMPORT const int tsearch_op_priority[OP_COUNT]; /* get operation priority by its code*/ #define OP_PRIORITY(x) ( tsearch_op_priority[(x) - 1] ) diff --git a/src/include/utils/array.h b/src/include/utils/array.h index 2dba156d35..656c766a9a 100644 --- a/src/include/utils/array.h +++ b/src/include/utils/array.h @@ -339,7 +339,7 @@ typedef struct ArrayIteratorData *ArrayIterator; /* * GUC parameter */ -extern bool Array_nulls; +extern PGDLLIMPORT bool Array_nulls; /* * prototypes for functions defined in arrayfuncs.c diff --git a/src/include/utils/builtins.h b/src/include/utils/builtins.h index 666e545496..221c3e6c3d 100644 --- a/src/include/utils/builtins.h +++ b/src/include/utils/builtins.h @@ -64,7 +64,7 @@ extern char *regexp_fixed_prefix(text *text_re, bool case_insensitive, Oid collation, bool *exact); /* ruleutils.c */ -extern bool quote_all_identifiers; +extern PGDLLIMPORT bool quote_all_identifiers; extern const char *quote_identifier(const char *ident); extern char *quote_qualified_identifier(const char *qualifier, const char *ident); diff --git a/src/include/utils/bytea.h b/src/include/utils/bytea.h index dfef8e2d52..c3c9e54707 100644 --- a/src/include/utils/bytea.h +++ b/src/include/utils/bytea.h @@ -22,6 +22,7 @@ typedef enum BYTEA_OUTPUT_HEX } ByteaOutputType; -extern int bytea_output; /* ByteaOutputType, but int for GUC enum */ +extern PGDLLIMPORT int bytea_output; /* ByteaOutputType, but int for GUC + * enum */ #endif /* BYTEA_H */ diff --git a/src/include/utils/datetime.h b/src/include/utils/datetime.h index 0801858d60..4527e82517 100644 --- a/src/include/utils/datetime.h +++ b/src/include/utils/datetime.h @@ -257,9 +257,10 @@ do { \ * Include check for leap year. */ -extern const char *const months[]; /* months (3-char abbreviations) */ -extern const char *const days[]; /* days (full names) */ -extern const int day_tab[2][13]; +extern PGDLLIMPORT const char *const months[]; /* months (3-char + * abbreviations) */ +extern PGDLLIMPORT const char *const days[]; /* days (full names) */ +extern PGDLLIMPORT const int day_tab[2][13]; /* * These are the rules for the Gregorian calendar, which was adopted in 1582. diff --git a/src/include/utils/elog.h b/src/include/utils/elog.h index 3eb8de3966..f5c6cd904d 100644 --- a/src/include/utils/elog.h +++ b/src/include/utils/elog.h @@ -424,12 +424,12 @@ typedef enum PGERROR_VERBOSE /* all the facts, ma'am */ } PGErrorVerbosity; -extern int Log_error_verbosity; -extern char *Log_line_prefix; -extern int Log_destination; -extern char *Log_destination_string; -extern bool syslog_sequence_numbers; -extern bool syslog_split_messages; +extern PGDLLIMPORT int Log_error_verbosity; +extern PGDLLIMPORT char *Log_line_prefix; +extern PGDLLIMPORT int Log_destination; +extern PGDLLIMPORT char *Log_destination_string; +extern PGDLLIMPORT bool syslog_sequence_numbers; +extern PGDLLIMPORT bool syslog_split_messages; /* Log destination bitmap */ #define LOG_DESTINATION_STDERR 1 diff --git a/src/include/utils/fmgrtab.h b/src/include/utils/fmgrtab.h index e5f53d6295..0a59937656 100644 --- a/src/include/utils/fmgrtab.h +++ b/src/include/utils/fmgrtab.h @@ -32,17 +32,18 @@ typedef struct PGFunction func; /* pointer to compiled function */ } FmgrBuiltin; -extern const FmgrBuiltin fmgr_builtins[]; +extern PGDLLIMPORT const FmgrBuiltin fmgr_builtins[]; -extern const int fmgr_nbuiltins; /* number of entries in table */ +extern PGDLLIMPORT const int fmgr_nbuiltins; /* number of entries in table */ -extern const Oid fmgr_last_builtin_oid; /* highest function OID in table */ +extern PGDLLIMPORT const Oid fmgr_last_builtin_oid; /* highest function OID in + * table */ /* * Mapping from a builtin function's OID to its index in the fmgr_builtins * array. This is indexed from 0 through fmgr_last_builtin_oid. */ #define InvalidOidBuiltinMapping PG_UINT16_MAX -extern const uint16 fmgr_builtin_oid_index[]; +extern PGDLLIMPORT const uint16 fmgr_builtin_oid_index[]; #endif /* FMGRTAB_H */ diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h index 1189e1a226..efcbad7842 100644 --- a/src/include/utils/guc.h +++ b/src/include/utils/guc.h @@ -239,53 +239,53 @@ typedef enum /* GUC vars that are actually declared in guc.c, rather than elsewhere */ -extern bool Debug_print_plan; -extern bool Debug_print_parse; -extern bool Debug_print_rewritten; -extern bool Debug_pretty_print; +extern PGDLLIMPORT bool Debug_print_plan; +extern PGDLLIMPORT bool Debug_print_parse; +extern PGDLLIMPORT bool Debug_print_rewritten; +extern PGDLLIMPORT bool Debug_pretty_print; -extern bool log_parser_stats; -extern bool log_planner_stats; -extern bool log_executor_stats; -extern bool log_statement_stats; -extern bool log_btree_build_stats; +extern PGDLLIMPORT bool log_parser_stats; +extern PGDLLIMPORT bool log_planner_stats; +extern PGDLLIMPORT bool log_executor_stats; +extern PGDLLIMPORT bool log_statement_stats; +extern PGDLLIMPORT bool log_btree_build_stats; extern PGDLLIMPORT bool check_function_bodies; -extern bool session_auth_is_superuser; +extern PGDLLIMPORT bool session_auth_is_superuser; -extern bool log_duration; -extern int log_parameter_max_length; -extern int log_parameter_max_length_on_error; -extern int log_min_error_statement; +extern PGDLLIMPORT bool log_duration; +extern PGDLLIMPORT int log_parameter_max_length; +extern PGDLLIMPORT int log_parameter_max_length_on_error; +extern PGDLLIMPORT int log_min_error_statement; extern PGDLLIMPORT int log_min_messages; extern PGDLLIMPORT int client_min_messages; -extern int log_min_duration_sample; -extern int log_min_duration_statement; -extern int log_temp_files; -extern double log_statement_sample_rate; -extern double log_xact_sample_rate; -extern char *backtrace_functions; -extern char *backtrace_symbol_list; +extern PGDLLIMPORT int log_min_duration_sample; +extern PGDLLIMPORT int log_min_duration_statement; +extern PGDLLIMPORT int log_temp_files; +extern PGDLLIMPORT double log_statement_sample_rate; +extern PGDLLIMPORT double log_xact_sample_rate; +extern PGDLLIMPORT char *backtrace_functions; +extern PGDLLIMPORT char *backtrace_symbol_list; -extern int temp_file_limit; +extern PGDLLIMPORT int temp_file_limit; -extern int num_temp_buffers; +extern PGDLLIMPORT int num_temp_buffers; extern PGDLLIMPORT char *cluster_name; extern PGDLLIMPORT char *ConfigFileName; -extern char *HbaFileName; -extern char *IdentFileName; -extern char *external_pid_file; +extern PGDLLIMPORT char *HbaFileName; +extern PGDLLIMPORT char *IdentFileName; +extern PGDLLIMPORT char *external_pid_file; extern PGDLLIMPORT char *application_name; -extern int tcp_keepalives_idle; -extern int tcp_keepalives_interval; -extern int tcp_keepalives_count; -extern int tcp_user_timeout; +extern PGDLLIMPORT int tcp_keepalives_idle; +extern PGDLLIMPORT int tcp_keepalives_interval; +extern PGDLLIMPORT int tcp_keepalives_count; +extern PGDLLIMPORT int tcp_user_timeout; #ifdef TRACE_SORT -extern bool trace_sort; +extern PGDLLIMPORT bool trace_sort; #endif /* diff --git a/src/include/utils/guc_tables.h b/src/include/utils/guc_tables.h index 63b56f18e0..ba44f7437b 100644 --- a/src/include/utils/guc_tables.h +++ b/src/include/utils/guc_tables.h @@ -249,10 +249,10 @@ struct config_enum }; /* constant tables corresponding to enums above and in guc.h */ -extern const char *const config_group_names[]; -extern const char *const config_type_names[]; -extern const char *const GucContext_Names[]; -extern const char *const GucSource_Names[]; +extern PGDLLIMPORT const char *const config_group_names[]; +extern PGDLLIMPORT const char *const config_type_names[]; +extern PGDLLIMPORT const char *const GucContext_Names[]; +extern PGDLLIMPORT const char *const GucSource_Names[]; /* get the current set of variables */ extern struct config_generic **get_guc_variables(void); diff --git a/src/include/utils/jsonpath.h b/src/include/utils/jsonpath.h index 1897ddffa6..358b9eb611 100644 --- a/src/include/utils/jsonpath.h +++ b/src/include/utils/jsonpath.h @@ -283,6 +283,6 @@ extern JsonbValue *JsonPathValue(Datum jb, JsonPath *jp, bool *empty, extern int EvalJsonPathVar(void *vars, char *varName, int varNameLen, JsonbValue *val, JsonbValue *baseObject); -extern const TableFuncRoutine JsonbTableRoutine; +extern PGDLLIMPORT const TableFuncRoutine JsonbTableRoutine; #endif diff --git a/src/include/utils/pg_locale.h b/src/include/utils/pg_locale.h index a44e17ffdf..e7385faef8 100644 --- a/src/include/utils/pg_locale.h +++ b/src/include/utils/pg_locale.h @@ -38,16 +38,16 @@ #define LOCALE_NAME_BUFLEN 128 /* GUC settings */ -extern char *locale_messages; -extern char *locale_monetary; -extern char *locale_numeric; -extern char *locale_time; +extern PGDLLIMPORT char *locale_messages; +extern PGDLLIMPORT char *locale_monetary; +extern PGDLLIMPORT char *locale_numeric; +extern PGDLLIMPORT char *locale_time; /* lc_time localization cache */ -extern char *localized_abbrev_days[]; -extern char *localized_full_days[]; -extern char *localized_abbrev_months[]; -extern char *localized_full_months[]; +extern PGDLLIMPORT char *localized_abbrev_days[]; +extern PGDLLIMPORT char *localized_full_days[]; +extern PGDLLIMPORT char *localized_abbrev_months[]; +extern PGDLLIMPORT char *localized_full_months[]; extern bool check_locale_messages(char **newval, void **extra, GucSource source); @@ -103,7 +103,7 @@ struct pg_locale_struct typedef struct pg_locale_struct *pg_locale_t; -extern struct pg_locale_struct default_locale; +extern PGDLLIMPORT struct pg_locale_struct default_locale; extern void make_icu_collator(const char *iculocstr, struct pg_locale_struct *resultp); diff --git a/src/include/utils/pgstat_internal.h b/src/include/utils/pgstat_internal.h index ab27bc47c5..0ee60b2f2a 100644 --- a/src/include/utils/pgstat_internal.h +++ b/src/include/utils/pgstat_internal.h @@ -638,14 +638,14 @@ extern void pgstat_create_transactional(PgStat_Kind kind, Oid dboid, Oid objoid) * Variables in pgstat.c */ -extern PgStat_LocalState pgStatLocal; +extern PGDLLIMPORT PgStat_LocalState pgStatLocal; /* * Variables in pgstat_slru.c */ -extern bool have_slrustats; +extern PGDLLIMPORT bool have_slrustats; /* diff --git a/src/include/utils/plancache.h b/src/include/utils/plancache.h index 95b99e3d25..0499635f59 100644 --- a/src/include/utils/plancache.h +++ b/src/include/utils/plancache.h @@ -35,7 +35,7 @@ typedef enum } PlanCacheMode; /* GUC parameter */ -extern int plan_cache_mode; +extern PGDLLIMPORT int plan_cache_mode; #define CACHEDPLANSOURCE_MAGIC 195726186 #define CACHEDPLAN_MAGIC 953717834 diff --git a/src/include/utils/ps_status.h b/src/include/utils/ps_status.h index 9f43e1fdf0..bba463591f 100644 --- a/src/include/utils/ps_status.h +++ b/src/include/utils/ps_status.h @@ -12,7 +12,7 @@ #ifndef PS_STATUS_H #define PS_STATUS_H -extern bool update_process_title; +extern PGDLLIMPORT bool update_process_title; extern char **save_ps_display_args(int argc, char **argv); diff --git a/src/include/utils/queryjumble.h b/src/include/utils/queryjumble.h index c670662db2..3c2d9beab2 100644 --- a/src/include/utils/queryjumble.h +++ b/src/include/utils/queryjumble.h @@ -62,14 +62,14 @@ enum ComputeQueryIdType }; /* GUC parameters */ -extern int compute_query_id; +extern PGDLLIMPORT int compute_query_id; extern const char *CleanQuerytext(const char *query, int *location, int *len); extern JumbleState *JumbleQuery(Query *query, const char *querytext); extern void EnableQueryId(void); -extern bool query_id_enabled; +extern PGDLLIMPORT bool query_id_enabled; /* * Returns whether query identifier computation has been enabled, either diff --git a/src/include/utils/relcache.h b/src/include/utils/relcache.h index 2281a7dc53..86dddbd975 100644 --- a/src/include/utils/relcache.h +++ b/src/include/utils/relcache.h @@ -145,9 +145,9 @@ extern void RelationCacheInitFilePostInvalidate(void); extern void RelationCacheInitFileRemove(void); /* should be used only by relcache.c and catcache.c */ -extern bool criticalRelcachesBuilt; +extern PGDLLIMPORT bool criticalRelcachesBuilt; /* should be used only by relcache.c and postinit.c */ -extern bool criticalSharedRelcachesBuilt; +extern PGDLLIMPORT bool criticalSharedRelcachesBuilt; #endif /* RELCACHE_H */ diff --git a/src/include/utils/rls.h b/src/include/utils/rls.h index c1896d6735..75259cc1f7 100644 --- a/src/include/utils/rls.h +++ b/src/include/utils/rls.h @@ -14,7 +14,7 @@ #define RLS_H /* GUC variable */ -extern bool row_security; +extern PGDLLIMPORT bool row_security; /* * Used by callers of check_enable_rls. diff --git a/src/include/utils/snapmgr.h b/src/include/utils/snapmgr.h index e04018c034..67b217b1c1 100644 --- a/src/include/utils/snapmgr.h +++ b/src/include/utils/snapmgr.h @@ -53,7 +53,7 @@ extern TimestampTz GetSnapshotCurrentTimestamp(void); extern TimestampTz GetOldSnapshotThresholdTimestamp(void); extern void SnapshotTooOldMagicForTest(void); -extern bool FirstSnapshotSet; +extern PGDLLIMPORT bool FirstSnapshotSet; extern PGDLLIMPORT TransactionId TransactionXmin; extern PGDLLIMPORT TransactionId RecentXmin; diff --git a/src/include/utils/timestamp.h b/src/include/utils/timestamp.h index d33421d380..edf3a97318 100644 --- a/src/include/utils/timestamp.h +++ b/src/include/utils/timestamp.h @@ -57,10 +57,10 @@ /* Set at postmaster start */ -extern TimestampTz PgStartTime; +extern PGDLLIMPORT TimestampTz PgStartTime; /* Set at configuration reload */ -extern TimestampTz PgReloadTime; +extern PGDLLIMPORT TimestampTz PgReloadTime; /* Internal routines (not fmgr-callable) */ diff --git a/src/include/utils/xml.h b/src/include/utils/xml.h index c1de08d15b..6620a62619 100644 --- a/src/include/utils/xml.h +++ b/src/include/utils/xml.h @@ -75,10 +75,10 @@ extern char *map_sql_identifier_to_xml_name(const char *ident, bool fully_escape extern char *map_xml_name_to_sql_identifier(const char *name); extern char *map_sql_value_to_xml_value(Datum value, Oid type, bool xml_escape_strings); -extern int xmlbinary; /* XmlBinaryType, but int for guc enum */ +extern PGDLLIMPORT int xmlbinary; /* XmlBinaryType, but int for guc enum */ -extern int xmloption; /* XmlOptionType, but int for guc enum */ +extern PGDLLIMPORT int xmloption; /* XmlOptionType, but int for guc enum */ -extern const TableFuncRoutine XmlTableRoutine; +extern PGDLLIMPORT const TableFuncRoutine XmlTableRoutine; #endif /* XML_H */