Hmm. So the problem seems to be statable as "a full-index scan on a
GIST index might fail to return all the rows, if the index has been
modified since creation". Teodor, can you think of anything you
changed recently in that area?
I still can't reproduce the bug, but found useless recheck condition with bitmap
check:
drop table if exists qq;
select 1 as st , 1::int4 as t into qq from generate_series(1,10000) as t;
create index qqidx on qq using gist (st) where t =1;
INSERT INTO qq (SELECT (4 * random())::int4, (4 * random())::int4 from
generate_series(1,10000));
# explain select t, count(1) from qq where t =1 group by t;
QUERY PLAN
-----------------------------------------------------------------------------
GroupAggregate (cost=19.62..633.49 rows=1 width=2)
-> Bitmap Heap Scan on qq (cost=19.62..630.28 rows=640 width=2)
Recheck Cond: (t = 1)
-> Bitmap Index Scan on qqidx (cost=0.00..19.46 rows=640 width=0)
--
Teodor Sigaev E-mail: teodor@xxxxxxxxx
WWW: http://www.sigaev.ru/
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general