> > > -- start the VACUUM from the first non-filled block > > > > > > So if we do this, we wouldn't need to worry about HOT tuples at all, > > > nor would we need to wait until all transactions are gone. > > > > You need to wait until you are allowed to truncate if you want > > concurrency. > > Or a concurrent scan might miss a row, because the visible tuple got
> > truncated away. > > I was not suggesting that we remove visible rows through truncation. Sure, unless you suggest to not truncate during this vacuum run ? But we are talking about vacuum full, so truncation is essential. It was suggested to do a dummy null update to move live tuples up front. The old version is still visible for serializable txns. Andreas ---------------------------(end of broadcast)--------------------------- TIP 7: You can help support the PostgreSQL project by donating at http://www.postgresql.org/about/donate