Bagaimana cara menampilkan versi Postgres di CLI pompt?

8

Saya ingin menampilkan versi server yang saya sambungkan di command-line (console) interface prompt. Dari apa yang saya baca di dokumentasi, dimungkinkan untuk menjalankan perintah shell, dimungkinkan untuk menampilkan nilai variabel psql.

Idenya adalah untuk mendapatkan informasi versi server tentang koneksi dan menggunakannya di prompt klien. Bagaimana saya (dalam .psqlrcfile?) Dapat menetapkan versi server dalam variabel psql?

Sunting: Jack Douglas ♦ memiliki jawaban yang benar dengan menunjukkan \gsetfitur. Itu berakhir dengan

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

Terima kasih.

greg
sumber

Jawaban:

8

Sejak 9.3, Anda dapat melakukan ini menggunakan \ gset di psqlrc:

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

Atau, karena ' nilai variabel prompt yang dipilih dicetak secara literal, kecuali di mana tanda persen (%) ditemukan ':

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

Jika versi Anda <9.3, itu masih mungkin, tetapi jauh lebih jelek , misalnya sesuatu seperti:

\set PROMPT1 `psql postgres postgres -Atc "select split_part(version(),' ',2)"`
Jack mengatakan coba topanswers.xyz
sumber