Commit de8c3148 authored by Darafei Praliaskouski's avatar Darafei Praliaskouski

ST_Subdivide: support rect hole in rect shell

Closes #4211
Closes https://github.com/postgis/postgis/pull/317


git-svn-id: http://svn.osgeo.org/postgis/trunk@16937 b70326c6-7e19-0410-871a-916f4a2858ee
parent 876ac168
Pipeline #33886832 passed with stage
in 32 minutes and 16 seconds
......@@ -23,6 +23,8 @@ PostGIS 3.0.0
- #4188, Avoid division by zero in kmeans (Raúl Marín)
- #4189, Fix undefined behaviour in SADFWrite (Raúl Marín)
- #4191, Fix undefined behaviour in ptarray_clone_deep (Raúl Marín)
- #4211, Fix ST_Subdivide for minimal exterior ring with minimal hole (Darafei
Praliaskouski)
PostGIS 2.5.0
2018/09/23
......
......@@ -2294,7 +2294,7 @@ lwgeom_subdivide_recursive(const LWGEOM *geom, uint8_t dimension, uint32_t maxve
lwpoly = (LWPOLY *)geom;
/* if there are more points in holes than in outer ring */
if (nvertices > 2 * lwpoly->rings[0]->npoints)
if (nvertices >= 2 * lwpoly->rings[0]->npoints)
{
/* trim holes starting from biggest */
for (i = 1; i < lwpoly->nrings; i++)
......
......@@ -58,3 +58,5 @@ FROM big_polygon_sliced gs;
drop table big_polygon;
drop table big_polygon_sliced;
select '#4211', (select sum(ST_Area(geom))::numeric(12,11) from ST_Subdivide('MULTIPOLYGON(((-88.2059 41.7325,-88.2060 41.7244,-88.1959 41.7241,-88.1959 41.7326,-88.2059 41.7325),(-88.1997 41.7289,-88.1996 41.7285,-88.1990 41.7285,-88.1990 41.7289,-88.1997 41.7289)))') geom );
......@@ -5,3 +5,4 @@ ERROR: lwgeom_subdivide: cannot subdivide to fewer than 5 vertices per output
#3522|POINT(1 1)
#3744|1600000000000000
4|29321996468.6|29321996468.6|1857|256
#4211|0.00008316000
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment