On Mon, Sep 16, 2013 at 4:13 PM, Andrew Gierth <and...@tao11.riddles.org.uk>wrote:
> >>>>> "Alexander" == Alexander Korotkov <aekorot...@gmail.com> writes: > > Alexander> 2) NaN coordinates should be processed in GiST index scan > Alexander> like in sequential scan. > > postgres=# select * from pts order by a <-> '(0,0)' limit 10; > a > ---------- > (1,1) > (7,nan) > (9,nan) > (11,nan) > (4,nan) > (nan,6) > (2,1) > (1,2) > (2,2) > (3,1) > (10 rows) > > postgres=# set enable_indexscan=false; > SET > > postgres=# select * from pts order by a <-> '(0,0)' limit 10; > a > ------- > (1,1) > (2,1) > (1,2) > (2,2) > (3,1) > (1,3) > (3,2) > (2,3) > (4,1) > (1,4) > (10 rows) > > this data set was created by: > insert into pts > select point(i,j) > from (select generate_series(1,100)::float8 union all select 'nan') > s1(i), > (select generate_series(1,100)::float8 union all select 'nan') > s2(j) > order by random(); Thanks, Andrew! Good spot. I didn't examine order by operators for work with NaNs. I think this time problem is in GiST itself rather than in opclass. I'm going to fix it in a separate patch. ------ With best regards, Alexander Korotkov.