pgsql: Fix problems in handling the line data type

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема pgsql: Fix problems in handling the line data type
Дата
Msg-id E1g55oc-0004Ms-O4@gemulon.postgresql.org
обсуждение исходный текст
Список pgsql-committers
Fix problems in handling the line data type

According to the source history, the internal format of line data type
has changed, but various functions working with it did were not updated
and thus were producing wrong results.

This patch addresses various such issues, in particular:

* Reject invalid specification A=B=0 on receive
* Reject same points on line_construct_pp()
* Fix perpendicular operator when negative values are involved
* Avoid division by zero on perpendicular operator
* Fix intersection and distance operators when neither A nor B are 1
* Return NULL for closest point when objects are parallel
* Check whether closest point of line segments is the intersection point
* Fix closest point of line segments being on the wrong segment

Aside from handling those issues, the patch also aims to make operators
more symmetric and less sen to precision loss.  The EPSILON interferes
with even minor changes, but the least we can do is applying it to both
sides of the operators equally.

Author: Emre Hasegeli
Reviewed-by: Tomas Vondra

Discussion:
https://www.postgresql.org/message-id/CAE2gYzxF7-5djV6-cEvqQu-fNsnt%3DEqbOURx7ZDg%2BVv6ZMTWbg%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/2e2a392de391a9f4ef4221fccbd00c43ba5c9b40

Modified Files
--------------
src/backend/utils/adt/geo_ops.c | 158 +++++++++++++++++++++++++++-------------
1 file changed, 108 insertions(+), 50 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: pgsql: Add basic regression tests for default monitoring roles
Следующее
От: Peter Eisentraut
Дата:
Сообщение: pgsql: Update dummy CREATE ASSERTION grammar