[SCM] PostGIS branch stable-3.0 updated. 3.0.10-6-gea968b9e0
git at osgeo.org
git at osgeo.org
Thu Nov 30 15:55:11 PST 2023
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".
The branch, stable-3.0 has been updated
via ea968b9e0b5640cae61c8e5a972088679fedb6a6 (commit)
from 265d84a75f6c29f169d7338d15de915f6a9c7ba4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ea968b9e0b5640cae61c8e5a972088679fedb6a6
Author: Paul Ramsey <pramsey at cleverelephant.ca>
Date: Thu Nov 30 15:12:02 2023 -0800
Handling of EMPTY components in PiP check, #5627
diff --git a/NEWS b/NEWS
index adb3d9b0a..7d219101d 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ xxxx/xx/xx
- #5610, Regression fix: Allow Nan and infinity again
in ST_SetPoint (Regina Obe)
+ - #5627, Handling of EMPTY components in PiP check (Paul Ramsey)
PostGIS 3.0.10
2023/11/19
diff --git a/postgis/lwgeom_functions_analytic.c b/postgis/lwgeom_functions_analytic.c
index 24fc11794..6fa02c296 100644
--- a/postgis/lwgeom_functions_analytic.c
+++ b/postgis/lwgeom_functions_analytic.c
@@ -936,6 +936,9 @@ int point_in_multipolygon_rtree(RTREE_NODE **root, int polyCount, int *ringCount
POSTGIS_DEBUGF(2, "point_in_multipolygon_rtree called for %p %d %p.", root, polyCount, point);
+ /* empty is not within anything */
+ if (lwpoint_is_empty(point)) return -1;
+
getPoint2d_p(point->point, 0, &pt);
/* assume bbox short-circuit has already been attempted */
@@ -1045,6 +1048,9 @@ int point_in_multipolygon(LWMPOLY *mpolygon, LWPOINT *point)
POSTGIS_DEBUG(2, "point_in_polygon called.");
+ /* empty is not within anything */
+ if (lwpoint_is_empty(point)) return -1;
+
getPoint2d_p(point->point, 0, &pt);
/* assume bbox short-circuit has already been attempted */
diff --git a/regress/core/tickets.sql b/regress/core/tickets.sql
index 08e2ffe55..7ddecc41a 100644
--- a/regress/core/tickets.sql
+++ b/regress/core/tickets.sql
@@ -1393,3 +1393,11 @@ SELECT '#5151', ST_SetPoint(ST_GeomFromText('LINESTRING EMPTY',4326), 1, ST_Geom
SELECT '#5315', ST_Buffer('0106000020E86400000100000001030000000100000005000000000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F'::geometry, 1);
SELECT '#5320', ST_SimplifyPreserveTopology('0106000020E86400000100000001030000000100000005000000000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F000000000000F07F'::geometry, 1);
+
+SELECT '#5627' AS ticket, bool_and(ST_Intersects(
+ 'MULTIPOINT(EMPTY,(-378 574))'::geometry,
+ geom))
+FROM (VALUES
+ ('MULTIPOLYGON(((-357 477,-392 574,-378 574,-357 477)))'::geometry),
+ ('MULTIPOLYGON(((-357 477,-392 574,-378 574,-357 477)))'::geometry))
+ AS geoms(geom);
diff --git a/regress/core/tickets_expected b/regress/core/tickets_expected
index 2f3094a8a..ba9ed4075 100644
--- a/regress/core/tickets_expected
+++ b/regress/core/tickets_expected
@@ -457,3 +457,4 @@ ERROR: LWGEOM_addpoint: Invalid offset
ERROR: Line has no points
ERROR: Geometry contains invalid coordinates
ERROR: Geometry contains invalid coordinates
+#5627|t
-----------------------------------------------------------------------
Summary of changes:
NEWS | 1 +
postgis/lwgeom_functions_analytic.c | 6 ++++++
regress/core/tickets.sql | 8 ++++++++
regress/core/tickets_expected | 1 +
4 files changed, 16 insertions(+)
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list