I realize this thread is old, but I just conducted an experiment with pg
8.0.10 and a transaction with a SERIALIZABLE isolation level does
prevent VACUUM from reclaiming rows that were created and then obsoleted
in a subsequent transaction.
Martijn van Oosterhout wrote:
On Thu, Oct 19, 2006 at 04:25:09PM -0400, Joseph S wrote:
The problem is that the "old" transaction can see effects of later
started transactions, so VACUUM can't delete the later stuff either...
How can it see effects of transactions that started after it?
Check the documentation for the difference the READ COMMITTED and
SERIALIZABLE transaction. The former (the default) will see the results
of any committed transactions, even if they started later.
http://www.postgresql.org/docs/8.1/interactive/transaction-iso.html#XACT-READ-COMMITTED
Have a nice day,