On Wed, Feb 21, 2018 at 10:14 AM, Andres Freund wrote:
> Could you take the relevant commit, backport it to the
> relevant branches, resolve conflicts, make possibly appropriate
> adaptions, and post?
>
The original commit touched some new variables and therefore didn't apply
cleanly. Attached are equivalent patches for REL_10_STABLE and
REL9_6_STABLE.
From 3e2c0a444a0e07792408841a629d83797ff5883a Mon Sep 17 00:00:00 2001
From: Robert Haas
Date: Fri, 9 Feb 2018 15:54:45 -0500
Subject: [PATCH] Mark assorted GUC variables as PGDLLIMPORT.
This makes life easier for extension authors.
---
src/include/miscadmin.h | 2 +-
src/include/optimizer/cost.h | 30 +++---
src/include/optimizer/paths.h | 8
src/include/utils/guc.h | 2 +-
4 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/src/include/miscadmin.h b/src/include/miscadmin.h
index 6eacd2a..e76b4b9 100644
--- a/src/include/miscadmin.h
+++ b/src/include/miscadmin.h
@@ -158,7 +158,7 @@ extern PGDLLIMPORT int NBuffers;
extern PGDLLIMPORT int MaxBackends;
extern PGDLLIMPORT int MaxConnections;
extern PGDLLIMPORT int max_worker_processes;
-extern int max_parallel_workers;
+extern PGDLLIMPORT int max_parallel_workers;
extern PGDLLIMPORT int MyProcPid;
extern PGDLLIMPORT pg_time_t MyStartTime;
diff --git a/src/include/optimizer/cost.h b/src/include/optimizer/cost.h
index 63feba0..7925e4c 100644
--- a/src/include/optimizer/cost.h
+++ b/src/include/optimizer/cost.h
@@ -53,21 +53,21 @@ extern PGDLLIMPORT double cpu_operator_cost;
extern PGDLLIMPORT double parallel_tuple_cost;
extern PGDLLIMPORT double parallel_setup_cost;
extern PGDLLIMPORT int effective_cache_size;
-extern Cost disable_cost;
-extern int max_parallel_workers_per_gather;
-extern bool enable_seqscan;
-extern bool enable_indexscan;
-extern bool enable_indexonlyscan;
-extern bool enable_bitmapscan;
-extern bool enable_tidscan;
-extern bool enable_sort;
-extern bool enable_hashagg;
-extern bool enable_nestloop;
-extern bool enable_material;
-extern bool enable_mergejoin;
-extern bool enable_hashjoin;
-extern bool enable_gathermerge;
-extern int constraint_exclusion;
+extern PGDLLIMPORT Cost disable_cost;
+extern PGDLLIMPORT int max_parallel_workers_per_gather;
+extern PGDLLIMPORT bool enable_seqscan;
+extern PGDLLIMPORT bool enable_indexscan;
+extern PGDLLIMPORT bool enable_indexonlyscan;
+extern PGDLLIMPORT bool enable_bitmapscan;
+extern PGDLLIMPORT bool enable_tidscan;
+extern PGDLLIMPORT bool enable_sort;
+extern PGDLLIMPORT bool enable_hashagg;
+extern PGDLLIMPORT bool enable_nestloop;
+extern PGDLLIMPORT bool enable_material;
+extern PGDLLIMPORT bool enable_mergejoin;
+extern PGDLLIMPORT bool enable_hashjoin;
+extern PGDLLIMPORT bool enable_gathermerge;
+extern PGDLLIMPORT int constraint_exclusion;
extern double clamp_row_est(double nrows);
extern double index_pages_fetched(double tuples_fetched, BlockNumber pages,
diff --git a/src/include/optimizer/paths.h b/src/include/optimizer/paths.h
index 4e06b2e..f22fe0a 100644
--- a/src/include/optimizer/paths.h
+++ b/src/include/optimizer/paths.h
@@ -20,10 +20,10 @@
/*
* allpaths.c
*/
-extern bool enable_geqo;
-extern int geqo_threshold;
-extern int min_parallel_table_scan_size;
-extern int min_parallel_index_scan_size;
+extern PGDLLIMPORT bool enable_geqo;
+extern PGDLLIMPORT int geqo_threshold;
+extern PGDLLIMPORT int min_parallel_table_scan_size;
+extern PGDLLIMPORT int min_parallel_index_scan_size;
/* Hook for plugins to get control in set_rel_pathlist() */
typedef void (*set_rel_pathlist_hook_type) (PlannerInfo *root,
diff --git a/src/include/utils/guc.h b/src/include/utils/guc.h
index b89e8e8..6bcc904 100644
--- a/src/include/utils/guc.h
+++ b/src/include/utils/guc.h
@@ -262,7 +262,7 @@ extern char *HbaFileName;
extern char *IdentFileName;
extern char *external_pid_file;
-extern char *application_name;
+extern PGDLLIMPORT char *application_name;
extern int tcp_keepalives_idle;
extern int tcp_keepalives_interval;
--
2.7.4
From 4d7e9c6dd32d68e2b9d87325f5dbbedbef6ce886 Mon Sep 17 00:00:00 2001
From: Robert Haas
Date: Fri, 9 Feb 2018 15:54:45 -0500
Subject: [PATCH] Mark assorted GUC variables as PGDLLIMPORT.
This makes life easier for extension authors.
---
src/include/optimizer/cost.h | 28 ++--
src/include/optimizer/paths.h | 6 +++---
src/include/utils/guc.h | 2 +-
3 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/src/include/optimizer/cost.h b/src/include/optimizer/cost.h
index 2a4df2f..214e868 100644
--- a/src/include/optimizer/cost.h
+++ b/src/include/optimizer/cost.h
@@ -53,20 +53,20 @@ extern PGDLLIMPORT double cpu_operator_cost;
extern PGDLLIMPORT double parallel_tuple_cost;
extern PGDLLIMPORT double parallel_setup_cost;
extern PGDLLIMPORT int effective_cache_size;
-extern Cost disable_cost;
-extern int