> 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