Hello,

The documentation for 13 and 14 says in "Geometric Functions and
Operators" https://www.postgresql.org/docs/14/functions-geometry.html:

> @@ geometric_type → point
> Computes the center point. Available for box, lseg, path, polygon,
circle.
> @@ box '(2,2),(0,0)' → (1,1)

However, apparently, this operator does not work for path:

> $ psql
> psql (14.1)
> Type "help" for help.
>
> postgres=# SELECT @@ path '[(0,0),(0,1)]';
> ERROR:  function "path_center" not implemented
> postgres=#

Same for a closed path:
> postgres=# SELECT @@ path '((0,0),(0,1))';
> ERROR:  function "path_center" not implemented

Quick tests show that other types listed (box, lseg, polygon, circle) are supported, so only the path is extra.

This sentence in the documentation came from 791090bd775b (REL_13_STABLE and later). What slightly confuses me is that path_center has been listed in src/include/catalog/pg_operator.dat and pg_proc.dat (and pg_operator.h/pg_proc.h before that) since 3c2d74d2a (1997!), but since a3d284485 (2018) we have a regression test ensuring that "function "path_center" not implemented".

The easiest fix is, obviously, removing 'path' from the list in the documentation. Or, if that would be an actual improvement, I could submit a patch to support a path_center as well. Not sure if there is any actual need for that, though: I found this by just goofing around, not because I actually needed to calculate the center for some path. Also, converting to polygon might be a workaround for those who might need that feature. Please let me know if implementing path_center would be a useful addition.

P.S. I've sent a report though a submit web form on a documentation web site two days ago, but, apparently, that email was not delivered to this list.

Anton Voloshin
Postgres Professional, The Russian Postgres Company
https://postgrespro.ru


Reply via email to