mirror of
https://github.com/postgres/postgres.git
synced 2025-05-09 18:21:05 +03:00
Fix worker_spi when launching workers without shared_preload_libraries
Currently, the database name to connect is initialized only when the module is loaded with shared_preload_libraries, causing any call of worker_spi_launch() to fail if the library is not loaded for a dynamic bgworker launch. Rather than making the GUC defining the database to connect to a PGC_POSTMASTER, this commit switches worker_spi.database to PGC_SIGHUP, loaded even if the module's library is loaded dynamically for a worker. We have been discussing about the integration of more advanced tests in this module, with and without shared_preload_libraries set, so this eases a bit the work planned in this area. No backpatch is done as, while this is a bug, it changes the definition of worker_spi.database. Author: Masahiro Ikeda Reviewed-by: Bharath Rupireddy Discussion: https://postgr.es/m/d30d3ea7d21cb7c9e1e3cc47e301f1b6@oss.nttdata.com
This commit is contained in:
parent
9089287aa0
commit
97ff8dd02c
@ -283,6 +283,11 @@ _PG_init(void)
|
|||||||
BackgroundWorker worker;
|
BackgroundWorker worker;
|
||||||
|
|
||||||
/* get the configuration */
|
/* get the configuration */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These GUCs are defined even if this library is not loaded with
|
||||||
|
* shared_preload_libraries, for worker_spi_launch().
|
||||||
|
*/
|
||||||
DefineCustomIntVariable("worker_spi.naptime",
|
DefineCustomIntVariable("worker_spi.naptime",
|
||||||
"Duration between each check (in seconds).",
|
"Duration between each check (in seconds).",
|
||||||
NULL,
|
NULL,
|
||||||
@ -296,6 +301,15 @@ _PG_init(void)
|
|||||||
NULL,
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
DefineCustomStringVariable("worker_spi.database",
|
||||||
|
"Database to connect to.",
|
||||||
|
NULL,
|
||||||
|
&worker_spi_database,
|
||||||
|
"postgres",
|
||||||
|
PGC_SIGHUP,
|
||||||
|
0,
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
|
||||||
if (!process_shared_preload_libraries_in_progress)
|
if (!process_shared_preload_libraries_in_progress)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -312,15 +326,6 @@ _PG_init(void)
|
|||||||
NULL,
|
NULL,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
DefineCustomStringVariable("worker_spi.database",
|
|
||||||
"Database to connect to.",
|
|
||||||
NULL,
|
|
||||||
&worker_spi_database,
|
|
||||||
"postgres",
|
|
||||||
PGC_POSTMASTER,
|
|
||||||
0,
|
|
||||||
NULL, NULL, NULL);
|
|
||||||
|
|
||||||
MarkGUCPrefixReserved("worker_spi");
|
MarkGUCPrefixReserved("worker_spi");
|
||||||
|
|
||||||
/* set up common data for all our workers */
|
/* set up common data for all our workers */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user