Re: GUC names in messages

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Michael Paquier <michael@paquier.xyz>
Cc: Peter Smith <smithpb2250@gmail.com>, Nathan Bossart <nathandbossart@gmail.com>, Laurenz Albe <laurenz.albe@cybertec.at>, Peter Eisentraut <peter@eisentraut.org>, Tom Lane <tgl@sss.pgh.pa.us>, Daniel Gustafsson <daniel@yesql.se>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2023-11-24T09:53:40Z
Lists: pgsql-hackers
On 2023-Nov-24, Michael Paquier wrote:

> On Thu, Nov 23, 2023 at 06:27:04PM +1100, Peter Smith wrote:
> > There may be some changes I've missed, but hopefully, this is a nudge
> > in the right direction.
> 
> Thanks for spending some time on that.

+1

>     <para>
> +    In messages containing configuration variable names, do not include quotes
> +    when the names are visibly not English natural words, such as when they
> +    have underscores or are all-uppercase or have mixed case. Otherwise, quotes
> +    must be added.  Do include quotes in a message where an arbitrary variable
> +    name is to be expanded.
> +   </para>
> 
> That seems to describe clearly the consensus reached on the thread
> (quotes for GUCs that are single terms, no quotes for names that are
> obviously parameters).

Yeah, this is pretty much the patch I proposed earlier.

> In terms of messages that have predictible names, 0002 moves in the
> needle in the right direction.  There seem to be more:
> src/backend/postmaster/bgworker.c:  errhint("Consider increasing the
> configuration parameter \"max_worker_processes\".")));
> contrib/pg_prewarm/autoprewarm.c:  errhint("Consider increasing
> configuration parameter \"max_worker_processes\".")));

Yeah.  Also, these could be changed to have the GUC name outside the
message proper, which would reduce the total number of messages.  (But
care must be given to the word "the" there.)

> Things like parse_and_validate_value() and set_config_option_ext()
> include log strings about GUC and these use quotes.  Could these areas
> be made smarter with a routine to check if quotes are applied
> automatically when we have a "simple" GUC name, aka I guess made of
> only lower-case characters?  This could be done with a islower() on
> the string name, for instance.

I think we could leave these improvements for a second round.  They
don't need to hold back the improvement we already have.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
"You're _really_ hosed if the person doing the hiring doesn't understand
relational systems: you end up with a whole raft of programmers, none of
whom has had a Date with the clue stick."              (Andrew Sullivan)
https://postgr.es/m/20050809113420.GD2768@phlogiston.dyndns.org



Commits

  1. Apply GUC name from central table in more places of guc.c

  2. Use camel case for "DateStyle" in some error messages

  3. Unify some error messages to ease work of translators

  4. Apply more quoting to GUC names in messages

  5. Revise GUC names quoting in messages again

  6. doc: Mention how to use quotes with GUC names in error messages

  7. Apply quotes more consistently to GUC names in logs