On Sun, Jan 12, 2014 at 12:48:40PM -0500, Tom Lane wrote:
> Bruce Momjian <bruce@momjian.us> writes:
> > On Sat, Jan 11, 2014 at 12:48:51PM -0800, Adrian Klaver wrote:
> >> I see, though I have another question. If pg_tablespace and the
> >> symlinks can get out of sync, as you say below, why is pg_tablespace
> >> considered the authority? Or to put it another way, why not just
> >> look at the symlinks as in 9.2+?
>
> > Uh, good question. I think I used the system tables because they were
> > easier to access. I can't remember if we used the symlinks for some
> > things and pg_tablespace for other things in pre-9.2.
>
> Well, pre-9.2 pg_dumpall is going to make use of the pg_tablespace
> entries, because it has no other choice. We could conceivably teach
> pg_upgrade to look at the symlinks for itself, but we're not going
> to do that in pg_dumpall. Which means that the intermediate dump
> script would contain inconsistent location values anyway if the
> catalog entries are wrong. So I don't see any value in changing the
> quoted code in pg_upgrade.
OK, agreed.
> It does however seem reasonable for pg_upgrade to note whether any
> of the paths are prefixed by old PGDATA and warn about the risks
> involved.
Uh, the problem is that once you rename the old PGDATA, the
pg_tablespace contents no longer point to the current PGDATA. The
symlinks, if they used absolute paths, wouldn't point to the current
PGDATA either.
-- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB
http://enterprisedb.com
+ Everyone has their own god. +