]> granicus.if.org Git - postgis/commitdiff
Fix ST_Simplify ignoring the value of the 3rd parameter
authorRaúl Marín Rodríguez <rmrodriguez@carto.com>
Thu, 29 Aug 2019 11:51:54 +0000 (11:51 +0000)
committerRaúl Marín Rodríguez <rmrodriguez@carto.com>
Thu, 29 Aug 2019 11:51:54 +0000 (11:51 +0000)
References #4492
Closes https://github.com/postgis/postgis/pull/469

git-svn-id: http://svn.osgeo.org/postgis/trunk@17782 b70326c6-7e19-0410-871a-916f4a2858ee

NEWS
postgis/lwgeom_functions_analytic.c
regress/core/simplify.sql
regress/core/simplify_expected

diff --git a/NEWS b/NEWS
index edf17368db8115f650bab700f5377e59188e9186..81e925b4685aefb41a6cef94182a3a8eb0f8e7df 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,12 @@
+PostGIS 3.0.0alpha5
+XXXX/XX/XX
+For full changes and enhancements, refer to PostGIS 3.0.0.
+This version requires PostgreSQL 9.5+-12 and GEOS >= 3.6+
+Additional features enabled if you are running Proj6+ and PostgreSQL 12
+
+* Major highlights *
+  - #4492, Fix ST_Simplify ignoring the value of the 3rd parameter (Raúl Marín)
+
 PostGIS 3.0.0alpha4
 2019/08/10
 For full changes and enhancements, refer to PostGIS 3.0.0.
index 3680e502162c9a7ddb2fb59a75e7c7a9a825af07..f101f4f62d42b7a68f5ecd52e911dc580e654c63 100644 (file)
@@ -71,8 +71,8 @@ Datum LWGEOM_simplify2d(PG_FUNCTION_ARGS)
        bool preserve_collapsed = false;
 
        /* Handle optional argument to preserve collapsed features */
-       if ( PG_NARGS() > 2 && ! PG_ARGISNULL(2) )
-               preserve_collapsed = true;
+       if ((PG_NARGS() > 2) && (!PG_ARGISNULL(2)))
+               preserve_collapsed = PG_GETARG_BOOL(2);
 
        /* Can't simplify points! */
        if ( type == POINTTYPE || type == MULTIPOINTTYPE )
index c8ba2137c5fd72434c1ce4dcb5cf23e81777c5bd..b42cfd64773ea5b1e4673527146d034ce8fa779b 100644 (file)
@@ -12,3 +12,6 @@ SELECT '9', ST_astext(ST_Simplify('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 5
 SELECT '10', ST_astext(ST_Simplify('LINESTRING(0 0, 0 10)', 20));
 SELECT '11', ST_astext(ST_Simplify('MULTIPOLYGON(((100 100, 100 130, 130 130, 130 100, 100 100)), ((0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 5 6, 6 6, 8 5, 5 5)) )', 20));
 SELECT '12', ST_astext(ST_Simplify('MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0),(5 5, 5 6, 6 6, 8 5, 5 5)),((100 100, 100 130, 130 130, 130 100, 100 100)))', 20));
+
+SELECT '13', ST_astext(ST_Simplify('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 20, false));
+SELECT '14', ST_astext(ST_Simplify('POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 20, true));
\ No newline at end of file
index 93a5c462219edcfed27e17fd8ac8eb8735ccdddf..df25d47f20262ae8de91ea13b6dfe34fa97b6f57 100644 (file)
@@ -10,3 +10,5 @@
 10|LINESTRING(0 0,0 10)
 11|MULTIPOLYGON(((100 100,100 130,130 130,130 100,100 100)))
 12|MULTIPOLYGON(((100 100,100 130,130 130,130 100,100 100)))
+13|
+14|POLYGON((0 0,10 0,10 10,0 0))