mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
postgres_fdw: Allow application_name of remote connection to be set via GUC.
This commit adds postgres_fdw.application_name GUC which specifies a value for application_name configuration parameter used when postgres_fdw establishes a connection to a foreign server. This GUC setting always overrides application_name option of the foreign server object. This GUC is useful when we want to specify our own application_name per remote connection. Previously application_name of a remote connection could be set basically only via options of a server object. But which meant that every session connecting to the same foreign server basically should use the same application_name. Also if we want to change the setting, we had to execute "ALTER SERVER ... OPTIONS ..." command. It was inconvenient. Author: Hayato Kuroda Reviewed-by: Masahiro Ikeda, Fujii Masao Discussion: https://postgr.es/m/TYCPR01MB5870D1E8B949DAF6D3B84E02F5F29@TYCPR01MB5870.jpnprd01.prod.outlook.com
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* option.c
|
||||
* FDW option handling for postgres_fdw
|
||||
* FDW and GUC option handling for postgres_fdw
|
||||
*
|
||||
* Portions Copyright (c) 2012-2021, PostgreSQL Global Development Group
|
||||
*
|
||||
@ -45,6 +45,13 @@ static PgFdwOption *postgres_fdw_options;
|
||||
*/
|
||||
static PQconninfoOption *libpq_options;
|
||||
|
||||
/*
|
||||
* GUC parameters
|
||||
*/
|
||||
char *pgfdw_application_name = NULL;
|
||||
|
||||
void _PG_init(void);
|
||||
|
||||
/*
|
||||
* Helper functions
|
||||
*/
|
||||
@ -435,3 +442,29 @@ ExtractExtensionList(const char *extensionsString, bool warnOnMissing)
|
||||
list_free(extlist);
|
||||
return extensionOids;
|
||||
}
|
||||
|
||||
/*
|
||||
* Module load callback
|
||||
*/
|
||||
void
|
||||
_PG_init(void)
|
||||
{
|
||||
/*
|
||||
* Unlike application_name GUC, don't set GUC_IS_NAME flag nor check_hook
|
||||
* to allow postgres_fdw.application_name to be any string more than
|
||||
* NAMEDATALEN characters and to include non-ASCII characters. Instead,
|
||||
* remote server truncates application_name of remote connection to less
|
||||
* than NAMEDATALEN and replaces any non-ASCII characters in it with a '?'
|
||||
* character.
|
||||
*/
|
||||
DefineCustomStringVariable("postgres_fdw.application_name",
|
||||
"Sets the application name to be used on the remote server.",
|
||||
NULL,
|
||||
&pgfdw_application_name,
|
||||
NULL,
|
||||
PGC_USERSET,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
}
|
||||
|
Reference in New Issue
Block a user