On Mon, Aug 07, 2006 at 06:05:30AM -0400, Gregory Stark wrote:
> Tom Lane <[EMAIL PROTECTED]> writes:
> > I don't think there is very much hope of an in-place upgrade for
> > scenarios involving changes in contents of user tables.  In particular,
> > what of a change that requires more space than before, such as adding a
> > locale indicator to text fields?  There's no guarantee that the data on
> > an old page will still fit, and there's certainly no hope of something
> > operating at the xlog level being able to move tuples across pages ---
> > if nothing else, because it's not in a position to compute new index
> > entries.  I don't see this working for page-at-a-time updates even in a
> > full backend environment; again, indexes are the killer consideration.
> > I don't see how to get sane behavior from an index containing some
> > old-style entries and some new-style ones for a changed datatype.
> > 
> > As you mentioned, the scenarios that look practical for in-place upgrade
> > are the ones where only system catalog contents need to change.  We've
> > already discussed this (many times) and agreed that we could live with
> > restricting user-table changes to happen only once every few releases.
> What of having support in the backend for two heap formats in each version.
> That is, 8.3 would be able to support 8.2 heaps as well as 8.3. There could be
> a flag in pg_class indicating the heap format for that heap. Then you would be
> able to upgrade without rewriting all your tables and the only requirement is
> that sometime prior to the next upgrade you issue a per-table ALTER TABLE that
> involves rewriting the table such as CLUSTER or ALTER COLUMN TYPE USING.
> That still requires 2x space but only for a single table at a time which is
> much better than 2x space for the entire database. It also lets you schedule
> that job for some point in time when you can arrange to have the extra space.

Unless you make it so that the old-version pages get changed to the new
version on-the-fly as they get dirtied.

And please folks, yes, it's be insane to make the backend deal with more
than one old version at a time. I think it's perfectly acceptable to
tell folks that if they want to jump 4 major versions at once that
they'll have to do it some other way.
Jim C. Nasby, Sr. Engineering Consultant      [EMAIL PROTECTED]
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to