Re: Add Information during standby recovery conflicts
Kyotaro Horiguchi <horikyota.ntt@gmail.com>
From: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
To: masahiko.sawada@2ndquadrant.com
Cc: alvherre@alvh.no-ip.org, bdrouvot@amazon.com,
pgsql-hackers@postgresql.org
Date: 2020-10-15T05:52:10Z
Lists: pgsql-hackers
At Thu, 15 Oct 2020 14:28:57 +0900, Masahiko Sawada <masahiko.sawada@2ndquadrant.com> wrote in
> > ereport(..(errmsg("%s", _("hogehoge")))) results in
> > fprintf((translated("%s")), translate("hogehoge")).
> >
> > So your change (errmsg("%s", gettext_noop("hogehoge")) results in
> >
> > fprintf((translated("%s")), DONT_translate("hogehoge")).
> >
> > which leads to a translation problem.
> >
> > (errmsg(gettext_noop("hogehoge"))
>
> This seems equivalent to (errmsg("hogehoge")), right?
Yes and no. However eventually the two works the same way,
"(errmsg(gettext_noop("hogehoge"))" is a shorthand of
1: char *msg = gettext_noop("hogehoge");
...
2: .. (errmsg(msg));
That is, the line 1 only registers a message id "hogehoge" and doesn't
translate. The line 2 tries to translate the content of msg and it
finds the translation for the message id "hogehoge".
> I think I could understand translation stuff. Given we only report the
> const string returned from get_recovery_conflict_desc() without
> placeholders, the patch needs to use errmsg_internal() instead while
> not changing _() part. (errmsg(get_recovery_conflict_desc())) is not
> good (warned by -Wformat-security).
Ah, right. we get a complain if no value parameters added. We can
silence it by adding a dummy parameter to errmsg, but I'm not sure
which is preferable.
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center
Commits
-
Log long wait time on recovery conflict when it's resolved.
- 39b03690b529 14.0 landed
-
Add GUC to log long wait times on recovery conflicts.
- 0650ff23038b 14.0 landed
-
Detect the deadlocks between backends and the startup process.
- 8900b5a9d59a 14.0 cited
-
Get rid of the dedicated latch for signaling the startup process.
- ac22929a2613 14.0 cited
-
Add block information in error context of WAL REDO apply loop
- 9d0bd95fa90a 14.0 cited