* Bug Fixes *
+ - #1776, fix ST_SymDifference(empty, geom) to return geom
- #1708, improve restore of PosgreSQL 9.1 backups
- #1766, don't let ST_RemEdge* destroy peripheral TopoGeometry objects.
- #1714, more robust handling of high topology tolerance.
if ( lwgeom_is_empty(geom2) )
return lwgeom_clone(geom1);
- /* Empty.DymDifference(B) == Empty */
+ /* Empty.DymDifference(B) == B */
if ( lwgeom_is_empty(geom1) )
- return lwgeom_clone(geom1);
+ return lwgeom_clone(geom2);
/* ensure srids are identical */
srid = (int)(geom1->srid);
-- #1755 --
select '#1755', st_geographyFromText('SRID=4326;Point(85 35 0)');
+-- #1776 --
+with inp as ( SELECT
+ 'POLYGON EMPTY'::geometry as A,
+ 'POLYGON((0 0, 10 0, 10 10, 0 0))'::geometry as B )
+SELECT '#1776',
+ ST_AsText(ST_SymDifference(A,B)), ST_AsText(ST_SymDifference(B, A))
+FROM inp;
+
-- Clean up
DELETE FROM spatial_ref_sys;
#1697.3|1024
#1734.1|1026
#1755|01010000A0E6100000000000000040554000000000008041400000000000000000
+#1776|POLYGON((0 0,10 0,10 10,0 0))|POLYGON((0 0,10 0,10 10,0 0))