Re: ctid & updates - Mailing list pgsql-general

From Tom Lane
Subject Re: ctid & updates
Date
Msg-id 13244.1023149117@sss.pgh.pa.us
Whole thread Raw
In response to ctid & updates  ("Joshua b. Jore" <josh@greentechnologist.org>)
Responses Re: ctid & updates (or speedy updates/deletes)  ("Joshua b. Jore" <josh@greentechnologist.org>)
Re: ctid & updates  (Jan Wieck <janwieck@yahoo.com>)
List pgsql-general
"Joshua b. Jore" <josh@greentechnologist.org> writes:
> I noticed that ctid changes on update (as expected since it's really a new
> row). Is there anyway to get the new ctid from the update so later
> updates to the row can continue to use ctid to zero in on the row
> location?

There's a function called something like currtid that takes the
CTID of the possibly-obsoleted row and returns the CTID of its latest
updated version.  I believe this is exported because the ODBC driver
uses it, so it's unlikely to go away, even though AFAIR it's not
documented anywhere.  A risk of using it is that CTID of an updated
row cannot be trusted for very long --- once VACUUM has come by,
you might find that CTID reassigned to some other row entirely.

> Can anything interesting be done with the empty space? Is there any
> way to find the maximum ctid and look for quantities of empty space?

I don't think CTID gives you any useful hint about the amount of free
space available on a page.

            regards, tom lane

pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: strangeness in pg_dump
Next
From: Curt Sampson
Date:
Subject: View vs. Statement Query Plan