On Fri, Oct 21, 2011 at 1:40 PM, Florian Pflug <fgp@phlo.org> wrote:
> AFAIR, the performance hit we'd take by making the vacuum cutoff point
> (i.e. GetOldestXmin()) global instead of database-local has been repeatedly
> used in the past as an against against cross-database queries. I have to
> admit that I currently cannot seem to find an entry in the archives to
> back that up, though.
I think the main argument against cross-database queries is that every
place in the backend that, for example, uses an OID to identify a
table would need to be modified to use a database OID and a table OID.Even if the distributed performance penalty of
sucha change doesn't
bother you, the amount of code churn that it would take to make such a
change is mind-boggling.
I haven't seen anyone explain why they really need this feature
anyway, and I think it's going in the wrong direction. IMHO, anyone
who wants to be doing cross-database queries should be using schemas
instead, and if that's not workable for some reason, then we should
improve the schema implementation until it becomes workable. I think
that the target use case for separate databases ought to be
multi-tenancy, but what is needed there is actually more isolation
(e.g. wrt/role names, cluster-wide visibility of pg_database contents,
etc.), not less.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company