¿Cómo mostrar la versión de Postgres en la pompa de la CLI?

8

Deseo mostrar la versión del servidor al que estoy conectado en el indicador de interfaz de la línea de comandos (consola). Por lo que leí en la documentación, es posible ejecutar un comando de shell, es posible mostrar un valor de variable psql.

La idea es obtener la información de la versión del servidor en la conexión y usarla en la solicitud del cliente. ¿Cómo puedo (en el .psqlrcarchivo) asignar la versión del servidor en una variable psql?

Editar: Jack Douglas ♦ tiene la respuesta correcta al señalar la \gsetfunción. Terminó con un

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

Gracias.

Greg
fuente

Respuestas:

8

Desde 9.3, puede hacer esto usando \ gset en psqlrc:

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

O bien, como " el valor de la variable de solicitud seleccionada se imprime literalmente, excepto cuando se encuentra un signo de porcentaje (%) ":

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

Si su versión es <9.3, todavía es posible, pero mucho más fea , por ejemplo, algo como:

\set PROMPT1 `psql postgres postgres -Atc "select split_part(version(),' ',2)"`
Jack dice que intente topanswers.xyz
fuente