Re: [HACKERS] Bogus "Non-functional update" notices - Mailing list pgsql-hackers

From dg@illustra.com (David Gould)
Subject Re: [HACKERS] Bogus "Non-functional update" notices
Date
Msg-id 9807291605.AA03368@hawk.illustra.com
Whole thread Raw
In response to Re: [HACKERS] Bogus "Non-functional update" notices  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
> 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. -

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [HACKERS] Problem with CVS access to current sources
Next
From: dg@illustra.com (David Gould)
Date:
Subject: Re: [HACKERS] Informix on Linux