t_ctid chains

From: Paul Tillotson <spam1011(at)adelphia(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Subject: t_ctid chains
Date: 2005-08-18 22:41:47
Message-ID: 43050EAB.4050805@adelphia.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

(Prompted by nearby thread about VACUUM FULL bugs, but not having
anything to do with that properly speaking.)

Hackers,

For some time, I have wondered: what does postgres use "t_ctid chains"
for? It seems like it is useful to find the "newer" version of a
tuple. However, wouldn't that eventually get found anyway? A
sequential scan scans the whole table, and so it will find the new
tuple. Since indexes contain all tuples, so will an index scan.

I infer that the there must be some sort of optimization to make it
worth (a) using extra space in the disk pages and (b) causing the extra
complexity such as the bugs mentioned in VACUUM FULL.

So: what are the t_ctid chains good for? If this is too long or too
elementary to type, can someone point me to the source code that uses
t_ctid chains?

Regards,
Paul Tillotson

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2005-08-18 22:46:44 Re: Windows + IP6 progress
Previous Message Alvaro Herrera 2005-08-18 22:25:56 Re: Found: some pretty ugly VACUUM bugs