On Sun, Jan 12, 2014 at 5:26 AM, Bruce Momjian <br...@momjian.us> wrote:
> On Sat, Jan 11, 2014 at 12:48:51PM -0800, Adrian Klaver wrote: > > >pg_upgrade looks in the pg_tablespace in pre-9.2, and uses a function in > > >9.2+. The query is: > > > > > > snprintf(query, sizeof(query), > > > "SELECT %s " > > > "FROM pg_catalog.pg_tablespace " > > > "WHERE spcname != 'pg_default' AND " > > > " spcname != 'pg_global'", > > > /* 9.2 removed the spclocation column */ > > > (GET_MAJOR_VERSION(old_cluster.major_version) <= 901) ? > > >--> "spclocation" : "pg_catalog.pg_tablespace_location(oid) AS > spclocation"); > > > > > > 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. > If you mean PostgreSQL internally then no, we didn't use pg_tablespace for anything ever. We only used the symlinks. Which is why it was so easy to remove. If you were using it for something inside pg_upgrade I don't know, but the backend didn't. -- Magnus Hagander Me: http://www.hagander.net/ Work: http://www.redpill-linpro.com/