Minor GUC code refactoring.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 27 Jan 2023 17:13:41 +0000 (12:13 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 27 Jan 2023 17:13:41 +0000 (12:13 -0500)
commite4e89eb5bbfdae30349b38344e9c604411174f6b
treef741187c9df9ae219ab978481803fe0efd8b809d
parenta1c4cd6f2c8857fbb78d043a0b3c7d397e48ef2e
Minor GUC code refactoring.

Split out "ConfigOptionIsVisible" to perform the privilege
check for GUC_SUPERUSER_ONLY GUCs (which these days can also
be read by pg_read_all_settings role members), and move the
should-we-show-it checks from GetConfigOptionValues to its
sole caller.

This commit also removes get_explain_guc_options's check of
GUC_NO_SHOW_ALL, which seems to have got cargo-culted in there.
While there's no obvious use-case for marking a GUC both
GUC_EXPLAIN and GUC_NO_SHOW_ALL, if it were set up that way
one would expect EXPLAIN to show it --- if that's not what
you want, then don't set GUC_EXPLAIN.

In passing, simplify the loop logic in show_all_settings.

Nitin Jadhav, Bharath Rupireddy, Tom Lane

Discussion: https://postgr.es/m/CAMm1aWYgfekpRK-Jz5=pM_bV+Om=ktGq1vxTZ_dr1Z6MV-qokA@mail.gmail.com
src/backend/utils/misc/guc.c
src/backend/utils/misc/guc_funcs.c
src/include/utils/guc_tables.h