On Thu, Apr 10, 2014 at 8:22 PM, FabrÃzio de Royes Mello < fabriziome...@gmail.com> wrote:
> > On Thu, Apr 10, 2014 at 11:09 AM, Alexander Korotkov <aekorot...@gmail.com > > wrote: > >> Hi, >> >> GIN partial match appears to be broken after fast scan. Following simple >> test case raises assertion failure. >> >> create extension btree_gin; >> create table test as (select id, random() as val from >> generate_series(1,1000000) id); >> create index test_idx on test using gin (val); >> vacuum test; >> select * from test where val between 0.1 and 0.9; >> >> Attached patch fixes bugs in entryGetItem function. >> I would especially point that "continue;" checks "while" condition even >> if it's postfix "while". That's why I surrounded tbm_iterate with another >> "while". >> >> > Interesting... to me (using current master) your test case doesn't fail... > > fabrizio=# select * from test where val between 0.1 and 0.9; > id | val > --------+------------------- > 1 | 0.554413774050772 > 2 | 0.767866868525743 > 3 | 0.601187175605446 > ... > > > But fail if I change the values of between clause: > > fabrizio=# select * from test where val between 0.1 and 0.19; > ERROR: tuple offset out of range: 8080 > It must be compiled with --enable-cassert to fail on assertion. ------ With best regards, Alexander Korotkov.