Hello
2012/11/25 Luby Liao <lubyliao(at)gmail(dot)com>:
> 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
What I know - PostgreSQL doesn't modify btree when tuples are deleted.
Regards
Pavel Stehule