From: | David Raymond <David(dot)Raymond(at)tomtom(dot)com> |
---|---|
To: | Peter Geoghegan <pg(at)bowt(dot)ie> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, "pgsql-bugs(at)lists(dot)postgresql(dot)org" <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
Subject: | RE: BUG #16031: Group by returns duplicate groups |
Date: | 2019-10-01 15:22:26 |
Message-ID: | VI1PR07MB602967460CA5DE655BB6776A879D0@VI1PR07MB6029.eurprd07.prod.outlook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
Here's what it's reporting for an error:
testing=# select bt_index_check('big_table_name_id_1_id_2_idx', true);
ERROR: high key invariant violated for index "big_table_name_id_1_id_2_idx"
DETAIL: Index tid=(86990,140) points to heap tid=(139313,57) page lsn=0/0.
Time: 65695.359 ms (01:05.695)
testing=# select bt_index_parent_check('big_table_name_id_1_id_2_idx', true);
ERROR: down-link lower bound invariant violated for index "big_table_name_id_1_id_2_idx"
DETAIL: Parent block=43131 child index tid=(43197,9) parent page lsn=0/0.
Time: 1697.205 ms (00:01.697)
testing=#
-----Original Message-----
From: Peter Geoghegan <pg(at)bowt(dot)ie>
Sent: Monday, September 30, 2019 7:34 PM
To: David Raymond <David(dot)Raymond(at)tomtom(dot)com>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>; pgsql-bugs(at)lists(dot)postgresql(dot)org
Subject: Re: BUG #16031: Group by returns duplicate groups
On Mon, Sep 30, 2019 at 2:49 PM David Raymond <David(dot)Raymond(at)tomtom(dot)com> wrote:
> I re-created the index...
> create index on big_table (name, id_1, id_2);
>
> ...and count(*) goes back to returning 9 again.
>
> and group by sees those 9 as one group and the other 16 as a different group.
You should try running contrib/amcheck, which should be able to confirm
index corruption, and give you a specific complaint. You may then be
able to inspect the exact index page with the problem using
contrib/pageinspect. Something like this ought to do it on Postgres
11:
CREATE EXTENSION IF NOT EXISTS amcheck
SELECT bt_index_check('my_index', true);
If that doesn't show any errors, then perhaps try this:
SELECT bt_index_parent_check('my_index', true);
Let us know what you see.
--
Peter Geoghegan
From | Date | Subject | |
---|---|---|---|
Next Message | David G. Johnston | 2019-10-01 15:26:40 | Re: psql: FATAL: database “<text>” does not exist |
Previous Message | Andrew Gierth | 2019-10-01 15:21:20 | Re: BUG #16031: Group by returns duplicate groups |