Как отобразить версию Postgres в pompt CLI?

8

Я хочу отобразить версию сервера, к которому я подключен, в командной строке (консоли) интерфейса. Из того, что я прочитал в документации, можно выполнить команду оболочки, можно отобразить значение переменной psql.

Идея состоит в том, чтобы получить информацию о версии сервера при подключении и использовать ее в приглашении клиента. Как я могу (в .psqlrcфайле?) Назначить версию сервера в переменной psql?

Изменить: Джек Дуглас ♦ имеет правильный ответ, указывая на \gsetфункцию. Это закончилось с

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

Спасибо.

Greg
источник

Ответы:

8

Начиная с 9.3, вы можете сделать это, используя \ gset в psqlrc:

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

Или, поскольку « значение выбранной переменной приглашения печатается буквально, за исключением случаев, когда встречается знак процента (%) »:

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

Если ваша версия <9.3, это все еще возможно, но намного уродливее , например что-то вроде:

\set PROMPT1 `psql postgres postgres -Atc "select split_part(version(),' ',2)"`
Джек говорит, попробуйте topanswers.xyz
источник