Heikki Linnakangas napsal(a):
Zdenek Kotala wrote:
Heikki Linnakangas napsal(a):
Besides, the "read all formats" approach wouldn't really avoid it either. If you passed a toasted datum to a function, when the function needs to detoast it, detoast_datum still wouldn't know whether the datum is in old or new format. You'd still need to detoast all values in the tuple somewhere before they could be passed around.

If you look into pg_upgrade prototype patch I added page version information into HeapTupleData structure. It keeps information about format. All chunked data are stored on a pages with same page versions. I think these two things are enough to have all necessary information.

Functions are passed just a Datum, not HeapTupleData.


But executor works with HeapTupleData structure and it should convert it to the new format before it passes it to function. My idea is to convert tuple in ExecTupleStore or invent new node special for tuple conversion.

I expect that function cannot get toast pointer. It can get only detoasted attributes. Correct me if I'm wrong.
                
                Zdenek

--
Zdenek Kotala              Sun Microsystems
Prague, Czech Republic     http://sun.com/postgresql


--
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