Re: What does Page Layout version mean? (Was: Re: Reducing NUMERIC size for 8.3) - Mailing list pgsql-hackers

From Tom Lane
Subject Re: What does Page Layout version mean? (Was: Re: Reducing NUMERIC size for 8.3)
Date
Msg-id 2012.1182450676@sss.pgh.pa.us
Whole thread Raw
In response to Re: What does Page Layout version mean? (Was: Re: Reducing NUMERIC size for 8.3)  (Heikki Linnakangas <heikki@enterprisedb.com>)
Responses Re: What does Page Layout version mean? (Was: Re: Reducing NUMERIC size for 8.3)  (Josh Berkus <josh@agliodbs.com>)
List pgsql-hackers
Heikki Linnakangas <heikki@enterprisedb.com> writes:
> * Page format changes that grow data size are problematic, because there 
> can be pages that can't be expanded to the new format because there's 
> not enough space. However, it would be possible to write a pre-upgrade 
> program to look for the problematic pages, and do a dummy UPDATE on some 
> tuples to move them away from such pages, to make room. The pre-upgrade 
> program could be run while the old database is still up, so it doesn't 
> cause downtime.

That sounds good, but there are corner cases where it wouldn't work ---
consider a page containing a single maximum-length tuple.

In general I don't see us accepting changes that would increase data
size, but there's at least one troubling exception on the horizon:
per-column or per-value locale support.  Another problem is that a strict
rule of "no data size increase ever" might forbid acceptance of changes
that achieve average space savings at the cost of increasing the size of
some lesser-used cases.

In short, this point seems to need more thought.
        regards, tom lane


pgsql-hackers by date:

Previous
From: Darcy Buskermolen
Date:
Subject: Re: GUC time unit spelling a bit inconsistent
Next
From: Hannu Krosing
Date:
Subject: Re: tsearch in core patch