diff options
author | Tom Lane | 2022-07-27 16:00:10 +0000 |
---|---|---|
committer | Tom Lane | 2022-07-27 16:00:10 +0000 |
commit | 03361a368e7bf909283cc7721af004317fdabd3d (patch) | |
tree | ea570b32477f0c085790100d2232363b68db8fcc | |
parent | a2e97cb2b6fb64c3ca3198f5c5f31190bc14c703 (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.c | 4 | ||||
-rw-r--r-- | doc/src/sgml/bgworker.sgml | 11 |
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> |