Mark Dilger <[email protected]> writes:
> The patch already posted on this thread already works that way. Robert and
> Tom seemed to infer that all gucs need to be present in the catalog, but in
> fact, not entering them in the catalog simply means that they aren't
> grantable. I think the confusion arose from the fact that I created a
> mechanism for extension authors to enter additional gucs into the catalog,
> which gave the false impression that such entries were required. They are
> not. I didn't bother explaining that before, because Robert and Tom both
> seem to expect all gucs to be grantable, an expectation you do not appear to
> share.
The question is why you need pg_config_param at all, then.
AFAICS it just adds maintenance complexity we could do without.
I think we'd be better off with a catalog modeled on the design of
pg_db_role_setting, which would have entries for roles and lists
of GUC names that those roles could set.
BTW, another objection to pg_config_param as designed here is that
a "name" is not an appropriate way to store possibly-qualified
custom GUC names. It's not long enough (cf. valid_custom_variable_name).
>> To support pg_dump and pg_upgrade, it might be better to have an
>> enabled/disabled flag rather than to delete rows.
> I'm not really sure what this means.
I didn't see the point of this either. We really need to KISS here.
Every bit of added complexity in the catalog representation is another
opportunity for bugs-of-omission, not to mention a detail that you
have to provide mechanisms to dump and restore.
regards, tom lane