From 1fada5d81e6769ded832a4ca62ee9371bac3fb9f Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 21 Dec 2021 12:12:24 -0500 Subject: [PATCH] Add missing EmitWarningsOnPlaceholders() calls. Extensions that define any custom GUCs should call EmitWarningsOnPlaceholders after doing so, to help catch misspellings. Many of our contrib modules hadn't gotten the memo on that, though. Also add such calls to src/test/modules extensions that have GUCs. While these aren't really user-facing, they should illustrate good practice not faulty practice. Shinya Kato Discussion: https://postgr.es/m/524fa2c0a34f34b68fbfa90d0760d515@oss.nttdata.com --- contrib/auth_delay/auth_delay.c | 3 +++ contrib/pg_trgm/trgm_op.c | 2 ++ contrib/postgres_fdw/option.c | 2 ++ contrib/sepgsql/hooks.c | 2 ++ src/backend/utils/misc/guc.c | 7 +++++++ src/pl/tcl/pltcl.c | 3 +++ src/test/modules/delay_execution/delay_execution.c | 2 ++ .../modules/ssl_passphrase_callback/ssl_passphrase_func.c | 3 +++ src/test/modules/worker_spi/worker_spi.c | 2 ++ 9 files changed, 26 insertions(+) diff --git a/contrib/auth_delay/auth_delay.c b/contrib/auth_delay/auth_delay.c index 5820ac328db..d11dd1e416e 100644 --- a/contrib/auth_delay/auth_delay.c +++ b/contrib/auth_delay/auth_delay.c @@ -67,6 +67,9 @@ _PG_init(void) NULL, NULL, NULL); + + EmitWarningsOnPlaceholders("auth_delay"); + /* Install Hooks */ original_client_auth_hook = ClientAuthentication_hook; ClientAuthentication_hook = auth_delay_checks; diff --git a/contrib/pg_trgm/trgm_op.c b/contrib/pg_trgm/trgm_op.c index fb38135f7a3..0407c7dd644 100644 --- a/contrib/pg_trgm/trgm_op.c +++ b/contrib/pg_trgm/trgm_op.c @@ -100,6 +100,8 @@ _PG_init(void) NULL, NULL, NULL); + + EmitWarningsOnPlaceholders("pg_trgm"); } /* diff --git a/contrib/postgres_fdw/option.c b/contrib/postgres_fdw/option.c index 48c7417e6ec..36555398ecb 100644 --- a/contrib/postgres_fdw/option.c +++ b/contrib/postgres_fdw/option.c @@ -469,4 +469,6 @@ _PG_init(void) NULL, NULL, NULL); + + EmitWarningsOnPlaceholders("postgres_fdw"); } diff --git a/contrib/sepgsql/hooks.c b/contrib/sepgsql/hooks.c index 19a3ffb7ffa..44a09c35a7c 100644 --- a/contrib/sepgsql/hooks.c +++ b/contrib/sepgsql/hooks.c @@ -455,6 +455,8 @@ _PG_init(void) NULL, NULL); + EmitWarningsOnPlaceholders("sepgsql"); + /* Initialize userspace access vector cache */ sepgsql_avc_init(); diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 7b030463013..bff949a40bc 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -9194,6 +9194,9 @@ reapply_stacked_values(struct config_generic *variable, } } +/* + * Functions for extensions to call to define their custom GUC variables. + */ void DefineCustomBoolVariable(const char *name, const char *short_desc, @@ -9333,6 +9336,10 @@ DefineCustomEnumVariable(const char *name, define_custom_variable(&var->gen); } +/* + * Extensions should call this after they've defined all of their custom + * GUCs, to help catch misspelled config-file entries, + */ void EmitWarningsOnPlaceholders(const char *className) { diff --git a/src/pl/tcl/pltcl.c b/src/pl/tcl/pltcl.c index e11837559da..7c045f45607 100644 --- a/src/pl/tcl/pltcl.c +++ b/src/pl/tcl/pltcl.c @@ -474,6 +474,9 @@ _PG_init(void) PGC_SUSET, 0, NULL, NULL, NULL); + EmitWarningsOnPlaceholders("pltcl"); + EmitWarningsOnPlaceholders("pltclu"); + pltcl_pm_init_done = true; } diff --git a/src/test/modules/delay_execution/delay_execution.c b/src/test/modules/delay_execution/delay_execution.c index b3d0841ba80..8ec623ac527 100644 --- a/src/test/modules/delay_execution/delay_execution.c +++ b/src/test/modules/delay_execution/delay_execution.c @@ -91,6 +91,8 @@ _PG_init(void) NULL, NULL); + EmitWarningsOnPlaceholders("delay_execution"); + /* Install our hook */ prev_planner_hook = planner_hook; planner_hook = delay_execution_planner; diff --git a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c index 6b0a3db104c..3ba33e501c3 100644 --- a/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c +++ b/src/test/modules/ssl_passphrase_callback/ssl_passphrase_func.c @@ -48,6 +48,9 @@ _PG_init(void) NULL, NULL, NULL); + + EmitWarningsOnPlaceholders("ssl_passphrase"); + if (ssl_passphrase) openssl_tls_init_hook = set_rot13; } diff --git a/src/test/modules/worker_spi/worker_spi.c b/src/test/modules/worker_spi/worker_spi.c index 0b6246676b6..adb02d8cb83 100644 --- a/src/test/modules/worker_spi/worker_spi.c +++ b/src/test/modules/worker_spi/worker_spi.c @@ -322,6 +322,8 @@ _PG_init(void) 0, NULL, NULL, NULL); + EmitWarningsOnPlaceholders("worker_spi"); + /* set up common data for all our workers */ memset(&worker, 0, sizeof(worker)); worker.bgw_flags = BGWORKER_SHMEM_ACCESS |