Re: GUC values - recommended way to declare the C variables?

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Smith <smithpb2250@gmail.com>, Nathan Bossart <nathandbossart@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-10-14T03:56:13Z
Lists: pgsql-hackers
On Thu, Oct 13, 2022 at 11:14:57PM -0400, Tom Lane wrote:
> Could we fix the out-of-sync risk by having InitializeGUCOptions insist
> that the pre-existing value of the variable match what is in guc_tables.c?
> That may not work for string values but I think we could insist on it
> for other GUC data types.  For strings, maybe the rule could be "the
> old value must be NULL or strcmp-equal to the boot_val".

pg_strcasecmp()'d would be more flexible here?  Sometimes the
character casing on the values is not entirely consistent, but no
objections to use something stricter, either.
--
Michael

Commits

  1. Add check on initial and boot values when loading GUCs

  2. Clean up some inconsistencies with GUC declarations

  3. Clean up some GUC declarations and comments