Tom Lane wrote:
> Dave Page <dpage@postgresql.org> writes:
>> Tom Lane wrote:
>>> The actual prohibition is on inserting a new pg_class row, which Dave's
>>> command is trying to do because he's trying to create a composite type.
>
>> If thats the case, then there's another inconsistency as I can insert a
>> pg_class row manually without any problems:
>
> Right, that's the end of it that's protected by rolcatupdate. The
> check that is firing on you is in heap_create(), which is invoked
> for composite types.
>
> The whole allow_system_table_mods mechanism dates from Berkeley days,
> and I guess you could argue that we might not need it anymore given
> the improvements since then in ACL enforcement. I'm not in a big
> hurry to rip it out though. Not being allowed to TRUNCATE pg_class
> seems like a Good Thing to me.
Well, yeah, that does seem like a good foot-guard. Perhaps if/when we
get a separate truncate privilege would be a more appropriate time to
look at cleaning it up.
Regards, Dave.