Re: pg_upgrade: How to deal with toast - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: pg_upgrade: How to deal with toast
Date
Msg-id 49253DD2.2080004@enterprisedb.com
Whole thread Raw
In response to Re: pg_upgrade: How to deal with toast  (Zdenek Kotala <Zdenek.Kotala@Sun.COM>)
Responses Re: pg_upgrade: How to deal with toast  (Zdenek Kotala <Zdenek.Kotala@Sun.COM>)
List pgsql-hackers
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


pgsql-hackers by date:

Previous
From: Zdenek Kotala
Date:
Subject: Re: pg_upgrade: How to deal with toast
Next
From: Heikki Linnakangas
Date:
Subject: Re: Transactions and temp tables