Re: pageinspect: Hash index support - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: pageinspect: Hash index support
Date
Msg-id CAMkU=1wghadVOxkphJTQUqukgNkE7ETPci0g55Y+fqXO4Q43PQ@mail.gmail.com
Whole thread Raw
In response to Re: pageinspect: Hash index support  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Responses Re: pageinspect: Hash index support
List pgsql-hackers
On Tue, Aug 30, 2016 at 10:06 AM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote:
Jesper Pedersen wrote:
> Hi,
>
> Attached is a patch that adds support for hash indexes in pageinspect.
>
> The functionality (hash_metap, hash_page_stats and hash_page_items) follows
> the B-tree functions.

I suggest that pageinspect functions are more convenient to use via the
get_raw_page interface, that is, instead of reading the buffer
themselves, the buffer is handed over from elsewhere and they receive it
as bytea.  This enables other use cases such as grabbing a page from one
server and examining it in another one.

I've never needed to do that, but it does sound like it might be useful.  But it is also annoying to have to do that when you want to examine a current server.  Could we use overloading, so that it can be used in either way?



For hash_page_items, the 'data' is always a 32 bit integer, isn't it? (unlike other pageinspect features, where the data could be any user-defined data type).  If so, I'd rather see it in plain hex (without the spaces, without the trailing zeros)

+   /* page type (flags) */
+   if (opaque->hasho_flag & LH_UNUSED_PAGE)
+       stat->type = 'u';

This can never be true, because LH_UNUSED_PAGE is zero.  You should make this be the fall-through case, and have LH_META_PAGE be explicitly tested for.

Cheers,

Jeff

pgsql-hackers by date:

Previous
From: Robert Haas
Date:
Subject: Re: New SQL counter statistics view (pg_stat_sql)
Next
From: Robert Haas
Date:
Subject: Re: What is the posix_memalign() equivalent for the PostgreSQL?