"Hiroshi Inoue" <Inoue@tpf.co.jp> writes:
> Why do we have to have system tables per *database* ?
> Is there anything wrong with global system tables ?
> And how about adding dbid to pg_class,pg_proc etc ?
We could, but I think I'd vote against it on two grounds:
1. Reliability. If something corrupts pg_class, do you want to
lose your whole installation, or just one database?
2. Increased locking overhead/loss of concurrency. Currently, there
is very little lock contention between backends running in different
databases. A shared pg_class will be a single point of locking (as
well as a single point of failure) for the whole installation.
It would solve the DROP DATABASE problem kind of nicely, but really
it'd just be downgrading DROP DATABASE to a DROP SCHEMA operation...
regards, tom lane