> On Nov 17, 2021, at 5:32 AM, Robert Haas <robertmh...@gmail.com> wrote:
> 
>> I was aware of that, but figured not all GUCs have to be grantable.  If it 
>> doesn't fit in a NameData, you can't grant on it.
> 
> Such restrictions are rather counterintuitive for users, and here it
> doesn't even buy anything. Using 'text' rather than 'name' as the data
> type isn't going to cost any meaningful amount of performance.

That sounds fine.

>> If we want to be more accommodating than that, we can store it as text, just 
>> like pg_db_role_names does, but then we need more code complexity to look it 
>> up and to verify that it is unique.  (We wouldn't want multiple records for 
>> the same <role,guc> pair.)
> 
> If you're verifying that it's unique in any way other than using a
> unique index, I think you're doing it wrong.

No, I'm using a unique index.  I was overthinking it, concerned about changing 
from name_ops to text_ops and needing the toast table, but that's silly, 
because I need one for the acl anyway.

> Also, maybe I'm confused here, but why isn't the schema:
> 
> gucoid
> gucname
> gucacl

It is, both in v2 already posted, and in the v3, written but not yet posted, as 
I haven't finished the pg_dump work, and also I'm waiting to see how this 
discussion gets resolved before asking for a review of v3.

> IOW, I don't understand why this table has <role,guc> as the primary
> key rather than just guc.

I was responding to Tom's recommendation that I follow the pattern in 
pg_db_role_setting, and speculating how that would work.  I was not proposing 
to do it that way.

—
Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company





Reply via email to