Re: pg_filedump strangeness - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: pg_filedump strangeness
Date
Msg-id 20100406223147.GF3491@alvh.no-ip.org
Whole thread Raw
In response to Re: pg_filedump strangeness  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Tom Lane wrote:
> Alvaro Herrera <alvherre@commandprompt.com> writes:
> > I'm chasing an apparent index corruption problem, and I came across
> > something I can't quite explain in pg_filedump.  Say I dump a non-leaf
> > btree index page:
> 
> I think this is actually OK.  Remember that in a non-rightmost page,
> item 1 is the high key not a data entry.  On the other hand, in a
> non-leaf page, we don't bother to store the key for the first downlink
> entry, since the associated key is really "minus infinity".  Cf
> nbtree/README:
> 
>     On a non-leaf page, the data items are down-links to child pages with
>     bounding keys.  The key in each data item is the *lower* bound for
>     keys on that child page, so logically the key is to the left of that
>     downlink.  The high key (if present) is the upper bound for the last
>     downlink.  The first data item on each such page has no lower bound
>     --- or lower bound of minus infinity, if you prefer.  The comparison
>     routines must treat it accordingly.  The actual key stored in the
>     item is irrelevant, and need not be stored at all.  This arrangement
>     corresponds to the fact that an L&Y non-leaf page has one more pointer
>     than key.

Ahh, I had forgotten that bit completely.  Thanks.


> So item 2 doesn't have a key in it.  The other two items have null
> keys, which means they need a null bitmap.

Correct.

> I don't however understand
> why there seems to be data as well as a null bitmap in there --- is
> this perhaps a two-column index?

Eh, yeah, it's a two column index, so it's OK.

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support


pgsql-hackers by date:

Previous
From: Magnus Hagander
Date:
Subject: Re: Win32 timezone matching
Next
From: Alvaro Herrera
Date:
Subject: Re: pg_filedump strangeness