> What's the verdict on relaxing the "live tuple's ctid doesn't 
> change rule"? If we did allow that within a page, what would 
> we need to change?

I already said this, but why would this need to be visible from the
outside ?

A few assumptions:
        no back pointers
        indexes only point at slots marked as roots (and non hot tuples)

During vacuum, you swap the tuples and keep a stub at the slot that the
user's ctid might be pointing at. You mark the stub to detect this
situation.
When a select/update by ctid comes along it needs to do one step to the
root
and use that tuple instead.

It needs a second vacuum (or a per page vacuum during update) to remove
the 
extra stub when it is dead and not recently dead. 

I fail to see the hole.

Andreas

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

Reply via email to