On 2013-05-10 07:25:35 -0400, Bruce Momjian wrote:
> On Thu, May  9, 2013 at 06:19:31PM -0400, Bruce Momjian wrote:
> > > pg_upgrade already deals with the new code deciding not to create a
> > > toast table (by forcing it to do so anyway in binary upgrade mode).
> > 
> > Yes, a good point I had forgotten.  postgres --binary-upgrade mode can
> > force the toast table to be created to match the old cluster;  see
> > toasting.c::create_toast_table():
> > 
> >     /*
> >      * Check to see whether the table actually needs a TOAST table.
> >      *
> >      * If an update-in-place toast relfilenode is specified, force toast 
> > file
> >      * creation even if it seems not to need one.
> >      */
> >     if (!needs_toast_table(rel) &&
> >         (!IsBinaryUpgrade ||
> >          !OidIsValid(binary_upgrade_next_toast_pg_class_oid)))
> >         return false;
> > 
> > > It's only the other case that's problematic -- but then AFAICS fixing
> > > that is just a SMOP.
> > 
> > Yes, it is this opposite case where the _new_ cluster wants a TOAST
> > table that the old cluster doesn't have, which is what Evan is
> > reporting.
> 
> So, if we eventually agree we need to be able to _suppress_ creation of
> the TOAST table on the new cluster, I propose we do it in a similar way
> to how we force TOAST creation, by having pg_dump set a backend variable
> that is then tested in the backend to suppress TOAST table creation.

I don't think disregarding the new clusters ideas about the requirement
of a toast table is a good idea; far too likely to cause problems in the
future.
So if there is a valid case where this can happen - which I am far from
sure from what I skimmed so far - we need a) a way to get a toast oid
that doesn't conflict with any of the oids in the old cluster b)
pg_upgrade then needs to accept that the new cluster might have more
toast rels than the old version.

> I don't think we know enough about the cause of this pg_upgrade failure
> to know if this is necessary.

True.

Greetings,

Andres Freund

-- 
 Andres Freund                     http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to