Re: [PATCH] Improve geometric types
Tomas Vondra <tomas.vondra@2ndquadrant.com>
From: Tomas Vondra <tomas.vondra@2ndquadrant.com>
To: emre@hasegeli.com
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Thomas Munro
<thomas.munro@enterprisedb.com>,
Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-08-02T09:50:55Z
Lists: pgsql-hackers
On 08/01/2018 01:40 PM, Emre Hasegeli wrote: >> Ah, so there's an assumption that NaNs are handled earlier and never reach >> this place? That's probably a safe assumption. I haven't thought about that, >> it simply seemed suspicious that the code mixes direct comparisons and >> float8_mi() calls. > > The comparison functions handle NaNs. The arithmetic functions handle > returning error on underflow, overflow and division by zero. I > assumed we want to return error on those in any case, but we don't > want to handle NaNs at every place. > >> Not sure, I'll leave that up to you. I don't mind doing it in a separate >> patch (I'd probably prefer that over mixing it into unrelated patch). > > It is attached separately. > OK, thanks. So, have we reached conclusion about all the bits I mentioned on 7/31? The delta and float8/double cast are fixed, and for computeDistance (i.e. doing comparisons directly or using float8_lt), the code may seem a bit inconsistent, but it is in fact correct as the NaNs are handled elsewhere. That seems reasonable, but perhaps a comment pointing that out would be nice. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Improve test coverage of geometric types
- a3d2844852dc 12.0 landed
-
Fix problems in handling the line data type
- 2e2a392de391 12.0 landed
-
Use the built-in float datatypes to implement geometric types
- c4c340088546 12.0 landed
-
Remove remaining GEODEBUG references from geo_ops.c
- a082aed0723c 12.0 landed
-
Provide separate header file for built-in float types
- 6bf0bc842bd7 12.0 landed
-
Refactor geometric functions and operators
- a7dc63d904a6 12.0 landed
-
Fix crash in close_ps() for NaN input coordinates.
- 278148907a97 9.6.0 cited
-
Fix GiST index build for NaN values in geometric types.
- 1acf75725545 9.6.0 cited
-
Enable building with Visual Studion 2013.
- cec8394b5ccd 9.4.0 cited
-
Suppress -0 in the C field of lines computed by line_construct_pts().
- 43fe90f66a0b 9.4.0 cited