> > > The point is, that the heap page is only modified in
> > > places that were previously empty (except header).
> > > All previous row data stays exactly in the same place.
> > > Thus if a page is only partly written
> > > (any order of page segments) only a new row is affected.
> >
> > Exception: PageRepairFragmentation() and PageIndexTupleDelete() are
> > called during vacuum - they change layout of tuples.
> >
>
> Is it guaranteed that the result of PageRepairFragmentation()
> has already been written to disk when tuple movement is logged ?
No.
Vadim