Bruce Momjian's book says that (p109)
When POSTGRESQL updates a row, it keeps the old copy of the row in the
> table file and writes a new one. The old row is marked as expired, and used
> by other transactions still viewing the database in its prior state.
> Deletions are similarly marked as expired, but not removed from the table
> file.
If the b-tree changes for the transaction, would it not become broken for
other transactions?
Can anyone tell me how Postgres handles this? Thank you, Luby