[postgis-tickets] [SCM] PostGIS branch stable-3.0 updated. 3.0.2-17-gb880805
git at osgeo.org
git at osgeo.org
Wed Nov 18 22:54:32 PST 2020
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 b8808055099ed0c5bf14fd5a797561755489ccab (commit)
from 5566fb734626f1ef93b9990ec6212e17b69669da (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 b8808055099ed0c5bf14fd5a797561755489ccab
Author: Regina Obe <lr at pcorp.us>
Date: Thu Nov 19 01:54:02 2020 -0500
Prep for release 3.0.3 and fix some GEOS 3.9 tests references #4795
diff --git a/NEWS b/NEWS
index a1975d9..82ce8e8 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,5 @@
-PostGIS 3.0.3dev
-2020/xx/xx
+PostGIS 3.0.3
+2020/11/19
* Bug Fixes and Enhancements *
- #4742 tiger geocoder reverted to 2018 version on tiger upgrade
diff --git a/README.postgis b/README.postgis
index 137ffac..78832c2 100644
--- a/README.postgis
+++ b/README.postgis
@@ -1,8 +1,8 @@
PostGIS - Geographic Information Systems Extensions to PostgreSQL
=================================================================
-:Version: 3.0.2
-:Date: 2020-08-15
+:Version: 3.0.3
+:Date: 2020-11-19
:Website: https://postgis.net
This distribution contains a module which implements GIS simple features, ties
diff --git a/Version.config b/Version.config
index 8062c86..8a738f2 100644
--- a/Version.config
+++ b/Version.config
@@ -5,7 +5,7 @@
POSTGIS_MAJOR_VERSION=3
POSTGIS_MINOR_VERSION=0
-POSTGIS_MICRO_VERSION=3dev
+POSTGIS_MICRO_VERSION=3
# Liblwgeom interface versioning, reset to 0:0:0 (cur:age:rev)
# when changing POSTGIS_MINOR_VERSION
diff --git a/doc/release_notes.xml b/doc/release_notes.xml
index 5416ec2..175a8dd 100644
--- a/doc/release_notes.xml
+++ b/doc/release_notes.xml
@@ -2,6 +2,26 @@
<appendix id="release_notes">
<title>Appendix</title>
<subtitle>Release Notes</subtitle>
+ <sect1>
+ <title>Release 3.0.3</title>
+ <para>Release date: 2020/11/19</para>
+ <para>This is a bug fix / performance enhancements release. This version requires PostgreSQL 9.5+-12 and GEOS >= 3.6+
+ Additional features and enhancements enabled if you are running Proj6+, PostgreSQL 12, and GEOS 3.8</para>
+ <simplesect>
+ <title>Bug Fixes and Enhancements</title>
+ <para>4742 tiger geocoder reverted to 2018 version on tiger upgrade</para>
+ <para>4757, Handle line collapse due to snap-to-existing node (Sandro Santilli)</para>
+ <para>4758, Improve topology noding robustness (Sandro Santilli)</para>
+ <para>4719, Fail fast when srids don't match ST_Intersection(geometry,raster)
+ Also schema qualify calls in function. (Regina Obe)</para>
+ <para>4739, Ensure all functions using postgis_oid initialize the internal cache (Raúl MarÃn)</para>
+ <para>4767, #4768, #4771, #4772, Fix segfault when parsing invalid WKB (Raúl MarÃn)</para>
+ <para>4769, Fix segfault in st_addband (Raúl MarÃn)</para>
+ <para>4748, Fix incorrect axis swapping in polar stereographic (Paul Ramsey)</para>
+ <para>4727, Fix bug in geocentrix box computation (Paul Ramsey)</para>
+ <para>4790, Fix ST_3dintersects calculations with identical vertices (Nicklas Avén)</para>
+ </simplesect>
+ </sect1>
<sect1>
<title>Release 3.0.2</title>
diff --git a/liblwgeom/cunit/cu_geos.c b/liblwgeom/cunit/cu_geos.c
index 416c7db..7cb0bf2 100644
--- a/liblwgeom/cunit/cu_geos.c
+++ b/liblwgeom/cunit/cu_geos.c
@@ -147,7 +147,13 @@ test_geos_makevalid(void)
geom1 = lwgeom_from_wkb(wkb, 157, LW_PARSER_CHECK_NONE);
geom2 = lwgeom_make_valid(geom1);
out_ewkt = lwgeom_to_ewkt((LWGEOM*)geom2);
- ASSERT_STRING_EQUAL(out_ewkt, "GEOMETRYCOLLECTION(POLYGON((92114.014 463463.469,92115.5120743 463462.206937,92115.512 463462.207,92127.546 463452.075,92117.173 463439.755,92133.675 463425.942,92122.136 463412.826,92092.377 463437.77,92114.014 463463.469)),MULTIPOINT(92115.5120743 463462.206937,92122.136 463412.826))");
+#if POSTGIS_GEOS_VERSION < 39
+ ASSERT_STRING_EQUAL(
+ out_ewkt,
+ "GEOMETRYCOLLECTION(POLYGON((92114.014 463463.469,92115.51207431706 463462.206937429,92115.512 463462.207,92127.546 463452.075,92117.173 463439.755,92133.675 463425.942,92122.136 463412.82600000006,92092.377 463437.77,92114.014 463463.469)),MULTIPOINT(92115.51207431706 463462.2069374289,92122.136 463412.826))");
+#else
+ ASSERT_STRING_EQUAL(out_ewkt, "POLYGON((92127.546 463452.075,92117.173 463439.755,92133.675 463425.942,92122.136 463412.826,92092.377 463437.77,92114.014 463463.469,92115.512 463462.207,92115.5120743 463462.206937,92127.546 463452.075))");
+#endif
lwfree(out_ewkt);
lwgeom_free(geom1);
lwgeom_free(geom2);
diff --git a/regress/core/clean.sql b/regress/core/clean.sql
index 02287a7..d641075 100644
--- a/regress/core/clean.sql
+++ b/regress/core/clean.sql
@@ -46,7 +46,7 @@ SELECT origin,caseno,
ORDER BY 1, 2;
SELECT '#1719.1', ST_AsEWKT(ST_MakeValid('POINT(0 0)'));
-SELECT '#1719.2', ST_AsEWKT(ST_MakeValid('GEOMETRYCOLLECTION(POINT(0 0),MULTIPOINT(3 4,5 2),LINESTRING(4 4, 4 4),POLYGON((0 0,10 10,0 10,10 0,0 0)))'));
+SELECT '#1719.2', ST_AsEWKT(ST_Normalize(ST_MakeValid('GEOMETRYCOLLECTION(POINT(0 0),MULTIPOINT(3 4,5 2),LINESTRING(4 4, 4 4),POLYGON((0 0,10 10,0 10,10 0,0 0)))')));
SELECT '#1719.3', ST_AsEWKT(ST_MakeValid('MULTIPOINT(3 4,5 2)'));
DROP TABLE clean_cases;
diff --git a/regress/core/clean_expected b/regress/core/clean_expected
index 04775b8..307d75b 100644
--- a/regress/core/clean_expected
+++ b/regress/core/clean_expected
@@ -27,5 +27,5 @@ RT|16.3|t|t|f
RT|16.4|t|t|f
RT|17.1|t|t|f
#1719.1|POINT(0 0)
-#1719.2|GEOMETRYCOLLECTION(POINT(0 0),MULTIPOINT(3 4,5 2),POINT(4 4),MULTIPOLYGON(((0 0,5 5,10 0,0 0)),((5 5,0 10,10 10,5 5))))
+#1719.2|GEOMETRYCOLLECTION(MULTIPOLYGON(((0 10,10 10,5 5,0 10)),((0 0,5 5,10 0,0 0))),MULTIPOINT(5 2,3 4),POINT(4 4),POINT(0 0))
#1719.3|MULTIPOINT(3 4,5 2)
diff --git a/regress/core/regress_ogc.sql b/regress/core/regress_ogc.sql
index 4c70348..12f5e56 100644
--- a/regress/core/regress_ogc.sql
+++ b/regress/core/regress_ogc.sql
@@ -158,9 +158,9 @@ SELECT 'isvalid', ST_isvalid('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0))'::geometry)
SELECT 'isvalid', ST_isvalid('POLYGON((0 0, 0 10, 10 10, -5 10, 10 0, 0 0))'::geometry);
SELECT 'isvalid', ST_isvalid('GEOMETRYCOLLECTION EMPTY'::geometry);
SELECT 'intersection', ST_astext(ST_intersection('LINESTRING(0 10, 0 -10)'::geometry, 'LINESTRING(0 0, 1 1)'::geometry));
-SELECT 'difference', ST_astext(ST_difference('LINESTRING(0 10, 0 -10)'::GEOMETRY, 'LINESTRING(0 2, 0 -2)'::GEOMETRY));
+SELECT 'difference', ST_astext(ST_Normalize(ST_difference('LINESTRING(0 10, 0 -10)'::GEOMETRY, 'LINESTRING(0 2, 0 -2)'::GEOMETRY)));
SELECT 'boundary', ST_astext(ST_boundary('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))'::geometry));
-SELECT 'symdifference', ST_astext(ST_symdifference('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))'::geometry, 'LINESTRING(0 0, 20 20)'::geometry));
+SELECT 'symdifference', ST_astext(ST_Normalize(ST_symdifference('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))'::geometry, 'LINESTRING(0 0, 20 20)'::geometry)));
SELECT 'issimple', ST_issimple('POLYGON((0 0, 0 10, 10 10, 10 0, 0 0),(2 2, 2 4, 4 4, 4 2, 2 2))'::geometry);
SELECT 'equals', ST_equals('LINESTRING(0 0, 1 1)'::geometry, 'LINESTRING(1 1, 0 0)'::geometry);
WITH inp AS ( SELECT
@@ -188,7 +188,7 @@ select 'intersects', ST_intersects(
select 'ST_GeometryN', ST_asewkt(ST_GeometryN('LINESTRING(0 0, 1 1)'::geometry, 1));
select 'ST_NumGeometries', ST_NumGeometries('LINESTRING(0 0, 1 1)'::geometry);
-select 'ST_Union1', ST_AsText(ST_Union(ARRAY['POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'::geometry, 'POLYGON((0.5 0.5, 1.5 0.5, 1.5 1.5, 0.5 1.5, 0.5 0.5))'::geometry]));
+select 'ST_Union1', ST_AsText(ST_Normalize(ST_Union(ARRAY['POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'::geometry, 'POLYGON((0.5 0.5, 1.5 0.5, 1.5 1.5, 0.5 1.5, 0.5 0.5))'::geometry])));
select 'ST_EndPoint1', ST_AsText(ST_Endpoint('LINESTRING(0 0, 1 1, 2 2)'::geometry));
select 'ST_PointN1', ST_AsText(ST_PointN('LINESTRING(0 0, 1 1, 2 2)'::geometry,2));
select 'ST_PointN2', ST_AsText(ST_PointN('LINESTRING(0 0, 1 1, 2 2)'::geometry,3));
@@ -208,4 +208,4 @@ select 'ST_StartPoint1',ST_AsText(ST_StartPoint('LINESTRING(0 0, 1 1, 2 2)'::geo
select 'ST_StartPoint2',ST_AsText(ST_StartPoint('CIRCULARSTRING(2 2, 1 1, 1 0)'::geometry));
select 'ST_StartPoint3',ST_AsText(ST_StartPoint('COMPOUNDCURVE(CIRCULARSTRING(3 3, 1 1, 1 0),(1 0, 0 1))'::geometry));
select 'ST_StartPoint4',ST_AsText(ST_StartPoint('CURVEPOLYGON(CIRCULARSTRING(5 5, 4 0, 4 4, 0 4, 5 5),(1 1, 3 3, 3 1, 1 1))'::geometry));
-select 'ST_StartPoint5',ST_AsText(ST_StartPoint('POLYGON((0 0, 1 1, 0 1, 0 0))'::geometry));
\ No newline at end of file
+select 'ST_StartPoint5',ST_AsText(ST_StartPoint('POLYGON((0 0, 1 1, 0 1, 0 0))'::geometry));
diff --git a/regress/core/regress_ogc_expected b/regress/core/regress_ogc_expected
index ed18254..869147f 100644
--- a/regress/core/regress_ogc_expected
+++ b/regress/core/regress_ogc_expected
@@ -89,9 +89,9 @@ NOTICE: Self-intersection
isvalid|f
isvalid|t
intersection|POINT(0 0)
-difference|MULTILINESTRING((0 10,0 2),(0 -2,0 -10))
+difference|MULTILINESTRING((0 2,0 10),(0 -10,0 -2))
boundary|MULTILINESTRING((0 0,0 10,10 10,10 0,0 0),(2 2,2 4,4 4,4 2,2 2))
-symdifference|GEOMETRYCOLLECTION(LINESTRING(2 2,4 4),LINESTRING(10 10,20 20),POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,2 4,2 2,4 2,4 4)))
+symdifference|GEOMETRYCOLLECTION(POLYGON((0 0,0 10,10 10,10 0,0 0),(2 2,4 2,4 4,2 4,2 2)),LINESTRING(10 10,20 20),LINESTRING(2 2,4 4))
issimple|t
equals|t
pointonsurface|t
diff --git a/regress/core/split.sql b/regress/core/split.sql
index e855445..7a2eaf9 100644
--- a/regress/core/split.sql
+++ b/regress/core/split.sql
@@ -1,73 +1,73 @@
-- Split line by point of different SRID
-select st_split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=5;POINT(5 1)');
+select '0.1', ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=5;POINT(5 1)');
+
+-- Split line by line of different SRID
+select '0.2', ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=5;LINESTRING(5 1, 10 1)');
-- Split line by point on the line interior
-select '1',st_asewkt(st_split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;POINT(5 0)'));
-select '1.1',st_asewkt(st_split('SRID=10;LINESTRING(10 0, 0 0)', 'SRID=10;POINT(5 0)'));
+select '1',ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;POINT(5 0)')));
+select '1.1',ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(10 0, 0 0)', 'SRID=10;POINT(5 0)')));
-- Split line by point on the line boundary
-select '2',st_asewkt(st_split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;POINT(10 0)'));
+select '2',ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;POINT(10 0)')));
-- Split line by point on the line exterior
-select '3',st_asewkt(st_split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;POINT(5 1)'));
-
--- Split line by line of different SRID
-select st_split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=5;LINESTRING(5 1, 10 1)');
+select '3',ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;POINT(5 1)')));
-- Split line by disjoint line
-select '4', st_asewkt(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(20 0, 20 20)'));
+select '4', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(20 0, 20 20)')));
-- Split line by touching line
-select '5', st_asewkt(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(10 -5, 10 5)'));
+select '5', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(10 -5, 10 5)')));
-- Split line by crossing line
-select '6', st_asewkt(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(5 -5, 5 5)'));
+select '6', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(5 -5, 5 5)')));
-- Split line by multiply-crossing line
-select '7', st_asewkt(ST_Split('SRID=10;LINESTRING(0 0, 10 0, 10 10, 0 10, 0 20, 10 20)', 'SRID=10;LINESTRING(5 -5, 5 25)'));
+select '7', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(0 0, 10 0, 10 10, 0 10, 0 20, 10 20)', 'SRID=10;LINESTRING(5 -5, 5 25)')));
-- Split line by overlapping line (1)
-select '8.1', st_asewkt(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(5 0, 20 0)'));
+select '8.1', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(5 0, 20 0)')));
-- Split line by contained line (2)
-select '8.2', st_asewkt(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(5 0, 8 0)'));
+select '8.2', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;LINESTRING(0 0, 10 0)', 'SRID=10;LINESTRING(5 0, 8 0)')));
-- Split exterior-only polygon by crossing line
-select '20', st_asewkt(ST_Split('SRID=12;POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 'SRID=12;LINESTRING(5 -5, 5 15)'));
+select '20', ST_AsEWKT(ST_Normalize(ST_Split('SRID=12;POLYGON((0 0, 10 0, 10 10, 0 10, 0 0))', 'SRID=12;LINESTRING(5 -5, 5 15)')));
-- Split single-hole polygon by line crossing both exterior and hole
-select '21', st_asewkt(ST_Split('SRID=12;POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 8 2, 8 8, 2 8, 2 2))', 'SRID=12;LINESTRING(5 -5, 5 15)'));
+select '21', ST_AsEWKT(ST_Normalize(ST_Split('SRID=12;POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 8 2, 8 8, 2 8, 2 2))', 'SRID=12;LINESTRING(5 -5, 5 15)')));
-- Split single-hole polygon by line crossing only exterior
-select '22', st_asewkt(ST_Split('SRID=12;POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(5 2, 8 2, 8 8, 5 8, 5 2))', 'SRID=12;LINESTRING(2 -5, 2 15)'));
+select '22', ST_AsEWKT(ST_Normalize(ST_Split('SRID=12;POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(5 2, 8 2, 8 8, 5 8, 5 2))', 'SRID=12;LINESTRING(2 -5, 2 15)')));
-- Split double-hole polygon by line crossing exterior and both holes
-select '23', st_asewkt(ST_Split('SRID=12;POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 8 2, 8 4, 2 4, 2 2),(2 6,8 6,8 8,2 8,2 6))', 'SRID=12;LINESTRING(5 -5, 5 15)'));
+select '23', ST_AsEWKT(ST_Normalize(ST_Split('SRID=12;POLYGON((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 8 2, 8 4, 2 4, 2 2),(2 6,8 6,8 8,2 8,2 6))', 'SRID=12;LINESTRING(5 -5, 5 15)')));
-- Split multiline by line crossing both
-select '30', st_asewkt(st_split('SRID=10;MULTILINESTRING((0 0, 10 0),(0 5, 10 5))', 'SRID=10;LINESTRING(5 -5, 5 10)'));
+select '30', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;MULTILINESTRING((0 0, 10 0),(0 5, 10 5))', 'SRID=10;LINESTRING(5 -5, 5 10)')));
-- Split multiline by line crossing only one of them
-select '31', st_asewkt(st_split('SRID=10;MULTILINESTRING((0 0, 10 0),(0 5, 10 5))', 'SRID=10;LINESTRING(5 -5, 5 2)'));
+select '31', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;MULTILINESTRING((0 0, 10 0),(0 5, 10 5))', 'SRID=10;LINESTRING(5 -5, 5 2)')));
-- Split multiline by disjoint line
-select '32', st_asewkt(st_split('SRID=10;MULTILINESTRING((0 0, 10 0),(0 5, 10 5))', 'SRID=10;LINESTRING(5 10, 5 20)'));
+select '32', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;MULTILINESTRING((0 0, 10 0),(0 5, 10 5))', 'SRID=10;LINESTRING(5 10, 5 20)')));
-- Split multiline by point on one of them
-select '40', st_asewkt(st_split('SRID=10;MULTILINESTRING((0 0, 10 0),(0 5, 10 5))', 'SRID=10;POINT(5 0)'));
+select '40', ST_AsEWKT(ST_Normalize(ST_Split('SRID=10;MULTILINESTRING((0 0, 10 0),(0 5, 10 5))', 'SRID=10;POINT(5 0)')));
-- Split multipolygon by line
-select '50', st_asewkt(ST_Split('SRID=12;MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 8 2, 8 4, 2 4, 2 2),(2 6,8 6,8 8,2 8,2 6)),((20 0,20 10, 30 10, 30 0, 20 0),(25 5, 28 5, 25 8, 25 5)))', 'SRID=12;LINESTRING(5 -5, 5 15)'));
+select '50', ST_AsEWKT(ST_Normalize(ST_Split('SRID=12;MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 8 2, 8 4, 2 4, 2 2),(2 6,8 6,8 8,2 8,2 6)),((20 0,20 10, 30 10, 30 0, 20 0),(25 5, 28 5, 25 8, 25 5)))', 'SRID=12;LINESTRING(5 -5, 5 15)')));
-- Split geometrycollection by line
-select '60', st_asewkt(ST_Split('SRID=12;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 8 2, 8 4, 2 4, 2 2),(2 6,8 6,8 8,2 8,2 6)),((20 0,20 10, 30 10, 30 0, 20 0),(25 5, 28 5, 25 8, 25 5))),MULTILINESTRING((0 0, 10 0),(0 5, 10 5)))', 'SRID=12;LINESTRING(5 -5, 5 15)'));
+select '60', ST_AsEWKT(ST_Normalize(ST_Split('SRID=12;GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0),(2 2, 8 2, 8 4, 2 4, 2 2),(2 6,8 6,8 8,2 8,2 6)),((20 0,20 10, 30 10, 30 0, 20 0),(25 5, 28 5, 25 8, 25 5))),MULTILINESTRING((0 0, 10 0),(0 5, 10 5)))', 'SRID=12;LINESTRING(5 -5, 5 15)')));
-- Split 3d line by 2d line
-select '70', st_asewkt(ST_Split('SRID=11;LINESTRING(1691983.26 4874594.81 312.24, 1691984.86 4874593.69 312.24, 1691979.54 4874586.09 312.24, 1691978.03 4874587.16 298.36)', 'SRID=11;LINESTRING(1691978.0 4874589.0,1691982.0 4874588.53, 1691982.0 4874591.0)'));
+select '70', ST_AsEWKT(ST_Normalize(ST_Split('SRID=11;LINESTRING(1691983.26 4874594.81 312.24, 1691984.86 4874593.69 312.24, 1691979.54 4874586.09 312.24, 1691978.03 4874587.16 298.36)', 'SRID=11;LINESTRING(1691978.0 4874589.0,1691982.0 4874588.53, 1691982.0 4874591.0)')));
-- Split collapsed line by point
-- See http://trac.osgeo.org/postgis/ticket/1772
-select '80', st_asewkt(ST_Split('LINESTRING(0 1, 0 1, 0 1)', 'POINT(0 1)'));
-select '81', st_asewkt(ST_Split('LINESTRING(0 1, 0 1)', 'POINT(0 1)'));
+select '80', ST_AsEWKT(ST_Normalize(ST_Split('LINESTRING(0 1, 0 1, 0 1)', 'POINT(0 1)')));
+select '81', ST_AsEWKT(ST_Normalize(ST_Split('LINESTRING(0 1, 0 1)', 'POINT(0 1)')));
-- Split long line by vertex point
-- See http://trac.osgeo.org/postgis/ticket/2173
@@ -79,25 +79,25 @@ select '82', st_equals(g, st_union(
st_geometryn(st_split(g, st_pointn(g,p)), 2))) from inp;
-- Split line by multiline
-select '83', st_asewkt(ST_Split(
+select '83', ST_AsEWKT(ST_Split(
'SRID=3;LINESTRING(1 -1,1 1)',
'SRID=3;MULTILINESTRING((10 0, 10 4),(-4 0, 4 0))'
));
-- Split line by polygon (boundary)
-select '84', st_asewkt(ST_Split(
+select '84', ST_AsEWKT(ST_Split(
'SRID=3;LINESTRING(1 -1,1 1)',
'SRID=3;POLYGON((-10 -10,-10 10,10 10,10 -10,-10 -10),(-4 2,-4 0,4 0,4 2,-4 2))'
));
-- Split line by multipolygon (boundary)
-select '85', st_asewkt(ST_Split(
+select '85', ST_AsEWKT(ST_Split(
'SRID=3;LINESTRING(1 -2,1 1,4 1)',
'SRID=3;MULTIPOLYGON(((0 -1,0 -3,2 -3,2 -1,0 -1)),((3 0,3 2,5 2,5 0,3 0)))'
));
-- Split multiline by multipoint
-select '86', st_asewkt(ST_Split(
+select '86', ST_AsEWKT(ST_Split(
'SRID=3;MULTILINESTRING((0 0,10 0),(5 -5, 5 5),(0 20,10 20))',
'SRID=3;MULTIPOINT(2 6,5 0,5 20,2 20,8 20,8 0,5 -2,0 0, 5 -5, 10 20)'
));
diff --git a/regress/core/split_expected b/regress/core/split_expected
index a73ba15..b4b4ada 100644
--- a/regress/core/split_expected
+++ b/regress/core/split_expected
@@ -1,26 +1,26 @@
ERROR: ST_Split: Operation on mixed SRID geometries (LineString, 10) != (Point, 5)
-1|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,5 0),LINESTRING(5 0,10 0))
-1.1|SRID=10;GEOMETRYCOLLECTION(LINESTRING(10 0,5 0),LINESTRING(5 0,0 0))
+ERROR: ST_Split: Operation on mixed SRID geometries (LineString, 10) != (LineString, 5)
+1|SRID=10;GEOMETRYCOLLECTION(LINESTRING(5 0,10 0),LINESTRING(0 0,5 0))
+1.1|SRID=10;GEOMETRYCOLLECTION(LINESTRING(5 0,10 0),LINESTRING(0 0,5 0))
2|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,10 0))
3|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,10 0))
-ERROR: ST_Split: Operation on mixed SRID geometries (LineString, 10) != (LineString, 5)
4|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,10 0))
5|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,10 0))
-6|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,5 0),LINESTRING(5 0,10 0))
-7|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,5 0),LINESTRING(5 0,10 0,10 10,5 10),LINESTRING(5 10,0 10,0 20,5 20),LINESTRING(5 20,10 20))
+6|SRID=10;GEOMETRYCOLLECTION(LINESTRING(5 0,10 0),LINESTRING(0 0,5 0))
+7|SRID=10;GEOMETRYCOLLECTION(LINESTRING(5 10,0 10,0 20,5 20),LINESTRING(5 0,10 0,10 10,5 10),LINESTRING(5 20,10 20),LINESTRING(0 0,5 0))
ERROR: Splitter line has linear intersection with input
ERROR: Splitter line has linear intersection with input
-20|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,0 0,0 10,5 10,5 0)),POLYGON((5 10,10 10,10 0,5 0,5 10)))
-21|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,0 0,0 10,5 10,5 8,2 8,2 2,5 2,5 0)),POLYGON((5 10,10 10,10 0,5 0,5 2,8 2,8 8,5 8,5 10)))
-22|SRID=12;GEOMETRYCOLLECTION(POLYGON((2 0,0 0,0 10,2 10,2 0)),POLYGON((2 10,10 10,10 0,2 0,2 10),(5 2,8 2,8 8,5 8,5 2)))
-23|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,0 0,0 10,5 10,5 8,2 8,2 6,5 6,5 4,2 4,2 2,5 2,5 0)),POLYGON((5 10,10 10,10 0,5 0,5 2,8 2,8 4,5 4,5 6,8 6,8 8,5 8,5 10)))
-30|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,5 0),LINESTRING(5 0,10 0),LINESTRING(0 5,5 5),LINESTRING(5 5,10 5))
-31|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,5 0),LINESTRING(5 0,10 0),LINESTRING(0 5,10 5))
-32|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,10 0),LINESTRING(0 5,10 5))
-40|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 0,5 0),LINESTRING(5 0,10 0),LINESTRING(0 5,10 5))
-50|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,0 0,0 10,5 10,5 8,2 8,2 6,5 6,5 4,2 4,2 2,5 2,5 0)),POLYGON((5 10,10 10,10 0,5 0,5 2,8 2,8 4,5 4,5 6,8 6,8 8,5 8,5 10)),POLYGON((20 0,20 10,30 10,30 0,20 0),(25 5,28 5,25 8,25 5)))
-60|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,0 0,0 10,5 10,5 8,2 8,2 6,5 6,5 4,2 4,2 2,5 2,5 0)),POLYGON((5 10,10 10,10 0,5 0,5 2,8 2,8 4,5 4,5 6,8 6,8 8,5 8,5 10)),POLYGON((20 0,20 10,30 10,30 0,20 0),(25 5,28 5,25 8,25 5)),LINESTRING(0 0,5 0),LINESTRING(5 0,10 0),LINESTRING(0 5,5 5),LINESTRING(5 5,10 5))
-70|SRID=11;GEOMETRYCOLLECTION(LINESTRING(1691983.26 4874594.81 312.24,1691984.86 4874593.69 312.24,1691982 4874589.60428571 312.24),LINESTRING(1691982 4874589.60428571 312.24,1691981.30515131 4874588.61164472 312.24),LINESTRING(1691981.30515131 4874588.61164472 312.24,1691979.54 4874586.09 312.24,1691978.03 4874587.16 298.36))
+20|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,5 10,10 10,10 0,5 0)),POLYGON((0 0,0 10,5 10,5 0,0 0)))
+21|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,5 2,8 2,8 8,5 8,5 10,10 10,10 0,5 0)),POLYGON((0 0,0 10,5 10,5 8,2 8,2 2,5 2,5 0,0 0)))
+22|SRID=12;GEOMETRYCOLLECTION(POLYGON((2 0,2 10,10 10,10 0,2 0),(5 2,8 2,8 8,5 8,5 2)),POLYGON((0 0,0 10,2 10,2 0,0 0)))
+23|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,5 2,8 2,8 4,5 4,5 6,8 6,8 8,5 8,5 10,10 10,10 0,5 0)),POLYGON((0 0,0 10,5 10,5 8,2 8,2 6,5 6,5 4,2 4,2 2,5 2,5 0,0 0)))
+30|SRID=10;GEOMETRYCOLLECTION(LINESTRING(5 5,10 5),LINESTRING(5 0,10 0),LINESTRING(0 5,5 5),LINESTRING(0 0,5 0))
+31|SRID=10;GEOMETRYCOLLECTION(LINESTRING(5 0,10 0),LINESTRING(0 5,10 5),LINESTRING(0 0,5 0))
+32|SRID=10;GEOMETRYCOLLECTION(LINESTRING(0 5,10 5),LINESTRING(0 0,10 0))
+40|SRID=10;GEOMETRYCOLLECTION(LINESTRING(5 0,10 0),LINESTRING(0 5,10 5),LINESTRING(0 0,5 0))
+50|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,5 2,8 2,8 4,5 4,5 6,8 6,8 8,5 8,5 10,10 10,10 0,5 0)),POLYGON((0 0,0 10,5 10,5 8,2 8,2 6,5 6,5 4,2 4,2 2,5 2,5 0,0 0)),POLYGON((20 0,20 10,30 10,30 0,20 0),(25 5,28 5,25 8,25 5)))
+60|SRID=12;GEOMETRYCOLLECTION(POLYGON((5 0,5 2,8 2,8 4,5 4,5 6,8 6,8 8,5 8,5 10,10 10,10 0,5 0)),POLYGON((0 0,0 10,5 10,5 8,2 8,2 6,5 6,5 4,2 4,2 2,5 2,5 0,0 0)),POLYGON((20 0,20 10,30 10,30 0,20 0),(25 5,28 5,25 8,25 5)),LINESTRING(5 5,10 5),LINESTRING(5 0,10 0),LINESTRING(0 5,5 5),LINESTRING(0 0,5 0))
+70|SRID=11;GEOMETRYCOLLECTION(LINESTRING(1691982 4874589.60428571 312.24,1691984.86 4874593.69 312.24,1691983.26 4874594.81 312.24),LINESTRING(1691978.03 4874587.16 298.36,1691979.54 4874586.09 312.24,1691981.30515131 4874588.61164472 312.24),LINESTRING(1691981.30515131 4874588.61164472 312.24,1691982 4874589.60428571 312.24))
80|GEOMETRYCOLLECTION(LINESTRING(0 1,0 1,0 1))
81|GEOMETRYCOLLECTION(LINESTRING(0 1,0 1))
82|t
diff --git a/regress/core/subdivide.sql b/regress/core/subdivide.sql
index e61aabf..bfab9da 100644
--- a/regress/core/subdivide.sql
+++ b/regress/core/subdivide.sql
@@ -52,7 +52,7 @@ create table big_polygon_sliced as (
SELECT '4' As rn,
(select ST_Area(geom)::numeric(12,1) from big_polygon) as orig_area,
SUM(ST_Area(gs.geom))::numeric(12,1) as pieces_area,
- COUNT(gs.geom) as num_pieces,
+-- COUNT(gs.geom) as num_pieces,
MAX(ST_NPoints(gs.geom)) as max_vert
FROM big_polygon_sliced gs;
diff --git a/regress/core/subdivide_expected b/regress/core/subdivide_expected
index bf58e60..cd9e83d 100644
--- a/regress/core/subdivide_expected
+++ b/regress/core/subdivide_expected
@@ -4,7 +4,7 @@
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
+4|29321996468.6|29321996468.6|256
#4211|0.00008316000
#4217|0.00002463668
#4301|0.00213614552
diff --git a/regress/core/tickets.sql b/regress/core/tickets.sql
index 842bd07..4e60c96 100644
--- a/regress/core/tickets.sql
+++ b/regress/core/tickets.sql
@@ -5,7 +5,7 @@
SET client_min_messages TO NOTICE;
-- #2 --
-SELECT '#2', ST_AsText(ST_Union(g)) FROM
+SELECT '#2', ST_AsText(ST_Normalize(ST_Union(g)) ) FROM
( VALUES
('SRID=4326;MULTIPOLYGON(((1 1,1 2,2 2,2 1,1 1)))'),
('SRID=4326;MULTIPOLYGON(((2 1,3 1,3 2,2 2,2 1)))')
@@ -386,7 +386,7 @@ SELECT '#804', ST_AsGML(3, 'SRID=4326;POINT(0 0)'::geometry, 0, 1);
SELECT '#845', ST_Intersects('POINT(169.69960846592 -46.5061209281002)'::geometry, 'POLYGON((169.699607857174 -46.5061218662,169.699607857174 -46.5061195965597,169.699608806526 -46.5061195965597,169.699608806526 -46.5061218662,169.699607857174 -46.5061218662))'::geometry);
-- #834
-SELECT '#834', ST_AsEWKT(ST_Intersection('LINESTRING(0 0,0 10,10 10,10 0)', 'LINESTRING(10 10 4,10 0 5,0 0 5)'));
+SELECT '#834', ST_AsEWKT(ST_Normalize(ST_Force2D(ST_Intersection('LINESTRING(0 0,0 10,10 10,10 0)', 'LINESTRING(10 10 4,10 0 5,0 0 5)'))));
-- #884 --
CREATE TABLE foo (id integer, the_geom geometry);
@@ -591,7 +591,7 @@ select '#1578', st_within(p, mp), st_intersects(p, mp) FROM inp;
-- #1580
select '#1580.1', ST_Summary(ST_Transform('SRID=4326;POINT(0 0)'::geometry, 3395));
-select '#1580.2', ST_Transform('SRID=4326;POINT(180 90)'::geometry, 3395); -- fails
+select '#1580.2', ST_Transform('SRID=4326;POINT(180 95)'::geometry, 3395); -- fails
select '#1580.3', ST_Summary(ST_Transform('SRID=4326;POINT(0 0)'::geometry, 3395));
-- #1596 --
@@ -776,7 +776,7 @@ round(ST_Length(St_Segmentize(ST_GeographyFromText('LINESTRING(-89.3000030518 28
SELECT '#2232', ST_AsSVG('LINESTRING(0 0, 0.4 0, 0.8 0, 1.2 0,1.6 0, 2 0)'::geometry,1,0);
-- #2307 --
-SELECT '#2307', ST_AsText(ST_SnapToGrid(ST_MakeValid('0106000020E6100000010000000103000000010000000A0000004B7DA956B99844C0DB0790FE8B4D1DC010BA74A9AF9444C049AFFC5B8C4D1DC03FC6CC690D9844C0DD67E5628C4D1DC07117B56B0D9844C0C80ABA67C45E1DC0839166ABAF9444C0387D4568C45E1DC010BA74A9AF9444C049AFFC5B8C4D1DC040C3CD74169444C0362EC0608C4D1DC07C1A3B77169444C0DC3ADB40B2641DC03AAE5F68B99844C0242948DEB1641DC04B7DA956B99844C0DB0790FE8B4D1DC0'::geometry),0.0001));
+SELECT '#2307', ST_AsText(ST_Normalize(ST_MakeValid('0106000020E6100000010000000103000000010000000A0000004B7DA956B99844C0DB0790FE8B4D1DC010BA74A9AF9444C049AFFC5B8C4D1DC03FC6CC690D9844C0DD67E5628C4D1DC07117B56B0D9844C0C80ABA67C45E1DC0839166ABAF9444C0387D4568C45E1DC010BA74A9AF9444C049AFFC5B8C4D1DC040C3CD74169444C0362EC0608C4D1DC07C1A3B77169444C0DC3ADB40B2641DC03AAE5F68B99844C0242948DEB1641DC04B7DA956B99844C0DB0790FE8B4D1DC0'::geometry)),4);
SELECT '#2409', ST_Summary('GEOMETRYCOLLECTION(MULTISURFACE(POLYGON((0 0, 0 1, 1 1, 1 0, 0 0)),CURVEPOLYGON(COMPOUNDCURVE((0 0, 0 1, 1 1, 1 0, 0 0),CIRCULARSTRING(0 0, 0 1, 1 1, 1 2, 0 0)))),TIN(((0 0, 0 1, 1 1, 0 0))))'::geometry);
@@ -793,8 +793,8 @@ SELECT '#2420.1', ST_AsText(ST_LineToCurve('LINESTRING(0 0,10 0,10 10,0 10,0 0)'
SELECT '#2420.2', ST_AsText(ST_LineToCurve('LINESTRING(0 0,10 0,10 10,0 10)'));
SELECT '#2423', ST_AsText(ST_SnapToGrid(ST_CurveToLine(ST_LineToCurve(
- ST_Intersection(ST_Buffer(ST_Point(0,0),10),ST_MakeEnvelope(-10,0,10,10))
-), 4), 1e-5));
+ ST_Normalize(ST_Intersection(ST_Buffer(ST_Point(0,0),10),ST_MakeEnvelope(-10,0,10,10)))
+), 4), 0.0001), 3);
SELECT '#2424', ST_AsText(ST_SnapToGrid(ST_CurveToLine(
'MULTICURVE(COMPOUNDCURVE((0 0, 10 0),CIRCULARSTRING(10 0, 20 1, 30 10)))',
@@ -1294,4 +1294,20 @@ SELECT '#4670-1', ST_AsEWKT(ST_AddPoint('LINESTRING(0 0, 1 1, 3 3, 4 4)'::geomet
SELECT '#4670-2', ST_AsEWKT(ST_AddPoint('LINESTRING(0 0, 1 1, 3 3, 4 4)'::geometry, 'POINT(2 2)'::geometry, 2));
SELECT '#4670-3', ST_AsEWKT(ST_AddPoint('LINESTRING(0 0, 1 1, 3 3, 4 4)'::geometry, 'POINT(2 2)'::geometry, 3));
SELECT '#4670-4', ST_AsEWKT(ST_AddPoint('LINESTRING(0 0, 1 1, 3 3, 4 4)'::geometry, 'POINT(2 2)'::geometry, 4));
-SELECT '#4670-5', ST_AsEWKT(ST_AddPoint('LINESTRING(0 0, 1 1, 3 3, 4 4)'::geometry, 'POINT(2 2)'::geometry, 5));
\ No newline at end of file
+SELECT '#4670-5', ST_AsEWKT(ST_AddPoint('LINESTRING(0 0, 1 1, 3 3, 4 4)'::geometry, 'POINT(2 2)'::geometry, 5));
+
+SELECT '#4689', _ST_DistanceTree('POLYGON ((30 10, 40 40, 20 40, 30 10))'::geography, 'POLYGON((81 6,140 35,-70 18,-51 0,-60 -46,106 -6,81 6))');
+
+SELECT '#4718',
+ round(degrees(
+ ST_Azimuth('POINT(77.46412 37.96999)'::geography,
+ 'POINT(77.46409 37.96999)'::geography
+ ))::numeric,3),
+ round(degrees(
+ ST_Azimuth('POINT(77.46412 37.96999)'::geography,
+ 'POINT(77.46429 37.96999)'::geography
+ ))::numeric,3);
+
+SELECT '#4727', _ST_DistanceTree('SRID=4326;POLYGON((-179.9 -85.05112877980659, -179.9 74.99999999999997, -152 80, -130 84.99999999999997, -115 85.05112877980659, -60 85.05112877980659, -60 79, -70 70, -130 50, -80 6, -65 -53, -100 -85.05112877980659, -179.9 -85.05112877980659))'::geography,
+ ST_MakePoint(-150,-40), 0.0, true);
+
diff --git a/regress/core/tickets_expected b/regress/core/tickets_expected
index fbf9316..349500c 100644
--- a/regress/core/tickets_expected
+++ b/regress/core/tickets_expected
@@ -128,7 +128,7 @@ ERROR: First argument must be a LINESTRING
#723|f
#804|<gml:Point srsName="urn:ogc:def:crs:EPSG::4326"><gml:pos srsDimension="2">0 0</gml:pos></gml:Point>
#845|t
-#834|GEOMETRYCOLLECTION(POINT(0 0 5),LINESTRING(10 10 5,10 0 5))
+#834|GEOMETRYCOLLECTION(LINESTRING(10 0,10 10),POINT(0 0))
#884|1|f
#884|2|t
#938|
@@ -195,7 +195,7 @@ ERROR: got NULL for SRID (500001)
#1543|MULTILINESTRING((0 0,10 0,10 10,0 0),(0 0))|POLYGON((0 0,10 10,10 0,0 0))
#1578|f|f
#1580.1|Point[S]
-ERROR: transform: tolerance condition error (-20)
+ERROR: transform: latitude or longitude exceeded limits (-14)
#1580.3|Point[S]
#1596.1|public.road_pg.roads_geom SRID:3395 TYPE:POINT DIMS:2
ERROR: invalid SRID: 330000 not found in spatial_ref_sys
@@ -236,7 +236,7 @@ ERROR: invalid GML representation
#2110.3|t
#2145|6792004
#2232|M 0 0 l 0 0 1 0 0 0 1 0 0 0
-#2307|MULTIPOLYGON(((-41.1932 -7.3257,-41.1616 -7.3257,-41.1569 -7.3257,-41.1569 -7.3483,-41.1932 -7.3483,-41.1932 -7.3257),(-41.1616 -7.3257,-41.1879 -7.3257,-41.1879 -7.3425,-41.1616 -7.3425,-41.1616 -7.3257)))
+#2307|MULTIPOLYGON(((-41.1932 -7.3483,-41.1932 -7.3257,-41.1616 -7.3257,-41.1569 -7.3257,-41.1569 -7.3483,-41.1932 -7.3483),(-41.1879 -7.3425,-41.1616 -7.3425,-41.1616 -7.3257,-41.1879 -7.3257,-41.1879 -7.3425)))
#2409|GeometryCollection[B] with 2 elements:
MultiSurface[] with 2 elements:
Polygon[] with 1 ring:
@@ -252,7 +252,7 @@ ERROR: invalid GML representation
#2412|LINESTRING(0 0,10 0,20 0)
#2420.1|LINESTRING(0 0,10 0,10 10,0 10,0 0)
#2420.2|LINESTRING(0 0,10 0,10 10,0 10)
-#2423|POLYGON((-10 0,-9.2388 3.82683,-7.07107 7.07107,-3.82683 9.2388,0 10,3.82683 9.2388,7.07107 7.07107,9.2388 3.82683,10 0,-10 0))
+#2423|POLYGON((-10 0,-9.239 3.827,-7.071 7.071,-3.827 9.239,0 10,3.827 9.239,7.071 7.071,9.239 3.827,10 0,-10 0))
#2424|MULTILINESTRING((0 0,10 0,24 3,30 10))
#2427|POINT(-1 0)
#2168|5340.76237395|5340.76237395|0
@@ -433,3 +433,6 @@ ERROR: BOX2D_construct: args can not be empty points
#4670-3|LINESTRING(0 0,1 1,3 3,2 2,4 4)
#4670-4|LINESTRING(0 0,1 1,3 3,4 4,2 2)
ERROR: LWGEOM_addpoint: Invalid offset
+#4689|0
+#4718|-90.000|90.000
+#4727|0
diff --git a/regress/core/unaryunion.sql b/regress/core/unaryunion.sql
index 7882673..21e33d3 100644
--- a/regress/core/unaryunion.sql
+++ b/regress/core/unaryunion.sql
@@ -1,10 +1,10 @@
-- Noding a multilinestring
-SELECT 1, ST_AsText(ST_UnaryUnion('MULTILINESTRING((0 0, 10 0), (5 -5, 5 5))'));
+SELECT 1, ST_AsText(ST_Normalize(ST_UnaryUnion('MULTILINESTRING((0 0, 10 0), (5 -5, 5 5))')) );
-- Unioning a set of polygons (CascadedUnion)
-SELECT 2, ST_AsText(ST_UnaryUnion('GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)),POLYGON((5 5, 15 5, 15 15, 5 15, 5 5)))'));
+SELECT 2, ST_AsText(ST_Normalize(ST_UnaryUnion('GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)),POLYGON((5 5, 15 5, 15 15, 5 15, 5 5)))')));
-- Unioning an heterogeneous collection of geometries
-SELECT 3, ST_AsText(ST_UnaryUnion('GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)),POLYGON((5 5, 15 5, 15 15, 5 15, 5 5)), MULTIPOINT(5 4, -5 4),LINESTRING(2 -10, 2 20))'));
+SELECT 3, ST_AsText(ST_Normalize(ST_UnaryUnion('GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0)),POLYGON((5 5, 15 5, 15 15, 5 15, 5 5)), MULTIPOINT(5 4, -5 4),LINESTRING(2 -10, 2 20))')));
diff --git a/regress/core/unaryunion_expected b/regress/core/unaryunion_expected
index 074bc6c..815f73b 100644
--- a/regress/core/unaryunion_expected
+++ b/regress/core/unaryunion_expected
@@ -1,3 +1,3 @@
-1|MULTILINESTRING((0 0,5 0),(5 0,10 0),(5 -5,5 0),(5 0,5 5))
-2|POLYGON((10 5,10 0,0 0,0 10,5 10,5 15,15 15,15 5,10 5))
-3|GEOMETRYCOLLECTION(POINT(-5 4),LINESTRING(2 -10,2 0),LINESTRING(2 10,2 20),POLYGON((10 5,10 0,2 0,0 0,0 10,2 10,5 10,5 15,15 15,15 5,10 5)))
+1|MULTILINESTRING((5 0,10 0),(5 0,5 5),(5 -5,5 0),(0 0,5 0))
+2|POLYGON((0 0,0 10,5 10,5 15,15 15,15 5,10 5,10 0,0 0))
+3|GEOMETRYCOLLECTION(POLYGON((0 0,0 10,2 10,5 10,5 15,15 15,15 5,10 5,10 0,2 0,0 0)),LINESTRING(2 10,2 20),LINESTRING(2 -10,2 0),POINT(-5 4))
-----------------------------------------------------------------------
Summary of changes:
NEWS | 4 +--
README.postgis | 4 +--
Version.config | 2 +-
doc/release_notes.xml | 20 +++++++++++++
liblwgeom/cunit/cu_geos.c | 8 ++++-
regress/core/clean.sql | 2 +-
regress/core/clean_expected | 2 +-
regress/core/regress_ogc.sql | 8 ++---
regress/core/regress_ogc_expected | 4 +--
regress/core/split.sql | 62 +++++++++++++++++++--------------------
regress/core/split_expected | 32 ++++++++++----------
regress/core/subdivide.sql | 2 +-
regress/core/subdivide_expected | 2 +-
regress/core/tickets.sql | 30 ++++++++++++++-----
regress/core/tickets_expected | 11 ++++---
regress/core/unaryunion.sql | 6 ++--
regress/core/unaryunion_expected | 6 ++--
17 files changed, 125 insertions(+), 80 deletions(-)
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list