8

I whish to display the version of the server I am connected to in the command-line (console) interface prompt. From what I read in the documentation, it is possible to execute a shell command, it is possible to display a psql variable value.

The idea is to get the server's version information on connection and use it in the client's prompt. How can I (in the .psqlrc file ?) assign the server version in a psql variable ?

Edit: Jack Douglas♦ has the right answer by pointing out the \gset feature. It ended up with a

show server_version
\gset
\set PROMPT1 '%:server_version: >'

Thank you.

1 Answer 1

8

Since 9.3, you can do this using \gset in psqlrc:

select split_part(version(),' ',2) pmt
\gset
\set PROMPT1 '%:pmt:'

Or, as 'the value of the selected prompt variable is printed literally, except where a percent sign (%) is encountered':

select split_part(version(),' ',2) "PROMPT1"
\gset

If your version is <9.3, it's still possible, but much uglier, e.g. something like:

\set PROMPT1 `psql postgres postgres -Atc "select split_part(version(),' ',2)"`

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.