Re: compress method for spgist - 2

Darafei Komяpa Praliaskouski <me@komzpa.net>

From: Darafei "Komяpa" Praliaskouski <me@komzpa.net>
To: Nikita Glukhov <n.gluhov@postgrespro.ru>, Alexander Korotkov <aekorotkov@gmail.com>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>, Heikki Linnakangas <hlinnaka@iki.fi>, Fedor Sigaev <teodor@sigaev.ru>
Date: 2017-09-20T23:06:30Z
Lists: pgsql-hackers
>
> It is possible for bbox->low.x to be NaN when circle->center.x is and
> circle->radius are both +Infinity.
>

What is rationale behind this circle?
It seems to me that any circle with radius of any Infinity should become a
[-Infinity .. Infinity, -Infinity .. Infinity] box. Then you won't have
NaNs, and index structure shouldn't be broken.

If it happens because NaN > Infinity, then the check should be not for
isnan, but for if (low>high){swap(high, low)}. It probably should be a part
of box, not a part of circle, maths.

Commits

  1. Doc: remove duplicate poly_ops row from SP-GiST opclass table.

  2. Add polygon opclass for SP-GiST