Como exibir a versão do Postgres na pompa da CLI?

8

Desejo exibir a versão do servidor ao qual estou conectado no prompt da interface da linha de comandos (console). Pelo que li na documentação, é possível executar um comando shell, é possível exibir um valor de variável psql.

A idéia é obter as informações da versão do servidor na conexão e usá-las no prompt do cliente. Como posso (no .psqlrcarquivo?) Atribuir a versão do servidor em uma variável psql?

Edit: Jack Douglas ♦ tem a resposta certa, apontando o \gsetrecurso. Acabou com um

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

Obrigado.

greg
fonte

Respostas:

8

Desde a 9.3, você pode fazer isso usando \ gset no psqlrc:

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

Ou, como ' o valor da variável de prompt selecionada é impresso literalmente, exceto onde um sinal de porcentagem (%) é encontrado ':

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

Se sua versão for <9.3, ainda é possível, mas muito mais feia , por exemplo, algo como:

\set PROMPT1 `psql postgres postgres -Atc "select split_part(version(),' ',2)"`
Jack diz que tenta topanswers.xyz
fonte