Alvaro Herrera <alvherre@dcc.uchile.cl> writes:
> Am I right in thinking that vacuum does at least two passes: one
> front-to-back to find removable tuples, and other back-to-front for
> movement?
VACUUM FULL, yes. VACUUM only does the first one.
> I know maintenance_work_mem is used for storing TIDs of to-be-moved
> tuples for index cleanup ... how does it relate to the above?
TIDs of to-be-deleted tuples, actually. Movable tuples aren't stored,
they're just found on-the-fly during the back-to-front pass.
regards, tom lane