Apply PGDLLIMPORT markings broadly.
authorRobert Haas <[email protected]>
Fri, 8 Apr 2022 12:16:38 +0000 (08:16 -0400)
committerRobert Haas <[email protected]>
Fri, 8 Apr 2022 12:16:38 +0000 (08:16 -0400)
Up until now, we've had a policy of only marking certain variables
in the PostgreSQL header files with PGDLLIMPORT, but now we've
decided to mark them all. This means that extensions running on
Windows should no longer operate at a disadvantage as compared to
extensions running on Linux: if the variable is present in a header
file, it should be accessible.

Discussion: http://postgr.es/m/CA+TgmoYanc1_FSfimhgiWSqVyP5KKmh5NP2BWNwDhO8Pg2vGYQ@mail.gmail.com

100 files changed:
src/include/access/gin.h
src/include/access/parallel.h
src/include/access/session.h
src/include/access/tableam.h
src/include/access/toast_compression.h
src/include/access/twophase_rmgr.h
src/include/access/xact.h
src/include/access/xlog.h
src/include/access/xlog_internal.h
src/include/access/xlogprefetcher.h
src/include/access/xlogrecovery.h
src/include/access/xlogutils.h
src/include/bootstrap/bootstrap.h
src/include/catalog/namespace.h
src/include/catalog/objectaddress.h
src/include/catalog/storage.h
src/include/commands/async.h
src/include/commands/tablespace.h
src/include/commands/user.h
src/include/commands/vacuum.h
src/include/common/file_perm.h
src/include/common/jsonapi.h
src/include/common/logging.h
src/include/common/pg_lzcompress.h
src/include/common/relpath.h
src/include/fe_utils/cancel.h
src/include/fe_utils/print.h
src/include/fe_utils/string_utils.h
src/include/fmgr.h
src/include/jit/jit.h
src/include/jit/llvmjit.h
src/include/libpq/auth.h
src/include/libpq/libpq-be.h
src/include/libpq/libpq.h
src/include/libpq/pqcomm.h
src/include/libpq/scram.h
src/include/mb/pg_wchar.h
src/include/miscadmin.h
src/include/nodes/readfuncs.h
src/include/optimizer/geqo.h
src/include/optimizer/optimizer.h
src/include/optimizer/planmain.h
src/include/parser/parse_expr.h
src/include/parser/parser.h
src/include/pg_getopt.h
src/include/pgstat.h
src/include/pgtime.h
src/include/port/win32_port.h
src/include/port/win32ntdll.h
src/include/postmaster/autovacuum.h
src/include/postmaster/bgworker_internals.h
src/include/postmaster/bgwriter.h
src/include/postmaster/pgarch.h
src/include/postmaster/postmaster.h
src/include/postmaster/startup.h
src/include/postmaster/syslogger.h
src/include/postmaster/walwriter.h
src/include/replication/logicallauncher.h
src/include/replication/syncrep.h
src/include/replication/walreceiver.h
src/include/replication/walsender.h
src/include/replication/walsender_private.h
src/include/replication/worker_internal.h
src/include/storage/buf_internals.h
src/include/storage/bufmgr.h
src/include/storage/dsm_impl.h
src/include/storage/fd.h
src/include/storage/large_object.h
src/include/storage/lock.h
src/include/storage/lwlock.h
src/include/storage/pg_shmem.h
src/include/storage/pmsignal.h
src/include/storage/predicate.h
src/include/storage/proc.h
src/include/storage/s_lock.h
src/include/storage/sinval.h
src/include/storage/spin.h
src/include/storage/standby.h
src/include/tcop/tcopprot.h
src/include/tsearch/ts_cache.h
src/include/tsearch/ts_type.h
src/include/utils/array.h
src/include/utils/builtins.h
src/include/utils/bytea.h
src/include/utils/datetime.h
src/include/utils/elog.h
src/include/utils/fmgrtab.h
src/include/utils/guc.h
src/include/utils/guc_tables.h
src/include/utils/jsonpath.h
src/include/utils/pg_locale.h
src/include/utils/pgstat_internal.h
src/include/utils/plancache.h
src/include/utils/ps_status.h
src/include/utils/queryjumble.h
src/include/utils/relcache.h
src/include/utils/rls.h
src/include/utils/snapmgr.h
src/include/utils/timestamp.h
src/include/utils/xml.h

index e83e0acd923a8e41d6847faf0b4a6c325a1aa633..aacc665fdc8280a64b509977e15caf6031857d79 100644 (file)
@@ -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);
index 30786820f8114a1b42dda6395ab42746446f9d61..983841d45e8bc3b936322f95cc2b7c947ec17ad8 100644 (file)
@@ -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;
 
index 0ed52d4821406dd662e9ece1c57deb6918bd0779..775888bbb03f842f2e8484aea9fc0503a2d889c7 100644 (file)
@@ -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 */
index bb365736b752692b5c744614b554e6cb25c20f8d..fe869c6c1841ac4e815ea23310c329fffb80cef5 100644 (file)
@@ -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;
index 9b433c7721cfc80aeffeb725c10a2fdb357dc921..deb8f99da5120b05ffd69477f605791ef021d549 100644 (file)
@@ -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
index 284c7539f8e8885dfe3ba765b776297d5cf67b4c..96381a5e3f864637f5eae92e1e60e5b4f5b7bee9 100644 (file)
@@ -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,
index 4e1e87350102b507a6156d45af09be449ad8750a..837fe7de0b96592348de5056857f40ab9749471c 100644 (file)
@@ -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.
index 5e1e3446aedc7dd52cb6c0dd1bae089017643d6e..d9f2487a969fdf0fe704737d54426d9b573e1d97 100644 (file)
 #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 int     CheckPointSegments;
+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 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
index 750f6341205215d5065343bbe851b20d135df3af..fae0bef8f5d2ef37b1c50a4df62f5b76634446f1 100644 (file)
@@ -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 */
index 80283a8fc23e4ebddd60c3df823f8ff65b3e62f5..fdd67fcedd2f9a69cdca6b0d6be444b229c656bd 100644 (file)
@@ -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
index 75a0f5fe5ec52688df9069ca83c81000ca6ff5cb..0aa85d90e89d449953c0c81e4ee1a6c39d76adf0 100644 (file)
@@ -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);
index 3746e31e40f75609cf58f8c5e2ecaeb080823263..761625acf44f7a01c563d0cef2beff5ca92136d5 100644 (file)
@@ -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)
 
index 471414909f3089a512b93523fa299f042fb2811d..49d4ad560f148e774efdd766b9a45fbf03475960 100644 (file)
@@ -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();
index f963d82797cdaf044882022cd5b23a4685505aa6..1bc55c01a5c4591ea2ab227a61ba41add0c7eeae 100644 (file)
@@ -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);
index 274f300054e72b920e848de30cdc75b85cc31b45..cf4d8b3107717093d0f7edbec900a5775e23a298 100644 (file)
@@ -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 { \
index 844a023b2ce68bbe0606652c709bceceba773d9c..59f3404ac640a2f8e191d4a6db894ca248fa4fab 100644 (file)
@@ -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,
index ebc92717892ed85020d52fedb317b3a144ac3f77..926af933d1b9b4cc67d0a4658989d4299ed93d25 100644 (file)
@@ -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);
index 323528ebb83e1351116d99ff37b5723f8cc7fbd4..24b647332d1b36f90660df72acfd39cfa7004db3 100644 (file)
@@ -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
index 0b7a3cd65fd26156f34421a66749284e09a754ef..d3dd8303d28caad0f3d33e87b763c95f593153f4 100644 (file)
@@ -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);
index ead88edda760008abc8468099896b9e84afc99f0..f38e1148f97fe89521b37d6dae69fdf4869d8e6e 100644 (file)
@@ -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 */
index 85d32ed141b9cbf23405787adc1a840c88f28cfb..48d68ef276352bf8a80df52ee06302b2ee739481 100644 (file)
 #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);
index 52cb4a9339e7f504ba35caf1d6c287eb4814e24d..8d31630e5cebf254b9ffd6dbdf5a3f5636b1ef94 100644 (file)
@@ -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
index 43cc79afa8a9e34264d4e98926d0e64a64d7c5d0..61cfdce6531c15730e0aba13b5483acbb05557fd 100644 (file)
@@ -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
index 3e53fbe97bd0a10e3fbf7ed4396924084f657868..2a12b33a008024e1eefcafe202b97b37cdd561c0 100644 (file)
@@ -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;
 
 
 /* ----------
index a4b5dc853bfbf20b6eb1642d1363f9b7a0146a54..13849a379073503f3b9f176eb81a0f84f4dd9b24 100644 (file)
@@ -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);
index 7005b804bcfe23225ae5169daf1bd9e55f828391..3b84daf6eb62cb191f309051d657c7a66090da16 100644 (file)
@@ -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);
index 836b4e29a81472b1a77e68be2470b1078777b144..bb2f1bf4e64275e38e69a881660ef28657f22b97 100644 (file)
@@ -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);
index 3c88250e6cc52b193c31045b0ecf92c1467d4299..b9b8708dab7931e97b930324a20157c5a10681de 100644 (file)
@@ -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 */
index 6560e462d66a1311004c9905d81ee48b4aa643c3..a1cf4bd646e12f1a79523e0dc46c666c84d1c96c 100644 (file)
@@ -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);
index 707176d9ed3f2525bff512ec063aeddb7ca6c271..d1940332094ab6d09626520d1853246045537035 100644 (file)
@@ -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);
index 66143afccc05df0f4cce090e14451ed19cae9138..4541f9a2c425f0b72219a25f50aa5467c14c0065 100644 (file)
@@ -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 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 LLVMValueRef AttributeTemplate;
+extern PGDLLIMPORT LLVMTypeRef TypeParamBool;
+extern PGDLLIMPORT LLVMTypeRef TypePGFunction;
+extern PGDLLIMPORT LLVMTypeRef TypeSizeT;
+extern PGDLLIMPORT LLVMTypeRef TypeStorageBool;
+
+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 PGDLLIMPORT LLVMValueRef AttributeTemplate;
 
 
 extern void llvm_enter_fatal_on_oom(void);
index 6d7ee1acb9d646de8d5b8fdc4413e3b101189392..d3c189efe32ec5760701e3f2c3959ef34dd7c303 100644 (file)
@@ -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,
index c3bf51465280a36b0c4a269acc07b59970cd040f..90c20da22bf6685987cbcfe4cd0795ced31b516a 100644 (file)
@@ -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. */
 
index d348a55812e818b2175fa1af25f8a69f9e55957d..2de7d9bad2c230e51ef204a6623a400211f67027 100644 (file)
@@ -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
 {
index ed26ad2256719f53bfb8bd17c3237e636eea262c..b418283d5ffb30d5b9be5c1f9ab9132cbfb15321 100644 (file)
@@ -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
index e60992a0d2d6cff1d8c06f7e3bbc1d68f23bed9b..c51e848c24d7eea5b7c095305735fbe6ee276bdd 100644 (file)
@@ -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);
index fd89bee80bf285a1adf64ff35d3396766e3a4dce..31f5b393da417d6226a33cb43ed743d682ee0997 100644 (file)
@@ -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
index bcf20164212beca02759670cf472765bd6ba6bf5..e9ad52c3475f574f5c549f030e856722c1d582c8 100644 (file)
@@ -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,
index 41794354e2736a0e5b343eb6b53453f145eab741..66717fd6c33354a52ef881349979e4a713771c93 100644 (file)
@@ -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
 
 /*
index 4563f200cde65dd6980d11f6086b86c4dcc4b7be..d39932333236a92c2142a6ed80d740b24873c870 100644 (file)
  *
  * 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 */
 
 
 /*
index 2302ab6d546fc2cd3c769587a22a9feed8480770..d40ce2eae14dc75184c1ba304665777ba35f16b8 100644 (file)
@@ -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,
index 6947bc65d1ee458a405f41d88b8f26ddddca3e08..c4f61c1a09c02829e22271c052f830e5893ebe2c 100644 (file)
@@ -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);
index 308e84edda45131bb15ebc458b6810855bd2d874..c8e5c57b4305b81b0129d5ab006d85c1be913621 100644 (file)
@@ -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);
 
index 6aac0e096a102dcd8e214d4998a1d50e835f62a1..828150f01bcb28f7c4fbf65145838785d016ade9 100644 (file)
@@ -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;
 
 
index ec9f6e6ee341171e5fee7d12bcf4b1766500f3e2..9d91e602e64af37ae707d4bb345f404349a6a4f7 100644 (file)
  */
 #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 */
index 88c87a0cc5434198febe9348bd6af331f684c8b2..ac28f813b4e3d89d5294a5ab9e3bf1acd61b4b38 100644 (file)
@@ -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 */
index 441d7847c12e2aaf3c39278ec9830fe0805d65ba..1c44be8baa9adc7308909b2a20477f74de7dff83 100644 (file)
@@ -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);
index 4bb6fc5e1e36ff9e26266dc57556ee3b3179e0d6..5045ced91b7cb8864f7ceb2c0248f42334ec64c4 100644 (file)
@@ -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 */
 
index 663b9754bd778f1e70ccb22e347798111dfef1d9..291b067ea4fe186d20078993a7fdc02e7f184b7e 100644 (file)
@@ -23,9 +23,9 @@
 #include <ntstatus.h>
 #include <winternl.h>
 
-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);
 
index 30a2b3274f8f15127db185ae3c80e771cf06147f..9d40fd6d54b7998d273d63f072694b3185aaaaea 100644 (file)
@@ -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);
index 75900686fc96aa7b5b85498916237e56cc76c910..387683546d85ebcad838419beb9a2f9e8f6a7a34 100644 (file)
@@ -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);
index 2882efd67be2a6a98ee8fad194d4c4b00504e6ca..2511ef451e0da26bea358833009882431dde34fb 100644 (file)
 
 
 /* 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();
index 9bc7593a2df046914ef0d6cc68e0689d327c1c95..38cb1c64774b78507b4dbef98da26b35646e2c49 100644 (file)
@@ -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 */
index 324a30ec1ab876daa1718ceda4b6b5863f8ed150..90e333ccd2097c1d8f57c0b5aff263aeb1ca194d 100644 (file)
 #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
index 7e39db715930d0c2de2b1da9f8616af80081397b..d66ec1fcb12fc8ad92f933dbcd971ddaf973f46b 100644 (file)
@@ -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();
index 1ca326e52e3e2ab2465a74ac8a3a2e9673cc6731..6436724f3db7de343e52c2371a08ae2869fcc8c0 100644 (file)
@@ -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
 
 
index 5a3011d9c957f8ddd24c8cec35fb131607d0685b..ddc943657e32e9665c1206a08fb0593c9e337225 100644 (file)
@@ -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();
 
index 15596fe446e5b0d6005204cc5b4cc6f6ec480c64..f1e2821e254cd07c99f3a96937b96614e3b5a2c8 100644 (file)
@@ -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);
index 27be230d779f58241272bc5e34b5efa702517d1d..4d7c90b9f0dc7e889a00fc72083f1bb6893e890e 100644 (file)
@@ -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);
index 92f73a55b8d7723a668781d1490b9b23e14b9d4d..81184aa92f3b51ae72c9b0f4bac8814ece3f20a7 100644 (file)
@@ -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
 {
index b1892e9e4be031136831bd442e26b08d8337b8d0..d99a21b0771832bc15e7059a1273b570ea284767 100644 (file)
@@ -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);
index 9631047c6c1bdce3e3d0661fbbbaaf100f598166..c14888e493fd83ae0cfb6b71ffef76a01f8746b6 100644 (file)
@@ -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 */
index 3c3f5f6a3a0c5f68e2f69b3210e5c5abd28b7838..4485d4ebee19be2d454a06f151099c3f3a0a9a98 100644 (file)
@@ -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,
index b903d2bcaf04df3d427739d375ad5f187867c8c1..a17e7b28a53d94dfab4130f4be7093d81b8b7c2a 100644 (file)
@@ -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
index a6b657f0ba50f9cb57453fe975835f8aa4e20a37..58391406f65a3d38d60771f0984c8b31056a8c99 100644 (file)
@@ -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 int     checkpoint_flush_after;
-extern int     backend_flush_after;
-extern int     bgwriter_flush_after;
+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 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;
index f60b76f075bad7d314460a586035bb454ecc4b4a..c51584dc6a0593238ca268b66489d3b33a532abc 100644 (file)
@@ -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.
index 29209e272433386f23aca6b01b473921da64e535..69549b000fa39c26c047a78cf24da590a9d5213c 100644 (file)
@@ -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
index 274b97fd422bbb5064ddb1f9a6b7609feaa37335..b826a7dcd5b974834a6e44a4b821599da9ac1bd4 100644 (file)
@@ -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...
index dc537e20f2ceb5fd29d1c98412606b2c2146fb7e..e4e1495b245e270a7f799532b98075a3f167acf6 100644 (file)
@@ -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
index 33eb4c1033939be9fa8de31475404de7138f6981..e8c91139f89c89b1b2313d258c2050777f2163c6 100644 (file)
@@ -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);
index 50e5c5f99b3f89123368c5b222bd6df28f346ea7..da5962edb9f21cde1eac07551ea8f570d0a1361a 100644 (file)
@@ -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
index ea42c2072d14eae337e38ea5e299d01b5d4cb8c2..58f4ddf47687490602752382e8f7c4d39176bdd1 100644 (file)
@@ -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)
index ba12904f22a250ecf3ce2ceaab3eda5844b3d22e..8dfcb3944b4fdb9883b00adb4e4a935dcb33dbf0 100644 (file)
@@ -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 */
index 36ecf7d005822c95046f7e9bbbf798636d451731..c02001d3a09a4351b5caf1e8ab7289420f2798e9 100644 (file)
@@ -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;
 
 
 /*
index af1145d98f6906448c5f78224bb66dd67b6c213e..39faa4d83781329f805253b5004ae2edc1bb263b 100644 (file)
@@ -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
index 593a4211af671d7f0cbd9040112465f45052cce4..e7cd45658c6e2a5a85643d88e0c24530a81b6412 100644 (file)
@@ -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);
index 70070ca9abeaa2d0b98bfd91b1a919ae0eca8e83..7031f1d2c56d80fe5846723b568136cbd7afba38 100644 (file)
@@ -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 */
index 58ea21aa1323439c113507262877e011c5dd8a06..6a7763264b0ea4b06a687c055ae0bcea92b4d8f6 100644 (file)
 #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);
index 92291a750d38cddbc1d8ac1f6e6a3008ae3f344a..87e408b7199ef716fa3d2d961f677c0029140e07 100644 (file)
 /* 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 */
 
index 5e70d74b414c1dfefaf371f86848e8c9a758f3c8..5e4a49ea1c7abbaaf8793a26db84774a9c64ad35 100644 (file)
@@ -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);
index 1a8bad8491462611930f2c9a4fb87277f762430e..a2008f5504b20b02b0cc4ec795618c4e6f3bb219 100644 (file)
@@ -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] )
index 2dba156d350528bc62e90b6bd44b65d16bae48cc..656c766a9a1decc37d1d75a34544aad771251999 100644 (file)
@@ -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
index 666e545496916ca64ab14d564dc8240feeab9ce7..221c3e6c3dea67151da3b000a2080ffeb3cdba5b 100644 (file)
@@ -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);
index dfef8e2d520a276a446e1a70e8734081e15ff9b4..c3c9e54707faf2648c61228650247e0de3e72e1c 100644 (file)
@@ -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 */
index 0801858d601cf1733de313f56e5f1668b09c6e1e..4527e8251775d34a4ee1e877e3dc9bf5578e37ee 100644 (file)
@@ -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.
index 3eb8de39661e64d81b2c3a8b406468469fbbac0e..f5c6cd904de925db6819e56e4869a27b620b090c 100644 (file)
@@ -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
index e5f53d6295024a40d3c438e011e0c7cc5a499bf5..0a59937656fdffc75299bca349c5c2b5bf8ba85b 100644 (file)
@@ -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 */
index 1189e1a2263646328926c6e81c427e07a59ba4ff..efcbad78423e96d11a1e2755e82ec96658289a86 100644 (file)
@@ -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
 
 /*
index 63b56f18e0d5c13cb227cebf30f73331f2157582..ba44f7437bfbf264553c08c04d16c84f770478ff 100644 (file)
@@ -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);
index 1897ddffa6ebfcee7b8ab2c918f07689c4d1f32d..358b9eb61102ec2ab4d080191bc9f4341ccac654 100644 (file)
@@ -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
index a44e17ffdf8a39468fad3dad73bf264e052eb786..e7385faef862c1b3ea94a5ce70cf8658cf54eeea 100644 (file)
 #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);
index ab27bc47c5e84f6d4b27c0dea22b67f9f9c3d976..0ee60b2f2a1d4d4dd4d8cfb8ff8c17742e645deb 100644 (file)
@@ -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;
 
 
 /*
index 95b99e3d252f0f2f2b24807342a518f1f26d53fd..0499635f5945c5f05cc23de87ce6903d728e92d8 100644 (file)
@@ -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
index 9f43e1fdf0aa1d2e53c321b8cebb139c20e4fd38..bba463591f8484bc17393963290144d6af38da80 100644 (file)
@@ -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);
 
index c670662db2b44416c0bc699230492cb40f618d9e..3c2d9beab21ac7bd08e0a2a48360287d3e7f8b3f 100644 (file)
@@ -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
index 2281a7dc533a4c25520ac6d078820920f4b6c65b..86dddbd975d4b746a251189d08f8dc0a681064f4 100644 (file)
@@ -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 */
index c1896d67356e5aaf00f13dd4865bb84aee07b2e4..75259cc1f77ca50c6adefbb468cc3237475cac0f 100644 (file)
@@ -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.
index e04018c034faf830181f142c4c9530863110babe..67b217b1c11999c2a89e54e4db00017c7fd25da3 100644 (file)
@@ -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;
index d33421d3809256c1f1eb3f45b733fd590735f403..edf3a9731866af02cf1f4073e79dec8486f977d7 100644 (file)
 
 
 /* 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) */
index c1de08d15b8b1517ae46f77d68fef9b29ac3e730..6620a6261919e71babc7ef9f9e5ff6f8e21c784c 100644 (file)
@@ -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 */