On Wed, 3 Jul 2024 at 16:30, Nathan Bossart <nathandbossart@gmail.com> wrote:
> IME these sorts of GUC hooks that depend on the value of other GUCs tend to
> be quite fragile. This one might be okay because wal_level defaults to
> 'replica' and because there is an additional check in postmaster.c, but
> that at least deserves a comment.
Yeah, this hook only works because wal_level isn't PGC_SIGHUP and
indeed because there's a check in postmaster.c. It now depends on the
ordering of these values in your config which place causes the error
message on startup.
This hits the already existing check:
summarize_wal = 'true'
wal_sumarizer = 'minimal'
This hits the new check:
summarize_wal = 'true'
wal_sumarizer = 'minimal'
And actually this would throw an error from the new check even though
the config is fine:
wal_sumarizer = 'minimal'
summarize_wal = 'true'
wal_sumarizer = 'logical'
> This sort of thing comes up enough that perhaps we should add a
> better-supported way to deal with GUCs that depend on each other...
+1. Sounds like we need a global GUC consistency check