pgsql: Implement poly_distance().

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Implement poly_distance().
Date: 2021-12-13 22:33:40
Message-ID: E1mwtt6-0007ky-Eg@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Implement poly_distance().

geo_ops.c contains half a dozen functions that are just stubs throwing
ERRCODE_FEATURE_NOT_SUPPORTED. Since it's been like that for more
than twenty years, there's clearly not a lot of interest in filling in
the stubs. However, I'm uncomfortable with deleting poly_distance(),
since every other geometric type supports a distance-to-another-object-
of-the-same-type function. We can easily add this capability by
cribbing from poly_overlap() and path_distance().

It's possible that the (existing) test case for this will show some
numeric instability, but hopefully the buildfarm will expose it if so.

In passing, improve the documentation to try to explain why polygons
are distinct from closed paths in the first place.

Discussion: https://postgr.es/m/3426566.1638832718@sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c5c192d7bdfa78f19e735610488b1cc5ad6e41cc

Modified Files
--------------
doc/src/sgml/datatype.sgml | 5 ++-
src/backend/utils/adt/geo_ops.c | 77 +++++++++++++++++++++++++++++-----
src/test/regress/expected/geometry.out | 54 +++++++++++++++++++++++-
3 files changed, 123 insertions(+), 13 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2021-12-13 22:49:58 pgsql: Doc: de-document unimplemented geometric operators.
Previous Message Andres Freund 2021-12-13 20:06:10 pgsql: isolationtester: append session name to application_name.