From: | Jesper Pedersen <jesper(dot)pedersen(at)redhat(dot)com> |
---|---|
To: | Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> |
Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: pageinspect: Hash index support |
Date: | 2017-01-18 15:45:03 |
Message-ID: | 4f9c865b-0f79-83a7-a540-1533706c24ee@redhat.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 01/18/2017 04:54 AM, Ashutosh Sharma wrote:
>> Is there a reason for keeping the input arguments for
>> hash_bitmap_info() different from hash_page_items()?
>>
>
> Yes, there are two reasons behind it.
>
> Firstly, we need metapage to identify the bitmap page that holds the
> information about the overflow page passed as an input to this
> function.
>
> Secondly, we will have to input overflow block number as an input to
> this function so as to determine the overflow bit number which can be
> used further to identify the bitmap page.
>
> + /* Read the metapage so we can determine which bitmap page to use */
> + metabuf = _hash_getbuf(indexRel, HASH_METAPAGE, HASH_READ, LH_META_PAGE);
> + metap = HashPageGetMeta(BufferGetPage(metabuf));
> +
> + /* Identify overflow bit number */
> + ovflbitno = _hash_ovflblkno_to_bitno(metap, ovflblkno);
> +
> + bitmappage = ovflbitno >> BMPG_SHIFT(metap);
> + bitmapbit = ovflbitno & BMPG_MASK(metap);
> +
> + if (bitmappage >= metap->hashm_nmaps)
> + ereport(ERROR,
> + (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
> + errmsg("invalid overflow bit number %u", ovflbitno)));
> +
> + bitmapblkno = metap->hashm_mapp[bitmappage];
>
>
As discussed off-list (along with my patch that included some of these
fixes), it would require calculation from the user to be able to provide
the necessary pages through get_raw_page().
Other ideas on how to improve this are most welcome.
> Apart from above comments, the attached patch also handles all the
> comments from Mithun.
>
Please, include a version number for your patch files in the future.
Fixed in this version:
* verify_hash_page: Display magic in hex, like hash_metapage_info
* Update header for hash_page_type
Moving the patch back to 'Needs Review'.
Best regards,
Jesper
Attachment | Content-Type | Size |
---|---|---|
0001-Add-support-for-hash-index-in-pageinspect-contrib-mo_v7.patch | text/x-patch | 26.3 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Jeff Janes | 2017-01-18 15:56:56 | Re: move collation import to backend |
Previous Message | Tom Lane | 2017-01-18 15:43:07 | Re: pgsql: Add function to import operating system collations |