Re: pgsql: Fix handling of all-zero pages in SP-GiST vacuum. - Mailing list pgsql-committers

From Heikki Linnakangas
Subject Re: pgsql: Fix handling of all-zero pages in SP-GiST vacuum.
Date
Msg-id 55B65481.1040100@iki.fi
Whole thread Raw
In response to Re: pgsql: Fix handling of all-zero pages in SP-GiST vacuum.  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-committers
On 07/27/2015 06:36 PM, Tom Lane wrote:
> Heikki Linnakangas <heikki.linnakangas@iki.fi> writes:
>> Fix handling of all-zero pages in SP-GiST vacuum.
>
> I'm a little bit uncomfortable with the way that this patch presumes that
> PageIsEmpty (a) is safe on an all-zeroes page and (b) will return true for
> such a page.  Yes, it does work at the moment; but I don't think we are
> making such an assumption anyplace else, and in view of your other two
> concurrent patches, it doesn't seem very future-proof here either.
> I recommend that the code look more like
>
>      if (!SpGistBlockIsRoot(blkno))
>      {
>          if (PageIsNew(page) || PageIsEmpty(page))
>

I thought I saw other places that assumed that, and I even thought I saw
a comment somewhere documenting that usage. But now that I grep around,
I see no such thing.

I'll go change that...

- Heikki



pgsql-committers by date:

Previous
From: Heikki Linnakangas
Date:
Subject: pgsql: Don't assume that PageIsEmpty() returns true on an all-zeros pag
Next
From: Heikki Linnakangas
Date:
Subject: pgsql: Don't assume that PageIsEmpty() returns true on an all-zeros pag