Zdenek Kotala wrote:
> Heikki Linnakangas napsal(a):
>> Perhaps we should just add the new attid attribute to the toast table,
>> but mark it as nullable? We wouldn't need to fill it in in the
>> 8.3->8.4 conversion but new tuples would include it.
> >
>> In the future release that we actually need it, we'll make it
>> non-nullable, and write a pre-upgrade script to retoast tuples that
>> don't have it yet.
>
> Hmm, It seems to me as a good idea. It will complicated preupgrade
> script for 8.4->8.5 script but we will have one year to developed it :-).
>
> What we need to do is during conversion to add nullbit array for each
> tuple in toasttable. I think there is enough space on all platform to
> reuse gap between tuple header and data.
It the new attribute is added to the end, the old tuples will be
compatible as is. If there's no null bitmap (or it's shorter than
expectd), attributes missing from a tuple are implicitly NULL. That's
how we support ALTER TABLE ADD COLUMN without rewriting all the data.
-- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com