Re: pageinspect: Hash index support

From: Ashutosh Sharma <ashu(dot)coek88(at)gmail(dot)com>
To: Mithun Cy <mithun(dot)cy(at)enterprisedb(dot)com>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Jesper Pedersen <jesper(dot)pedersen(at)redhat(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pageinspect: Hash index support
Date: 2017-02-21 09:44:37
Message-ID: CAE9k0PnKFEk+nFQU+fCDpiNf0VZzFSskK-vozFEBzVbt7Mw6Sw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thanks for reporting it. This is because of incorrect data typecasting.
Attached is the patch that fixes this issue.

On Tue, Feb 21, 2017 at 2:58 PM, Mithun Cy <mithun(dot)cy(at)enterprisedb(dot)com>
wrote:

> On Fri, Feb 10, 2017 at 1:06 AM, Robert Haas <robertmhaas(at)gmail(dot)com>
> wrote:
>
> > Alright, committed with a little further hacking.
>
> I did pull the latest code, and tried
> Test:
> ====
> create table t1(t int);
> create index i1 on t1 using hash(t);
> insert into t1 select generate_series(1, 10000000);
>
> postgres=# SELECT spares FROM hash_metapage_info(get_raw_page('i1', 0));
> spares
> ------------------------------------------------------------
> ----------------
> {0,0,0,1,9,17,33,65,-127,1,1,0,1,-1,-1,-4,0,0,0,0,0,0,0,0,
> 0,0,0,0,0,0,0,0}
>
> spares are showing negative numbers; I think the wrong type has been
> chosen, seems it is rounding at 127, spares are defined as following
> uint32 hashm_spares[HASH_MAX_SPLITPOINTS]; /* spare pages before each
> splitpoint */
>
> it should be always positive.
>
> --
> Thanks and Regards
> Mithun C Y
> EnterpriseDB: http://www.enterprisedb.com
>

Attachment Content-Type Size
typecast_fix.patch invalid/octet-stream 590 bytes

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Mithun Cy 2017-02-21 09:58:55 Re: [POC] A better way to expand hash indexes.
Previous Message Mithun Cy 2017-02-21 09:28:11 Re: pageinspect: Hash index support