pgsql: When a GiST page is split during index build, it might not have

From: Heikki Linnakangas <heikki(dot)linnakangas(at)iki(dot)fi>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: When a GiST page is split during index build, it might not have
Date: 2012-03-02 11:25:23
Message-ID: E1S3Qbz-0005r1-T3@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

When a GiST page is split during index build, it might not have a buffer.

Previously it was thought that it's impossible as the code stands, because
insertions create buffers as tuples are cascaded downwards, and index
split also creaters buffers eagerly for all halves. But the example from
Jay Levitt demonstrates that it can happen, when the root page is split.
It's in fact OK if the buffer doesn't exist, so we just need to remove the
sanity check. In fact, we've been discussing the possibility of destroying
empty buffers to conserve memory, which would render the sanity check
completely useless anyway.

Fix by Alexander Korotkov

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/2502f45979fca76a6b19a07c98d7a41737a3dc7b

Modified Files
--------------
src/backend/access/gist/gistbuildbuffers.c | 8 ++------
1 files changed, 2 insertions(+), 6 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Magnus Hagander 2012-03-02 11:33:54 pgsql: Add a rule to optionally build docs with the stylesheet from the
Previous Message Peter Eisentraut 2012-03-01 19:18:44 pgsql: Small possible clarification in pg_basebackup reference page