Heikki Linnakangas <heikki@enterprisedb.com> writes:
> We wouldn't clean up tuples that are visible to a transaction, but if
> you have one long-running transaction like pg_dump in a database with
> otherwise short transaction, you'll have a lot of tuples that are not
> vacuumable because of the long-running process, but are not in fact
> visible to any transaction.
It sounds to me like you are proposing to remove the middles of update
chains, which would break READ-COMMITTED updates initiated by the older
transactions. Now admittedly pg_dump isn't going to issue any such
updates, but VACUUM doesn't know that.
regards, tom lane