Skip site navigation (1) Skip section navigation (2)

Possible documentation error

From: "D'Arcy J(dot)M(dot) Cain" <darcy(at)druid(dot)net>
To: pgsql-hackers(at)PostgreSQL(dot)org
Subject: Possible documentation error
Date: 2006-12-26 17:04:40
Message-ID: 20061226120440.05ee9fc5.darcy@druid.net (view raw or flat)
Thread:
Lists: pgsql-hackers
http://www.postgresql.org/docs/8.2/interactive/ddl-system-columns.html
has the following statement about ctid:

"The physical location of the row version within its table. Note that
although the ctid can be used to locate the row version very quickly, a
row's ctid will change each time it is updated or moved by VACUUM FULL.
Therefore ctid is useless as a long-term row identifier. The OID, or
even better a user-defined serial number, should be used to identify
logical rows."

I have been testing this statement and find that it seems not quite
true. Although ctid changes on update, VACUUM FULL does not change it.
What it does do is make lower areas available again so an update after a
VACUUM FULL can reuse lower numbers rather than higher ones before.

Now it certainly seems to me that it should behave as described given
the definition of VACUUM FULL so I am a little confused by my tests.
My test table only has two entries in it.  Is that the issue?  In fact,
I find the same behaviour if I do a simple VACUUM on the table.

-- 
D'Arcy J.M. Cain <darcy(at)druid(dot)net>         |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.

Responses

pgsql-hackers by date

Next:From: Martijn van OosterhoutDate: 2006-12-26 17:12:45
Subject: Re: Possible documentation error
Previous:From: Tom LaneDate: 2006-12-26 16:25:41
Subject: Recent SIGSEGV failures in buildfarm HEAD

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group