Re: [PATCH] Improve geometric types
Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
From: Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>
To: emre@hasegeli.com
Cc: a.alekseev@postgrespro.ru, pgsql-hackers@lists.postgresql.org
Date: 2018-03-09T08:11:16Z
Lists: pgsql-hackers
Hello, sorry to be late.
At Fri, 2 Mar 2018 15:26:25 +0100, Emre Hasegeli <emre@hasegeli.com> wrote in <CAE2gYzzj6wgGeBY1vdAHBzzQDSDs-8NhD+=eTcgBKEsCBWpUXg@mail.gmail.com>
> > Unfortunately according to http://commitfest.cputube.org/ this patch doesn't apply anymore.
> New versions are attached.
Thank you for the revised version. This seems fine for me so
marked this as "Ready for Committer".
- This applies cleanly on the master head and regression passes.
- The new behavior looks sane (except for the EPSILON, which is
out of the scope of this patch).
- Test is complete as long as I can see. At least far more
completely filled than the previous state. Some test items
might seem a bit big, but it seems to be needed to raise
coverage on required combinaions of dimension values.
By the way I think that line_perp is back patched, could you
propose it for the older versions? (I already marked my entry as
Rejected)
Brief summary follows (almost same to the header of patch files):
- 0001 looks fine.
> * Eliminate SQL level function calls
> * Re-use more functions to implement others
> * Unify internal function names and signatures
> * Remove private functions from geo_decls.h
> * Replace not-possible checks with Assert()
> * Add comments to describe some functions
> * Remove some unreachable code
> * Define delimiter symbols of line datatype like the other ones
> * Remove debugging print()s from the refactored functions
And one bug fix.
- 0002 looks fine.
Refactors adt/float.c and utils/float.h
making float checking *macros* into inline functions.
making float comparison operators more efficiently.
others are the consequence of the above change.
and fixes NaN problem of GiST.
- 0003 looks fine.
just changes the usage of double to float8 as more proper type.
uses operator functions instead of bare arithmetics to handle
arithmetic errors more properly.
- 0004 looks fine. (Sorry for overlooking that this treats bugs)
all overlooked failure cases seems to be fixed.
- 0005 looks fine.
this unifies +-0.0 to +0.0 for the convenient of later processing.
- 0006 It seems cover the all types of operations.
regards,
--
Kyotaro Horiguchi
NTT Open Source Software Center
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