Gavin Sherry <swm@linuxworld.com.au> writes:
> Is it really that bad? NamespaceCreate() could just touch a file at
> pg_tablespaces/<tablespaceoid>/<MyDatabaseId>/<namespace oid> and
> RemoveSchema() could remove it.
No, because that wouldn't be rollback-safe. You'd have to make the
placeholder file act enough like a real relation that the smgr
delete-at-commit-or-abort mechanisms could handle it. So then you
have to buy into not having its name actually collide with any real
relations, which is where I started feeling like I didn't want to
pursue that solution.
This is certainly doable in theory, it just seems like much more
complexity than the problem is worth ...
regards, tom lane