> But now that I think of it, how do we get the root tid of a
> tuple? I suppose we'd be back to having backpointers or
> scanning the whole page... I guess pointer-swinging it is, then.
During vacuum you see a root [stub] not recently dead. You follow
the chain to detect if you find a live tuple that can replace
the root. You replace the root. You replace the original with a stub
that points at the root and mark it recently dead (and HEAP_COPIED_BACK
aka Pavan). ... (see prev post)
No need for anyone but vacuum to find a root.
Andreas