"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