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.