Re: Fix picksplit with nan values

Поиск
Список
Период
Сортировка
От Alexander Korotkov
Тема Re: Fix picksplit with nan values
Дата
Msg-id CAPpHfduU7GuF6GE3yR20MwB7AieadeQ90GhL19SKNgWJ+DPAmw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Fix picksplit with nan values  (Alexander Korotkov <aekorotkov@gmail.com>)
Ответы Re: Fix picksplit with nan values  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Tue, Sep 17, 2013 at 5:04 PM, Alexander Korotkov <aekorotkov@gmail.com> wrote:
On Mon, Sep 16, 2013 at 4:13 PM, Andrew Gierth <andrew@tao11.riddles.org.uk> wrote:
>>>>> "Alexander" == Alexander Korotkov <aekorotkov@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.

Attached patch fixes knn GiST behaviour with NaN. It makes RB-tree comparison function in GiST work like float8 btree opclass comparison function.

------
With best regards,
Alexander Korotkov.

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Boszormenyi Zoltan
Дата:
Сообщение: Re: WHERE CURRENT OF behaviour is not what's documented
Следующее
От: Albe Laurenz
Дата:
Сообщение: REVIEW: Allow formatting in log_line_prefix