Convert the geometric input functions to report errors softly.
Convert box_in, circle_in, line_in, lseg_in, path_in, point_in,
and poly_in to the new style.
line_in still throws hard errors for overflows/underflows that can occur
when the input is specified as two points rather than in the canonical
"Ax + By + C = 0" style. I'm not too concerned about that: it won't be
reached in normal dump/restore cases, and it's fairly debatable that
such conversion should ever have been made part of a type input function
in the first place. But in any case, I don't want to extend the soft
error conventions into float.h without more discussion than this patch
has had.
Amul Sul, minor mods by me
Discussion: https://postgr.es/m/CAAJ_b97KeDWUdpTKGOaFYPv0OicjOu6EW+QYWj-Ywrgj_aEy1g@mail.gmail.com
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/332741e73980401895e027eb697bb472860036fb
Modified Files
--------------
src/backend/utils/adt/geo_ops.c | 184 ++++++++++++++++++++-------------
src/test/regress/expected/box.out | 25 +++++
src/test/regress/expected/geometry.out | 25 +++++
src/test/regress/expected/line.out | 61 +++++++++++
src/test/regress/expected/lseg.out | 13 +++
src/test/regress/expected/path.out | 25 +++++
src/test/regress/expected/point.out | 13 +++
src/test/regress/expected/polygon.out | 25 +++++
src/test/regress/sql/box.sql | 6 ++
src/test/regress/sql/geometry.sql | 6 ++
src/test/regress/sql/line.sql | 12 +++
src/test/regress/sql/lseg.sql | 4 +
src/test/regress/sql/path.sql | 6 ++
src/test/regress/sql/point.sql | 4 +
src/test/regress/sql/polygon.sql | 6 ++
15 files changed, 344 insertions(+), 71 deletions(-)