From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | "Hiroshi Inoue" <Inoue(at)tpf(dot)co(dot)jp> |
Cc: | "Bruce Momjian" <maillist(at)candle(dot)pha(dot)pa(dot)us>, "PostgreSQL-development" <pgsql-hackers(at)postgresql(dot)org>, "Ross J(dot) Reedstrom" <reedstrm(at)rice(dot)edu> |
Subject: | Re: Big 7.1 open items |
Date: | 2000-06-16 01:57:27 |
Message-ID: | 2727.961120647@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
"Hiroshi Inoue" <Inoue(at)tpf(dot)co(dot)jp> writes:
> Now I like neither relname nor oid because it's not sufficient
> for my purpose.
We should probably not do much of anything with this issue until
we have a clearer understanding of what we want to do about
tablespaces and schemas.
My gut feeling is that we will end up with pathnames that look
something like
.../data/base/DBNAME/TABLESPACE/OIDOFRELATION
(with .N attached if a segment of a large relation, of course).
The TABLESPACE "name" should likely be an OID itself, but it wouldn't
have to be if you are willing to say that tablespaces aren't renamable.
(Come to think of it, does anyone care about being able to rename
databases? ;-)) Note that the TABLESPACE will often be a symlink
to storage on another drive, rather than a plain subdirectory of the
DBNAME, but that shouldn't be an issue at this level of discussion.
I think that schemas probably don't enter into this. We should instead
rely on the uniqueness of OIDs to prevent filename collisions. However,
OIDs aren't really unique: different databases in an installation will
use the same OIDs for their system tables. My feeling is that we can
live with a restriction like "you can't store the system tables of
different databases in the same tablespace". Alternatively we could
avoid that issue by inverting the pathname order:
.../data/base/TABLESPACE/DBNAME/OIDOFRELATION
Note that in any case, system tables will have to live in a
predetermined tablespace, since you can't very well look in pg_class
to find out which tablespace pg_class lives in. Perhaps we should
just reserve a tablespace per database for system tables and forget
the whole issue. If we do that, there's not really any need for
the database in the path! Just
.../data/base/TABLESPACE/OIDOFRELATION
would do fine and help reduce lookup overhead.
BTW, schemas do make things interesting for the other camp:
is it possible for the same table to be referenced by different
names in different schemas? If so, just how useful is it to pick
one of those names arbitrarily for the filename? This is an advanced
version of the main objection to using the original relname and not
updating it at RENAME TABLE --- sooner or later, the filenames are
going to be more confusing than helpful.
Comments? Have I missed something important about schemas?
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2000-06-16 02:05:16 | Re: 7.0.2 cuts off attribute name |
Previous Message | Haroldo Stenger | 2000-06-16 01:26:28 | Allow nested transactions |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2000-06-16 02:24:52 | Re: Big 7.1 open items |
Previous Message | Hiroshi Inoue | 2000-06-16 00:28:14 | RE: Big 7.1 open items |