Robert Haas <robertmhaas@gmail.com> writes:
> rhaas=# create table pg_catalog.tom (a int);
> ERROR: permission denied to create "pg_catalog.tom"
> The offending error check is in heap_create(), and based on what
> you're saying here it seems like we should just rip it out.
Hmm. Yeah, it seems like the regular permissions tests on the schemas
in question should be enough to keep Joe User from making tables there,
and I do not see a reason why the backend would care if there are
non-catalog tables laying about in pg_catalog.
Checking the commit history, it seems this was originally a test to
prevent people from creating tables named "pg_xxx":
http://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=9999f5a10e722c052006886b678995695001958a#patch3
which may or may not have been critical once upon a time, but surely is
not any more.
So no objection to removing that particular test.
regards, tom lane