What happens to a primary key b-tree index when a table tuple is deleted by a transaction?

From: Luby Liao <lubyliao(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: What happens to a primary key b-tree index when a table tuple is deleted by a transaction?
Date: 2012-11-25 18:03:11
Message-ID: CAEtN0SEUqHAz_G+_Ykdbd9JZpPiN-UHMiayeoEHgUSra0UHuhw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Pavel Stehule 2012-11-25 18:34:48 Re: What happens to a primary key b-tree index when a table tuple is deleted by a transaction?
Previous Message Pavel Stehule 2012-11-25 17:57:22 Re: large INSERT leads to "invalid memory alloc"