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.
regards, tom lane