Bruce Momjian wrote:
>
> > Bruce Momjian wrote:
> >
> > > The symlink solution where the actual symlink location is not stored
> > > in the database is certainly abstract. We store that info in the file
> > > system, which is where it belongs. We only query the symlink location
> > > when we need it for database location dumping.
> >
> > how would that work? would pg_dump dump the tablespace locations or not?
> >
>
> pg_dump would recreate a CREATE TABLESPACE command:
>
> printf("CREATE TABLESPACE %s USING %s", loc, symloc);
>
> where symloc would be SELECT symloc(loc) and return the value into a
> variable that is used by pg_dump. The backend would do the lstat() and
> return the value to the client.
I'm wondering if pg_dump should store the location of the tablespace. If
your machine dies, you get a new machine to re-create the database, you
may not want the tablespace in the same spot. And text-editing a
gigabyte file would be extremely painful.