Re: Enhance pg_stat_wal_receiver view to display connected host - Mailing list pgsql-hackers

From Haribabu Kommi
Subject Re: Enhance pg_stat_wal_receiver view to display connected host
Date
Msg-id CAJrrPGfs7=1-TUQQWTWTcXhTQn-1p1hpRy42LegPe+aWtK3QJA@mail.gmail.com
Whole thread Raw
In response to Re: Enhance pg_stat_wal_receiver view to display connected host  (Haribabu Kommi <kommi.haribabu@gmail.com>)
List pgsql-hackers


On Mon, Jan 8, 2018 at 3:32 PM, Haribabu Kommi <kommi.haribabu@gmail.com> wrote:


On Fri, Jan 5, 2018 at 11:15 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
Haribabu Kommi wrote:

> or
>
> write two new functions PQconnhost() and PQconnhostaddr() to return the
> connected host and hostaddr and reuse the PQport() function.

How about using an API similar to PQconninfo, where we return an array
of connection options used?  Say, PQeffectiveConninfo().  This seems to
me to reduce ugliness in the API, and be more generally useful.

OK. Added the new API PQeffectiveConninfo() that returns all the connection
options that are actively used. Currently the connection options host, hostaddr
and port may change based on the active connection and rest of the options
may be same.  

walrecvr could display as an array or just flatten to a string -- not
sure what's the better option there.

Currently I went with a string model to display all the effective_conninfo
options. I feel if we go with string approach, adding a new option that gets
updated in future is simple.

postgres=# select conninfo, effective_conninfo from pg_stat_wal_receiver;
-[ RECORD 1 ]------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
conninfo           | user=kommih passfile=/home/kommih/.pgpass dbname=replication hostaddr=127.0.0.1,127.0.0.1 port=5434,5432 application_name=s2 fallback_application_name=walreceiver sslmode=disable sslcompression=1 target_session_attrs=any
effective_conninfo | user=kommih passfile=/home/kommih/.pgpass dbname=replication hostaddr=127.0.0.1 port=5432 application_name=s2 fallback_application_name=walreceiver sslmode=disable sslcompression=1 target_session_attrs=any


Majority of the options are same in both conninfo and effective_conninfo columns.
Instead of "effective_conninfo" column, how about something like "remote_server"
as string that displays only the host, hostaddr and port options that differs with
each connection?

Instead of effective_conninfo, I changed the column name as remote_serve_info and
display only the host, hostaddr and port details. These are the only values that differs
with each remote connection.

patches attached.

Regards,
Hari Babu
Fujitsu Australia
Attachment

pgsql-hackers by date:

Previous
From: Kyotaro HORIGUCHI
Date:
Subject: Re: [HACKERS] Restricting maximum keep segments by repslots
Next
From: Etsuro Fujita
Date:
Subject: Re: [HACKERS] postgres_fdw bug in 9.6