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