Re: Feature request: make cluster_name GUC useful for psql prompts - Mailing list pgsql-hackers

From Steve Crawford
Subject Re: Feature request: make cluster_name GUC useful for psql prompts
Date
Msg-id CAEfWYyz+NmcLTGhHOKUMZmecty06z29aSAsgJxq-VocAb-tt+w@mail.gmail.com
Whole thread Raw
In response to Re: Feature request: make cluster_name GUC useful for psql prompts  (Jerry Sievers <gsievers19@comcast.net>)
List pgsql-hackers
Although this is getting slightly off the original topic, rereading .psqlrc is a potential can of worms. What triggers a reread? What portions of .psqlrc are re-read?

For example, say I have just set tuples-only, extended-display, or output file. Would they all get reset just because I changed connections?

You can use variables to approximate the behavior of aliases so you can hack an alias that includes the reconnect and re-read. Or just \i ~/.psqlrc as you deem necessary.

Cheers,
Steve




On Fri, May 6, 2016 at 12:50 PM, Jerry Sievers <gsievers19@comcast.net> wrote:
Steve Crawford <scrawford@pinpointresearch.com> writes:

> That is almost identical to the solution I suggested a week or two ago to someone tackling the issue and the hack works on initial connection.
>
> Connect to a different cluster with "\c", however, and it will leave the prompt showing you connected to the original database which is not good.

True and I've always thought of it as a possible misfeature of psql that
it scans .psqlrc only once.

> Cheers,
> Steve
>
> On Fri, May 6, 2016 at 11:42 AM, Jerry Sievers <gsievers19@comcast.net> wrote:
>
>     Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
>
>     > On 5/5/16 9:21 PM, Steve Crawford wrote:
>     >
>     >> Adding an escape sequence that references cluster_name would enable
>     >> prompts to identify the cluster in a manner that is both consistent and
>     >> distinct regardless of access path.
>     >
>     > I think that would be a good idea.  You could probably design it so
>     > that any server parameter reported to the client can be put in a psql
>     > prompt.
>
>     The OP can easily work around that lack of support with something such as follow...
>
>     Add this to ~/.psqlrc[-optional version stuff]
>
>     select setting as cluster_name from pg_settings where name = 'cluster_name'  -- do not simicolon terminate this line
>     \gset
>
>     \set PROMPT1 :cluster_name ': how cool is this:'
>
>     >
>     >> Potential issues/improvements:
>     >>
>     >> What should the escape-sequence display if cluster_name is not set or
>     >> the cluster is a pre-9.5 version. %M? %m?
>     >>
>     >> In future server versions should there be a default for cluster_name if
>     >> it is not set? If so, what should it be? Would the server canonical
>     >> hostname + listen-port be reasonable?
>     >
>     > Those are good questions.  I don't really like the proposed answers,
>     > because that could cause confusion in practical use.
>     >
>     > --
>     > Peter Eisentraut              http://www.2ndQuadrant.com/
>     > PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>
>     --
>     Jerry Sievers
>     Postgres DBA/Development Consulting
>     e: postgres.consulting@comcast.net
>     p: 312.241.7800
>

--
Jerry Sievers
e: jerry.sievers@comcast.net
p: 312.241.7800

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Initial release notes created for 9.6
Next
From: Andres Freund
Date:
Subject: Re: Reviewing freeze map code