On Sat, Jan 15, 2005 at 04:00:19PM -0500, Tom Lane wrote:
> Martijn van Oosterhout <kleptog@svana.org> writes:
> > On Sat, Jan 15, 2005 at 07:10:48PM +0100, Bo Lorentsen wrote:
> >> Hmm, so a data row update also update the CTID in all indexes, too. I=20
> >> see what you mean !
> 
> > Not quite, a single index entry needs to point to any number of rows,
> > which may or may not be visible depending on your transaction, so they
> > form a sort of linked list.
> 
> No, an index entry contains just one CTID.  An update makes a new
> version of the row (stored at a new CTID location) and also makes new
> index entries pointing at that CTID.  In the general case this must be
> so, since the new version might well contain different values for the
> indexed fields; but we do not try to optimize the case where the indexed
> field didn't change.

Out of curiosity, what clears out the old index tuples? Vacuum?
-- 
Jim C. Nasby, Database Consultant               [EMAIL PROTECTED] 
Give your computer some brain candy! www.distributed.net Team #1828

Windows: "Where do you want to go today?"
Linux: "Where do you want to go tomorrow?"
FreeBSD: "Are you guys coming, or what?"

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to