On Tue, Apr 10, 2012 at 09:19:05PM -0400, Tom Lane wrote:
> Robert Haas <robertmhaas@gmail.com> writes:
> > On Tue, Apr 10, 2012 at 7:57 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >> If we expect this function to mainly be applied to pg_class.reltablespace,
> >> then it seems like it ought to understand that zero means "the database
> >> default" and substitute the database's default tablespace. That might
> >> or might not be the same as the cluster default.
> >>
> >> Alternatively, we could expect pg_upgrade to understand that and make
> >> the substitution itself, but if the same would be needed by most uses of
> >> the function, maybe we should just do it here.
>
> > +1 for doing it in the function. I think that will improve
> > ease-of-use and give up nothing.
>
> I'm inclined to agree. It won't help pg_upgrade, but that's because
> the query pg_upgrade is using is constrained by backwards-compatibility
> considerations: it's *necessary* to join to pg_tablespace if you want
> any location details pre-9.2. But as of 9.2 it's plausible to consider
> applying this function directly to pg_class.reltablespace, so we should
> make it behave sanely for that use-case.
>
> I think it's probably about a two-line change, will research and
> apply if so.
Agreed, thanks.
-- Bruce Momjian <bruce@momjian.us> http://momjian.us EnterpriseDB
http://enterprisedb.com
+ It's impossible for everything to be true. +