Alvaro Herrera <alvherre@dcc.uchile.cl> writes:
> Vacuum full locks the entire table and moves tuples between pages. It
> leaves all pages full of tuples (except, obviously, the last one), so it
> doesn't need to record them in the FSM.
This is overoptimistic :-(. VACUUM FULL cannot necessarily compact the
table completely, and so it will record free space in FSM (if there is
any worth recording). An example situation is that page 1000 may
contain a very large tuple, which will not fit on any earlier page.
Once VACUUM FULL discovers this fact, it will not bother shuffling
tuples on earlier pages, since it's not going to be able to truncate the
table to less than 1000 pages. There may nonetheless be enough space
available in earlier pages to store thousands of smaller-sized tuples.
regards, tom lane