diff options
author | Fujii Masao | 2021-12-24 07:55:11 +0000 |
---|---|---|
committer | Fujii Masao | 2021-12-24 07:55:11 +0000 |
commit | 6e0cb3dec10e460288d68a128e3d79d16a230cdb (patch) | |
tree | 5d106381fe2fa91fb9b0dbf3a81061c7d9356764 /contrib/postgres_fdw/expected | |
parent | 94226d4506e66d6e7cbf4b391f1e7393c1962841 (diff) |
postgres_fdw: Allow postgres_fdw.application_name to include escape sequences.
application_name that used when postgres_fdw establishes a connection to
a foreign server can be specified in either or both a connection parameter
of a server object and GUC postgres_fdw.application_name. This commit
allows those parameters to include escape sequences that begins with
% character. Then postgres_fdw replaces those escape sequences with
status information. For example, %d and %u are replaced with user name
and database name in local server, respectively. This feature enables us
to add information more easily to track remote transactions or queries,
into application_name of a remote connection.
Author: Hayato Kuroda
Reviewed-by: Kyotaro Horiguchi, Masahiro Ikeda, Hou Zhijie, Fujii Masao
Discussion: https://postgr.es/m/TYAPR01MB5866FAE71C66547C64616584F5EB9@TYAPR01MB5866.jpnprd01.prod.outlook.com
Discussion: https://postgr.es/m/TYCPR01MB5870D1E8B949DAF6D3B84E02F5F29@TYCPR01MB5870.jpnprd01.prod.outlook.com
Diffstat (limited to 'contrib/postgres_fdw/expected')
-rw-r--r-- | contrib/postgres_fdw/expected/postgres_fdw.out | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/contrib/postgres_fdw/expected/postgres_fdw.out b/contrib/postgres_fdw/expected/postgres_fdw.out index 7720ab9c581..6ce7ec24f08 100644 --- a/contrib/postgres_fdw/expected/postgres_fdw.out +++ b/contrib/postgres_fdw/expected/postgres_fdw.out @@ -10825,3 +10825,35 @@ ERROR: invalid value for integer option "batch_size": 100$%$#$# ALTER FOREIGN DATA WRAPPER postgres_fdw OPTIONS (nonexistent 'fdw'); ERROR: invalid option "nonexistent" HINT: There are no valid options in this context. +-- =================================================================== +-- test postgres_fdw.application_name GUC +-- =================================================================== +-- Close all the existing cached connections so that new connection +-- will be established with new setting of postgres_fdw.application_name. +SELECT 1 FROM postgres_fdw_disconnect_all(); + ?column? +---------- + 1 +(1 row) + +-- Add some escape sequences into postgres_fdw.application_name +-- so as to test that they are replaced with status information expectedly. +SET postgres_fdw.application_name TO '%a%u%d%p%%'; +BEGIN; +SELECT 1 FROM ft6 LIMIT 1; + ?column? +---------- + 1 +(1 row) + +SELECT count(*) FROM pg_stat_activity + WHERE application_name = current_setting('application_name') || + CURRENT_USER || current_database() || pg_backend_pid() || '%'; + count +------- + 1 +(1 row) + +COMMIT; +--Clean up +RESET postgres_fdw.application_name; |