On Fri, Aug 12, 2016 at 12:51 AM, Tom Lane <t...@sss.pgh.pa.us> wrote: > Peter Eisentraut <peter.eisentr...@2ndquadrant.com> writes: >> On 8/11/16 6:04 AM, Aleksander Alekseev wrote: >>> Suggested patch introduces an %r substitution in psql's prompt. This >>> substitution allows to display whether user is connected to master or >>> replica right in a prompt. > >> In the near future, there will (probably) be a lot more variants about >> what it means to be a master or a replica. There will be logical >> replication, where you could be a publisher of something and a consumer >> of something else. You could even be a logical consumer but a physical >> master. So a global binary facility is probably not very forward >> looking and will lead to confusion. > > Also, the patch as given is broken since it fails to account for the > server being promoted while a psql session is open.
{ + {"is_master", PGC_INTERNAL, UNGROUPED, + gettext_noop("Shows whether the current instance is master or replica."), + NULL, + GUC_REPORT | GUC_NO_SHOW_ALL | GUC_NO_RESET_ALL | GUC_NOT_IN_SAMPLE | GUC_DISALLOW_IN_FILE + }, + &session_is_master, + false, + NULL, NULL, NULL + }, Having a GUC for that purpose is not a fruitful approach. And it seems to me that this patch is dead-in-the water because this makes prompt parsing dependent on a status only known by the server, which would require in the worst case to issue an SQL based on for example pg_is_in_recovery() in get_prompt(): all the other fields using libpq routines fetch values defined when the connection is established, like the session PID or the database. -- Michael -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers