summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2022-07-27 16:00:10 +0000
committerTom Lane2022-07-27 16:00:10 +0000
commit03361a368e7bf909283cc7721af004317fdabd3d (patch)
treeea570b32477f0c085790100d2232363b68db8fcc
parenta2e97cb2b6fb64c3ca3198f5c5f31190bc14c703 (diff)
Add missing PGDLLEXPORT markings in contrib/pg_prewarm.
After commit 089480c07, it's necessary for background worker entry points to be marked PGDLLEXPORT, else they aren't findable by LookupBackgroundWorkerFunction(). Since pg_prewarm lacks any regression tests, it's not surprising its worker entry points were overlooked. (A quick search turned up no other such oversights.) I added some documentation pointing out the need for this, too. Robins Tharakan and Tom Lane CAEP4nAzndnQv3-1QKb=D-hLoK3Rko12HHMFHHtdj2GQAUXO3gw@mail.gmail.com
-rw-r--r--contrib/pg_prewarm/autoprewarm.c4
-rw-r--r--doc/src/sgml/bgworker.sgml11
2 files changed, 8 insertions, 7 deletions
diff --git a/contrib/pg_prewarm/autoprewarm.c b/contrib/pg_prewarm/autoprewarm.c
index b2d60260934..d9ab39dd900 100644
--- a/contrib/pg_prewarm/autoprewarm.c
+++ b/contrib/pg_prewarm/autoprewarm.c
@@ -82,8 +82,8 @@ typedef struct AutoPrewarmSharedState
int prewarmed_blocks;
} AutoPrewarmSharedState;
-void autoprewarm_main(Datum main_arg);
-void autoprewarm_database_main(Datum main_arg);
+PGDLLEXPORT void autoprewarm_main(Datum main_arg);
+PGDLLEXPORT void autoprewarm_database_main(Datum main_arg);
PG_FUNCTION_INFO_V1(autoprewarm_start_worker);
PG_FUNCTION_INFO_V1(autoprewarm_dump_now);
diff --git a/doc/src/sgml/bgworker.sgml b/doc/src/sgml/bgworker.sgml
index 73207f72fe1..3d4e4afcf91 100644
--- a/doc/src/sgml/bgworker.sgml
+++ b/doc/src/sgml/bgworker.sgml
@@ -141,14 +141,15 @@ typedef struct BackgroundWorker
which the initial entry point for the background worker should be sought.
The named library will be dynamically loaded by the worker process and
<structfield>bgw_function_name</structfield> will be used to identify the
- function to be called. If loading a function from the core code, this must
- be set to "postgres".
+ function to be called. If calling a function in the core code, this must
+ be set to <literal>"postgres"</literal>.
</para>
<para>
- <structfield>bgw_function_name</structfield> is the name of a function in
- a dynamically loaded library which should be used as the initial entry point
- for a new background worker.
+ <structfield>bgw_function_name</structfield> is the name of the function
+ to use as the initial entry point for the new background worker. If
+ this function is in a dynamically loaded library, it must be marked
+ <literal>PGDLLEXPORT</literal> (and not <literal>static</literal>).
</para>
<para>