Re: GUC names in messages

From: Daniel Gustafsson <daniel(at)yesql(dot)se>
To: Peter Smith <smithpb2250(at)gmail(dot)com>
Cc: PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: GUC names in messages
Date: 2023-11-01 09:59:21
Message-ID: 2CCB9293-BB93-44DC-8B6E-4C1D163C625B@yesql.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On 1 Nov 2023, at 10:22, Peter Smith <smithpb2250(at)gmail(dot)com> wrote:
>
> On Wed, Nov 1, 2023 at 8:02 PM Peter Smith <smithpb2250(at)gmail(dot)com> wrote:
> ...
>>
>> I had intended to make a patch to address the inconsistency, but
>> couldn't decide which of those styles was the preferred one.
>>
>> Then I worried this could be the tip of the iceberg -- GUC names occur
>> in many other error messages where they are sometimes quoted and
>> sometimes not quoted:
>> e.g. Not quoted -- errhint("You might need to run fewer transactions
>> at a time or increase max_connections.")));
>> e.g. Quoted -- errmsg("\"max_wal_size\" must be at least twice
>> \"wal_segment_size\"")));
>>
>> Ideally, they should all look the same everywhere, shouldn't they?
>>
>
> One idea to achieve consistency might be to always substitute GUC
> names using a macro.
>
> #define GUC_NAME(s) ("\"" s "\"")
>
> ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
> errmsg("%s must be at least twice %s",
> GUC_NAME("max_wal_size"),
> GUC_NAME("wal_segment_size"))));

Something like this might make translations harder since the remaining string
leaves little context about the message. We already have that today to some
extent (so it might not be an issue), and it might be doable to automatically
add translator comments, but it's something to consider.

--
Daniel Gustafsson

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Aleksander Alekseev 2023-11-01 09:59:49 Re: "38.10.10. Shared Memory and LWLocks" may require a clarification
Previous Message Xing Guo 2023-11-01 09:25:42 Don't pass NULL pointer to strcmp().