Leonardo F wrote: > static void > writetup_rawheap(Tuplesortstate *state, int tapenum, SortTuple *stup) > { > HeapTuple tuple = (HeapTuple) stup->tuple;
I think you're confusing HeapTuple and HeapTupleHeader. SortTuple->tuple field should point to a HeapTupleHeader, not a HeapTuple. The right mental model is that HeapTupleHeader is a physical tuple, one that you store on disk for example. A HeapTuple is an in-memory wrapper, or pointer if you will, to a HeapTupleHeader, and holds some additional information on the tuple that's useful when operating on it. To add to the confusion, MinimalTuple is a shortened counterpart of HeapTuple*Header*, not HeapTuple. And SortTuple is an in-memory wrapper similar to HeapTuple, containing additional information on the tuple that helps with sorting. I didn't look at the rest of the code in detail, but I think that's where your problems are stemming from. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers