On Wed, 3 Jul 2024 at 16:30, Nathan Bossart <nathandboss...@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