Re: [PATCH] Add hints for invalid binary encoding names in encode/decode functions
Peter Eisentraut <peter@eisentraut.org>
From: Peter Eisentraut <peter@eisentraut.org>
To: Fujii Masao <masao.fujii@gmail.com>, Daniel Gustafsson <daniel@yesql.se>
Cc: Sugamoto Shinya <shinya34892@gmail.com>,
Nathan Bossart <nathandbossart@gmail.com>,
Masahiko Sawada <sawada.mshk@gmail.com>, Chao Li <li.evan.chao@gmail.com>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-11-19T13:56:59Z
Lists: pgsql-hackers
On 19.11.25 14:47, Fujii Masao wrote:
> On Wed, Nov 19, 2025 at 10:04 PM Daniel Gustafsson <daniel@yesql.se> wrote:
>>
>>> On 19 Nov 2025, at 14:01, Fujii Masao <masao.fujii@gmail.com> wrote:
>>
>>> You changed the HINT message to use format arguments,
>>> but I still think it's better to embed the values directly (e.g.,
>>> Valid encodings are "base64", "base64url", "escape", and "hex".)
>>> for consistency with similar HINT messages. If this message is
>>> used in many places a parameterized style would help translators,
>>> but that benefit doesn't apply here.
>>>
>>> Attached is an updated version of the patch. I switched
>>> the HINT message to the embedded form and updated the commit message.
>>> Barring any objections, I'm thinking to commit this.
>>
>> My intepreration was that this version was already objected to by Peter
>> upthread in c5c937dc-de8e-4284-be25-5d5eaf089d00@eisentraut.org. The point
>> there being that punctuation in lists is subject to translation.
>
> Yes, so I was thinking a message like "Valid encodings are %s" isn't acceptable
> since the punctuation included in the %s value is not translated. In contrast,
> a message like "Valid encodings are \"base64\", …" is fine because all
> punctuation
> is part of the translatable string itself, I thought.
My point was a different one. It is generally preferable to separate
translatable and untranslated things. So, as an example from elsewhere,
instead of
errhint("Use ALTER DOMAIN instead.");
it would be better to use
errhint("Use % instead.", "ALTER DOMAIN");
Similarly, here I would prefer something along the lines of
errhint("Valid values are \"%s\", \"%s\", and \"%s\".", "foo", "bar",
"baz");
So like it was done in patch v3 looks good to me.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add HINT listing valid encodings to encode() and decode() errors.
- 99780da72096 19 (unreleased) landed
-
Revise GUC names quoting in messages again
- 17974ec25946 17.0 cited
-
doc: Mention how to use quotes with GUC names in error messages
- a243569bf65c 17.0 cited
-
Adjust assorted hint messages that list all valid options.
- 5ac51c8c9e44 16.0 cited