Re: GUC flags

Justin Pryzby <pryzby@telsasoft.com>

From: Justin Pryzby <pryzby@telsasoft.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, Kyotaro Horiguchi <horikyota.ntt@gmail.com>, pgsql-hackers@lists.postgresql.org, bruce@momjian.us, tgl@sss.pgh.pa.us
Date: 2022-01-26T03:44:26Z
Lists: pgsql-hackers
On Wed, Jan 26, 2022 at 09:54:43AM +0900, Michael Paquier wrote:
> On Tue, Jan 25, 2022 at 12:07:51PM -0600, Justin Pryzby wrote:
> > On Tue, Jan 25, 2022 at 11:47:14AM +0100, Peter Eisentraut wrote:
> >> Does this stuff have any value for users?  I'm worried we are exposing a
> >> bunch of stuff that is really just for internal purposes.  Like, what value
> >> does showing "not_in_sample" have?  On the other hand, "guc_explain" might
> >> be genuinely useful, since that is part of a user-facing feature.  (I don't
> >> like the "guc_*" naming though.)
> 
> EXPLAIN is useful to know which parameter could be part of an explain
> query, as that's not an information provided now, even if the category
> provides a hint.  COMPUTED is also useful for the purpose of postgres
> -C in my opinion.

It seems like an arbitrary and short-sighted policy to expose a handful of
flags in the view for the purpose of retiring ./check_guc, but not expose other
flags, because we thought we knew that no user could ever want them.

We should either expose all the flags, or should put them into an undocumented
function.  Otherwise, how would we document the flags argument ?  "Shows some
of the flags" ?  An undocumented function avoids this issue.

Should I update the patch to put the function back ?
Should I also make the function expose all of the flags ?

-- 
Justin



Commits

  1. Add TAP test to automate the equivalent of check_guc, take two

  2. Retire src/backend/utils/misc/check_guc

  3. Add TAP test to automate the equivalent of check_guc

  4. Add PostgreSQL::Test::Cluster::config_data()

  5. Introduce pg_settings_get_flags() to find flags associated to a GUC

  6. Revert changes about warnings/errors for placeholders.

  7. Improve the description of various GUCs