> > On 6/25/2006 10:12 PM, Bruce Momjian wrote: > > >When you are using the update chaining, you can't mark that index row > > >as dead because it actually points to more than one row on the page, > > >some are non-visible, some are visible. > > > > Back up the truck ... you mean in the current code base we have heap
> > tuples that are visible in index scans because of heap tuple chaining > > but without index tuples pointing directly at them? > > I don't know where this idea came from, but it's not true. > All heap tuples, dead or otherwise, have index entries. When using CITC you would be "reusing" the index tuples from the current heap tuple, so you can only reuse free space or a dead member of a CITC chain. You cannot reuse a dead tuple not member of a CITC chain because that has separate (invalid) index tuples pointing at it. Part of the trick was moving slots (==ctid) around, so I still do not really see how you can represent the CITC chain as part of the update chain. Unless you intend to break dead parts of the update chain ? Maybe that is ok ? Andreas ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster