> Vadim Mikheev <vadim@krs.ru> writes:
> > Tom Lane wrote:
> >> Another thing that struck me while looking at the update code is that
> >> an update deletes the old tuple value, then inserts the new value,
> >> but it doesn't bother to delete any old index entries pointing at the
> >> old tuple. ISTM that after a while, there are going to be a lot of old
> >> index entries pointing at dead tuples ... or, perhaps, at *some other*
> >> live tuple, if the space the dead tuple occupied has been reused for
> >> something else.
>
> > Vacuum deletes index tuples before deleting heap ones...
>
> Right, but until you've done a vacuum, what's stopping the code from
> returning wrong tuples? I assume this stuff actually works, I just
> couldn't see where the dead index entries get rejected.
>
> regards, tom lane
>
Without checking the code, I suspect that dead rows are visible though the
index (they had to be to make time travel work), but do not match the time
qual so are not "seen".
-dg
David Gould dg@illustra.com 510.628.3783 or 510.305.9468
Informix Software (No, really) 300 Lakeside Drive Oakland, CA 94612
- If simplicity worked, the world would be overrun with insects. -