Re: display hot standby state in psql prompt
Fujii Masao <masao.fujii@gmail.com>
From: Fujii Masao <masao.fujii@gmail.com>
To: Jim Jones <jim.jones@uni-muenster.de>
Cc: Srinath Reddy Sadipiralla <srinath2133@gmail.com>,
Greg Sabino Mullane <htamfids@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-10-27T03:32:10Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
psql: Add %i prompt escape to indicate hot standby status.
- dddbbc253b92 19 (unreleased) landed
-
Mark search_path as GUC_REPORT
- 28a1121fd912 18.0 cited
On Sat, Oct 25, 2025 at 1:13 AM Jim Jones <jim.jones@uni-muenster.de> wrote: > > > > On 24/10/2025 17:21, Fujii Masao wrote: > > + const char *hs = PQparameterStatus(pset.db, "in_hot_standby"); > > + const char *ro = PQparameterStatus(pset.db, "default_transaction_read_only"); > > > > When either hs or ro is NULL, the displayed status can be incorrect. > > For example, connecting to a standby server running PostgreSQL 10 > > incorrectly shows "read/write". In such cases, wouldn't it be clearer > > to display something like "unknown", similar to how the "Hot Standby" > > column in \conninfo reports "unknown"? > > Oh, it didn't occur to me to test this edge case. Thanks for the hint! > > Would this be what you have in mind? Yes, thanks for working on this! > if (!hs || !ro) > strlcpy(buf, "unknown", sizeof(buf)); > else if ((hs && strcmp(hs, "on") == 0) || > (ro && strcmp(ro, "on") == 0)) I think the "hs &&" and "ro &&" checks are no longer needed, since we've already confirmed they're not NULL at that point. Also, should "unknown" be marked for translation, as in the \conninfo code? I'm not sure whether showing a translated string in the psql prompt is desirable, though. Regards, -- Fujii Masao