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