Martijn van Oosterhout wrote:
On Tue, Jul 03, 2007 at 12:05:07PM +0100, Heikki Linnakangas wrote:
This is actually a bit of a problem. We would need to know when we
read in a page what the tupledescriptor for that relation looks like
to know which fields are varlena. I'm not sure how easy it would be
to arrange for the tuple descriptor to be passed down that far.
Speaking of on-the-fly upgrading, ReadBuffer is already passed the Relation, which contains the TupleDesc, so I don't think that's a problem. Not sure how easy that would be to do in an external program like pg_migrator.


My reading of this thread so far is that we're intending to upgrade
pages on the fly? Which means that at any point in time, some pages
will be converted and some not, so the tuple descriptor isn't going to
help, surely you need some identifier on the page telling you if it's
upgraded or not?

Currently there is page layout version number. But this information is not useful for conversion from 8.1 or 8.2, because both version has same number, but some datatypes (inet/cidr) have different storage format.

Small discussion about page version is there

http://archives.postgresql.org/pgsql-hackers/2007-06/msg00745.php

The page identification is one thing what must been improved.

                
                Zdenek

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to