config root man

Current Path : /home/usr.opt/mysql57/mysql-test/suite/gis/r/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //home/usr.opt/mysql57/mysql-test/suite/gis/r/spatial_operators_difference.result

#Creating the spatial Geometry object
USE test;
CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY);
SET @star_elem_vertical= 'POLYGON((5 0,15 25,25 0,15 5,5 0))';
SET @star_elem_horizontal= 'POLYGON((25 0,0 15,30 15,22 10,25 0))';
SET @star_center= 'POINT(15 10)';
SET @star_top= 'POINT(15 25)';
SET @star_bottom_left= 'POINT(5 0)';
SET @star_bottom_right= 'POINT(25 0)';
SET @star_bottom_points= 'MULTIPOINT(5 0,25 0)';
SET @star_all_points= 'MULTIPOINT(5 0,25 0,15 10,15 25)';
SET @star_line_horizontal= 'LINESTRING(10 15,20 15)';
SET @star_line_vertical= 'LINESTRING(15 5,15 25)';
SET @star_top_to_center= 'LINESTRING(15 25,15 10)';
SET @star_lines_near_horizontal= 'MULTILINESTRING((25 0,0 15,15 30,0 5))';
SET @star_lines_near_vertical= 'MULTILINESTRING((0 5,15 25,0 25))';
SET @star= 'POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))';
SET @star_elem_vertical_val= '((5 0,15 25,25 0,15 5,5 0))';
SET @star_elem_horizontal_val= '((25 0,0 15,30 15,22 10,25 0))';
SET @star_of_elems='MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))';
SET @star_collection_elems='GEOMETRYCOLLECTION(MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0))),POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0)),LINESTRING(15 25,15 10),MULTIPOINT(5 0,25 0),POINT(15 25))';
SET @star_collection_multilinestr='GEOMETRYCOLLECTION(MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0))),POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0)),MULTILINESTRING((25 0,0 15,15 30,0 5)),LINESTRING(15 25,15 10),MULTIPOINT(5 0,25 0),POINT(15 25))';
SET @star_elem_vertical_1= 'POLYGON((5 0,15 25,25 0,15 5,5 0))';
SET @star_elem_horizontal_1= 'POLYGON((25 0,0 15,30 15,22 10,25 0))';
SET @star_center_1= 'POINT(15 10)';
SET @star_top_1= 'POINT(15 25)';
SET @star_bottom_left_1= 'POINT(5 0)';
SET @star_bottom_right_1= 'POINT(25 0)';
SET @star_bottom_points_1= 'MULTIPOINT(5 0,25 0)';
SET @star_all_points_1= 'MULTIPOINT(5 0,25 0,15 10,15 25)';
SET @star_line_horizontal_1= 'LINESTRING(10 15,20 15)';
SET @star_line_vertical_1= 'LINESTRING(15 5,15 25)';
SET @star_top_to_center_1= 'LINESTRING(15 25,15 10)';
SET @star_lines_near_horizontal_1= 'MULTILINESTRING((25 0,0 15,15 30,0 5))';
SET @star_lines_near_vertical_1= 'MULTILINESTRING((0 5,15 25,0 25))';
SET @star_1= 'POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))';
SET @star_elem_vertical_val_1= '((5 0,15 25,25 0,15 5,5 0))';
SET @star_elem_horizontal_val_1= '((25 0,0 15,30 15,22 10,25 0))';
SET @star_of_elems_1='MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))';
SET @star_collection_elems_1='GEOMETRYCOLLECTION(MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0))),POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0)),LINESTRING(15 25,15 10),MULTIPOINT(5 0,25 0),POINT(15 25))';
SET @star_elem_vertical_2= 'POLYGON((15 0,25 25,35 0,25 5,15 0))';
SET @star_elem_horizontal_2= 'POLYGON((35 0,10 15,40 15,32 10,35 0))';
SET @star_center_2= 'POINT(25 10)';
SET @star_top_2= 'POINT(25 25)';
SET @star_bottom_left_2= 'POINT(15 0)';
SET @star_bottom_right_2= 'POINT(35 0)';
SET @star_bottom_points_2= 'MULTIPOINT(15 0,35 0)';
SET @star_all_points_2= 'MULTIPOINT(15 0,35 0,35 10,25 25)';
SET @star_line_horizontal_2= 'LINESTRING(20 15,30 15)';
SET @star_line_vertical_2= 'LINESTRING(25 5,25 25)';
SET @star_top_to_center_2= 'LINESTRING(25 25,25 10)';
SET @star_lines_near_horizontal_2= 'MULTILINESTRING((35 0,10 15,25 30,10 5))';
SET @star_lines_near_vertical_2= 'MULTILINESTRING((10 5,25 25,10 25))';
SET @star_2= 'POLYGON((15 0,17 10,10 15,20 15,25 25,30 15,40 15,32 10,35 0,25 5,15 0))';
SET @star_elem_vertical_val_2= '((15 0,25 25,35 0,25 5,15 0))';
SET @star_elem_horizontal_val_2= '((35 0,10 15,40 15,32 10,35 0))';
SET @star_of_elems_2='MULTIPOLYGON(((15 0,25 25,35 0,25 5,15 0)),((35 0,10 15,40 15,32 10,35 0)))';
SET @star_collection_elems_2='GEOMETRYCOLLECTION(MULTIPOLYGON(((15 0,25 25,35 0,25 5,15 0)),((35 0,10 15,40 15,32 10,35 0))),POLYGON((15 0,17 10,10 15,20 15,25 25,30 15,40 15,32 10,35 0,25 5,15 0)),LINESTRING(25 25,25 10),MULTIPOINT(15 0,35 0),POINT(25 25))';
SET @star_elem_vertical_3= 'POLYGON((65 0,75 25,85 0,75 5,65 0))';
SET @star_elem_horizontal_3= 'POLYGON((85 0,60 15,90 15,82 10,85 0))';
SET @star_center_3= 'POINT(75 10)';
SET @star_top_3= 'POINT(75 25)';
SET @star_bottom_left_3= 'POINT(65 0)';
SET @star_bottom_right_3= 'POINT(85 0)';
SET @star_bottom_points_3= 'MULTIPOINT(65 0,85 0)';
SET @star_all_points_3= 'MULTIPOINT(65 0,85 0,75 10,75 25)';
SET @star_line_horizontal_3= 'LINESTRING(70 15,80 15)';
SET @star_line_vertical_3= 'LINESTRING(75 5,75 25)';
SET @star_top_to_center_3= 'LINESTRING(75 25,75 10)';
SET @star_lines_near_horizontal_3= 'MULTILINESTRING((85 0,60 15,85 30,60 5))';
SET @star_lines_near_vertical_3= 'MULTILINESTRING((60 5,75 25,60 25))';
SET @star_3= 'POLYGON((65 0,67 10,60 15,70 15,75 25,80 15,90 15,82 10,85 0,75 5,65 0))';
SET @star_elem_vertical_val_3= '((65 0,75 25,85 0,75 5,65 0))';
SET @star_elem_horizontal_val_3= '((85 0,60 15,90 15,82 10,85 0))';
SET @star_of_elems_3='MULTIPOLYGON(((65 0,75 25,85 0,75 5,65 0)),((85 0,60 15,90 15,82 10,85 0)))';
SET @star_collection_elems_3='GEOMETRYCOLLECTION(MULTIPOLYGON(((65 0,75 25,85 0,75 5,65 0)),((85 0,60 15,90 15,82 10,85 0))),POLYGON((65 0,67 10,60 15,70 15,75 25,80 15,90 15,82 10,85 0,75 5,65 0)),LINESTRING(75 25,75 10),MULTIPOINT(65 0,85 0),POINT(75 25))';
#INSERT base star
INSERT INTO gis_geometrycollection VALUES
(100,ST_GEOMFROMTEXT(@star)),
(101,ST_GEOMFROMTEXT(@star_elem_vertical)),
(102,ST_GEOMFROMTEXT(@star_elem_horizontal)),
(103,ST_GEOMFROMTEXT(@star_of_elems)),
(104,ST_GEOMFROMTEXT(@star_top)),
(105,ST_GEOMFROMTEXT(@star_center)),
(106,ST_GEOMFROMTEXT(@star_bottom_left)),
(107,ST_GEOMFROMTEXT(@star_bottom_right)),
(108,ST_GEOMFROMTEXT(@star_bottom_points)),
(109,ST_GEOMFROMTEXT(@star_all_points)),
(110,ST_GEOMFROMTEXT(@star_line_horizontal)),
(111,ST_GEOMFROMTEXT(@star_line_vertical)),
(112,ST_GEOMFROMTEXT(@star_top_to_center)),
(113,ST_GEOMFROMTEXT(@star_lines_near_horizontal)),
(114,ST_GEOMFROMTEXT(@star_lines_near_vertical)),
(115,ST_GEOMFROMTEXT(@star_collection_elems));
#INSERT identical (to base) star
INSERT INTO gis_geometrycollection VALUES
(200,ST_GEOMFROMTEXT(@star_1)),
(201,ST_GEOMFROMTEXT(@star_elem_vertical_1)),
(202,ST_GEOMFROMTEXT(@star_elem_horizontal_1)),
(203,ST_GEOMFROMTEXT(@star_of_elems_1)),
(204,ST_GEOMFROMTEXT(@star_top_1)),
(205,ST_GEOMFROMTEXT(@star_center_1)),
(206,ST_GEOMFROMTEXT(@star_bottom_left_1)),
(207,ST_GEOMFROMTEXT(@star_bottom_right_1)),
(208,ST_GEOMFROMTEXT(@star_bottom_points_1)),
(209,ST_GEOMFROMTEXT(@star_all_points_1)),
(210,ST_GEOMFROMTEXT(@star_line_horizontal_1)),
(211,ST_GEOMFROMTEXT(@star_line_vertical_1)),
(212,ST_GEOMFROMTEXT(@star_top_to_center_1)),
(213,ST_GEOMFROMTEXT(@star_lines_near_horizontal_1)),
(214,ST_GEOMFROMTEXT(@star_lines_near_vertical_1)),
(215,ST_GEOMFROMTEXT(@star_collection_elems_1));
#INSERT overlapping star
INSERT INTO gis_geometrycollection VALUES
(300,ST_GEOMFROMTEXT(@star_2)),
(301,ST_GEOMFROMTEXT(@star_elem_vertical_2)),
(302,ST_GEOMFROMTEXT(@star_elem_horizontal_2)),
(303,ST_GEOMFROMTEXT(@star_of_elems_2)),
(304,ST_GEOMFROMTEXT(@star_top_2)),
(305,ST_GEOMFROMTEXT(@star_center_2)),
(306,ST_GEOMFROMTEXT(@star_bottom_left_2)),
(307,ST_GEOMFROMTEXT(@star_bottom_right_2)),
(308,ST_GEOMFROMTEXT(@star_bottom_points_2)),
(309,ST_GEOMFROMTEXT(@star_all_points_2)),
(310,ST_GEOMFROMTEXT(@star_line_horizontal_2)),
(311,ST_GEOMFROMTEXT(@star_line_vertical_2)),
(312,ST_GEOMFROMTEXT(@star_top_to_center_2)),
(313,ST_GEOMFROMTEXT(@star_lines_near_horizontal_2)),
(314,ST_GEOMFROMTEXT(@star_lines_near_vertical_2)),
(315,ST_GEOMFROMTEXT(@star_collection_elems_2));
#INSERT seperate star
INSERT INTO gis_geometrycollection VALUES
(400,ST_GEOMFROMTEXT(@star_3)),
(401,ST_GEOMFROMTEXT(@star_elem_vertical_3)),
(402,ST_GEOMFROMTEXT(@star_elem_horizontal_3)),
(403,ST_GEOMFROMTEXT(@star_of_elems_3)),
(404,ST_GEOMFROMTEXT(@star_top_3)),
(405,ST_GEOMFROMTEXT(@star_center_3)),
(406,ST_GEOMFROMTEXT(@star_bottom_left_3)),
(407,ST_GEOMFROMTEXT(@star_bottom_right_3)),
(408,ST_GEOMFROMTEXT(@star_bottom_points_3)),
(409,ST_GEOMFROMTEXT(@star_all_points_3)),
(410,ST_GEOMFROMTEXT(@star_line_horizontal_3)),
(411,ST_GEOMFROMTEXT(@star_line_vertical_3)),
(412,ST_GEOMFROMTEXT(@star_top_to_center_3)),
(413,ST_GEOMFROMTEXT(@star_lines_near_horizontal_3)),
(414,ST_GEOMFROMTEXT(@star_lines_near_vertical_3)),
(415,ST_GEOMFROMTEXT(@star_collection_elems_3));
CREATE TABLE gis_geometrycollection_2 SELECT fid as fid2,g as g2 FROM gis_geometrycollection;
#Checking the integrity of the above create/insert statements 
#64 rows. 
SELECT count(ST_ASTEXT(g) != 'NULL') FROM gis_geometrycollection;
count(ST_ASTEXT(g) != 'NULL')
64
#64 rows. 
SELECT count(ST_ASTEXT(g2) != 'NULL') FROM gis_geometrycollection_2;
count(ST_ASTEXT(g2) != 'NULL')
64
#####################################################################################
# ST_DIFFERENCE(g1,g2)
#####################################################################################
#====================================================================================
# point,point
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star_center)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_center)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_center))) FROM gis_geometrycollection WHERE fid=105;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_center)))
GEOMETRYCOLLECTION()
#====================================================================================
# point,multipoint
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_bottom_left),ST_GEOMFROMTEXT(@star_bottom_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_bottom_left),ST_GEOMFROMTEXT(@star_bottom_points)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star_bottom_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star_bottom_points)))
POINT(15 10)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_points))) FROM gis_geometrycollection WHERE fid=106;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_points)))
GEOMETRYCOLLECTION()
#====================================================================================
# point,linestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_top_to_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_top_to_center)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_bottom_left),ST_GEOMFROMTEXT(@star_top_to_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_bottom_left),ST_GEOMFROMTEXT(@star_top_to_center)))
POINT(5 0)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center))) FROM gis_geometrycollection WHERE fid=104;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center)))
GEOMETRYCOLLECTION()
#====================================================================================
# point,multilinestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_lines_near_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_lines_near_vertical)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star_lines_near_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star_lines_near_vertical)))
POINT(15 10)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_vertical))) FROM gis_geometrycollection WHERE fid=104;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)))
GEOMETRYCOLLECTION()
#====================================================================================
# point,polygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_3),ST_GEOMFROMTEXT(@star)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_3),ST_GEOMFROMTEXT(@star)))
POINT(75 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star))) FROM gis_geometrycollection WHERE fid=104;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star)))
GEOMETRYCOLLECTION()
#====================================================================================
# point,multipolygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_of_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_of_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_3),ST_GEOMFROMTEXT(@star_of_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_3),ST_GEOMFROMTEXT(@star_of_elems)))
POINT(75 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_of_elems))) FROM gis_geometrycollection WHERE fid=104;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_of_elems)))
GEOMETRYCOLLECTION()
#====================================================================================
# point,geometrycollection
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_3),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_3),ST_GEOMFROMTEXT(@star_collection_elems)))
POINT(75 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems))) FROM gis_geometrycollection WHERE fid=104;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_multilinestr)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_multilinestr)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')))
POINT(0 0)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')))
POINT(0 0)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(4 4)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(3 3),LINESTRING(0 0,1 1))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(4 4)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(3 3),LINESTRING(0 0,1 1))')))
POINT(4 4)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(4 4)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(3 3),POLYGON((0 0,0 5,5 5,5 0,0 0)))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(4 4)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(3 3),POLYGON((0 0,0 5,5 5,5 0,0 0)))')))
GEOMETRYCOLLECTION()
#====================================================================================
# multipoint,point
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top)))
MULTIPOINT((5 0),(15 10),(25 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_center)))
MULTIPOINT((5 0),(25 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_left))) FROM gis_geometrycollection WHERE fid=108;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_left)))
POINT(25 0)
#====================================================================================
# multipoint,multipoint
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_bottom_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_bottom_points)))
MULTIPOINT((15 10),(15 25))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_all_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_all_points)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_all_points_1)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_all_points_1)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_all_points))) FROM gis_geometrycollection WHERE fid=108;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_all_points)))
GEOMETRYCOLLECTION()
#====================================================================================
# multipoint,linestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top_to_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top_to_center)))
MULTIPOINT((5 0),(25 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top_to_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top_to_center)))
MULTIPOINT((5 0),(25 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center))) FROM gis_geometrycollection WHERE fid=109;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center)))
MULTIPOINT((5 0),(25 0))
#====================================================================================
# multipoint,multilinestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_vertical)))
MULTIPOINT((5 0),(15 10),(25 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_horizontal)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_horizontal)))
MULTIPOINT((5 0),(15 10),(15 25))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal))) FROM gis_geometrycollection WHERE fid=109;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal)))
MULTIPOINT((5 0),(15 10),(15 25))
#====================================================================================
# multipoint,polygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_vertical)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_horizontal)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_horizontal)))
MULTIPOINT((5 0),(15 25))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_horizontal))) FROM gis_geometrycollection WHERE fid=109;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_horizontal)))
MULTIPOINT((5 0),(15 25))
#====================================================================================
# multipoint,multipolygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_of_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_of_elems)))
MULTIPOINT((0 0),(0 30),(30 25))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_of_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_of_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_of_elems))) FROM gis_geometrycollection WHERE fid=109;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_of_elems)))
GEOMETRYCOLLECTION()
#====================================================================================
# multipoint,geometrycollection
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_collection_elems)))
MULTIPOINT((0 0),(0 30),(30 25))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems))) FROM gis_geometrycollection WHERE fid=109;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_multilinestr)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_multilinestr)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 10)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 10)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')))
MULTIPOINT((0 0),(10 10))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOINT(0 0,1 1,2 2)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOINT(0 0,1 1,2 2)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')))
MULTIPOINT((0 0),(1 1),(2 2))
#====================================================================================
# linestring,point
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_center)))
LINESTRING(15 25,15 10)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(15 25,15 10)'),ST_GEOMFROMTEXT('POINT(15 10)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(15 25,15 10)'),ST_GEOMFROMTEXT('POINT(15 10)')))
LINESTRING(15 25,15 10)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_bottom_left)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_bottom_left)))
LINESTRING(15 25,15 10)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,g2)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=110 and fid2=105;
ST_ASTEXT(ST_DIFFERENCE(g,g2))
LINESTRING(10 15,20 15)
#====================================================================================
# linestring,multipoint
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')))
LINESTRING(15 5,15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_all_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_all_points)))
LINESTRING(15 5,15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)'))) FROM gis_geometrycollection WHERE fid=111;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')))
LINESTRING(15 5,15 25)
#====================================================================================
# linestring,linestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_top_to_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_top_to_center)))
LINESTRING(15 5,15 10)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_line_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_line_vertical)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_top_to_center_1)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_top_to_center_1)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center))) FROM gis_geometrycollection WHERE fid=111;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center)))
LINESTRING(15 5,15 10)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(3 3,4 4,5 5)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(3 3,4 4,5 5)')))
MULTILINESTRING((0 0,3 3),(5 5,10 10))
#====================================================================================
# linestring,multilinestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_horizontal)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_horizontal)))
LINESTRING(10 15,20 15)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_vertical)))
LINESTRING(10 15,20 15)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal))) FROM gis_geometrycollection WHERE fid=110;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal)))
LINESTRING(10 15,20 15)
#====================================================================================
# linestring,polygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('POLYGON((11 15,19 15,19 10,11 15))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('POLYGON((11 15,19 15,19 10,11 15))')))
MULTILINESTRING((10 15,11 15),(19 15,20 15))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT('POLYGON((11 15,19 15,19 10,11 15))'))) FROM gis_geometrycollection WHERE fid=110;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT('POLYGON((11 15,19 15,19 10,11 15))')))
MULTILINESTRING((10 15,11 15),(19 15,20 15))
#====================================================================================
# linestring,multipolygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,19 25,11 15)))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,19 25,11 15)))')))
MULTILINESTRING((10 15,11 15),(19 15,20 15))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems)))
MULTILINESTRING((10 15,11 15),(19 15,20 15))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,19 25,11 15)),((25 0,0 15,25 10,25 0)))'))) FROM gis_geometrycollection WHERE fid=110;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,19 25,11 15)),((25 0,0 15,25 10,25 0)))')))
MULTILINESTRING((10 15,11 15),(19 15,20 15))
#====================================================================================
# linestring,geometrycollection
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems_3)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems_3)))
LINESTRING(10 15,20 15)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems_3))) FROM gis_geometrycollection WHERE fid=110;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems_3)))
LINESTRING(10 15,20 15)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_multilinestr)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_multilinestr)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')))
LINESTRING(0 0,10 10)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(0 0,1 1,2 2)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(0 0,1 1,2 2)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')))
LINESTRING(0 0,1 1,2 2)
#====================================================================================
# multilinestring,point
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_top)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_top)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top))) FROM gis_geometrycollection WHERE fid=114;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top)))
LINESTRING(0 5,15 25,0 25)
#====================================================================================
# multilinestring,multipoint
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_bottom_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_bottom_points)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_all_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_all_points)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_points))) FROM gis_geometrycollection WHERE fid=114;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_points)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,g2)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=114 and fid2=108;
ST_ASTEXT(ST_DIFFERENCE(g,g2))
LINESTRING(0 5,15 25,0 25)
#====================================================================================
# multilinestring,linestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_vertical)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_line_vertical))) FROM gis_geometrycollection WHERE fid=114;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_line_vertical)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0, 1 1))'),ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0, 1 1))'),ST_GEOMFROMTEXT('LINESTRING(0 0, 1 1)')))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10))'),ST_GEOMFROMTEXT('LINESTRING(3 3,4 4,5 5)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10))'),ST_GEOMFROMTEXT('LINESTRING(3 3,4 4,5 5)')))
MULTILINESTRING((0 0,3 3),(5 5,10 10))
#====================================================================================
# multilinestring,multilinestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))')))
LINESTRING(15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))'))) FROM gis_geometrycollection WHERE fid=114;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))')))
LINESTRING(15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_line_vertical))) FROM gis_geometrycollection WHERE fid=114;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_line_vertical)))
LINESTRING(0 5,15 25,0 25)
#====================================================================================
# multilinestring,polygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_vertical)))
LINESTRING(0 5,15 25,0 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal)))
MULTILINESTRING((0 5,5.172413793103448 11.89655172413793),(7.5 15,15 25,0 25))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_vertical))) FROM gis_geometrycollection WHERE fid=114;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_vertical)))
LINESTRING(0 5,15 25,0 25)
#====================================================================================
# multilinestring,multipolygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_elem_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_elem_vertical)))
MULTILINESTRING((0 25,10.714285714285715 14.285714285714286),(25 0,25 30))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_of_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_of_elems)))
MULTILINESTRING((0 5,5.172413793103448 11.89655172413793),(7.5 15,15 25,0 25))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_of_elems))) FROM gis_geometrycollection WHERE fid=114;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_of_elems)))
MULTILINESTRING((0 5,5.172413793103448 11.89655172413793),(7.5 15,15 25,0 25))
#====================================================================================
# multilinestring,geometrycollection
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_collection_elems)))
MULTILINESTRING((0 25,10 15),(25 0,25 11.875),(25 15,25 30))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_collection_elems)))
MULTILINESTRING((0 5,4.883720930232558 11.511627906976745),(7.5 15,15 25,0 25))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems))) FROM gis_geometrycollection WHERE fid=114;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems)))
MULTILINESTRING((0 5,4.883720930232558 11.511627906976745),(7.5 15,15 25,0 25))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_horizontal),ST_GEOMFROMTEXT(@star_collection_multilinestr)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_lines_near_horizontal),ST_GEOMFROMTEXT(@star_collection_multilinestr)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10),(2 2,7 7))'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10),(2 2,7 7))'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')))
MULTILINESTRING((0 0,10 10),(2 2,7 7))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,1 1,2 2))'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION('
                                                                                                     'GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,1 1,2 2))'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION('
                                                                                                     'GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))
LINESTRING(0 0,1 1,2 2)
#====================================================================================
# polygon,point
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_center)))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('POINT(0 0)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('POINT(0 0)')))
POLYGON((5 0,15 25,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_center))) FROM gis_geometrycollection WHERE fid=100;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_center)))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
#====================================================================================
# polygon,multipoint
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_all_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_all_points)))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('MULTIPOINT(0 0,30 25)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('MULTIPOINT(0 0,30 25)')))
POLYGON((5 0,15 25,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_all_points))) FROM gis_geometrycollection WHERE fid=100;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_all_points)))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_all_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_all_points)))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
#====================================================================================
# polygon,linestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_line_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_line_vertical)))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)))
POLYGON((5 0,15 25,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_line_vertical))) FROM gis_geometrycollection WHERE fid=100;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_line_vertical)))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,g2)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=100 and fid2=111;
ST_ASTEXT(ST_DIFFERENCE(g,g2))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
#====================================================================================
# polygon,multilinestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_lines_near_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_lines_near_vertical)))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)))
POLYGON((5 0,15 25,25 0,15 5,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_vertical))) FROM gis_geometrycollection WHERE fid=100;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)))
POLYGON((5 0,7 10,0 15,10 15,15 25,20 15,30 15,22 10,25 0,15 5,5 0))
#====================================================================================
# polygon,polygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_elem_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_elem_vertical)))
MULTIPOLYGON(((15 25,25 0,22 10,30 15,20 15,15 25)),((15 25,10 15,0 15,7 10,5 0,15 25)))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((0 0, 1 0, 0 1, 0 0))'),ST_GEOMFROMTEXT('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((0 0, 1 0, 0 1, 0 0))'),ST_GEOMFROMTEXT('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))')))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_vertical))) FROM gis_geometrycollection WHERE fid=100;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_vertical)))
MULTIPOLYGON(((15 25,25 0,22 10,30 15,20 15,15 25)),((15 25,10 15,0 15,7 10,5 0,15 25)))
#====================================================================================
# polygon,multipolygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_of_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_of_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_of_elems_3)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_of_elems_3)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_of_elems))) FROM gis_geometrycollection WHERE fid=100;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_of_elems)))
GEOMETRYCOLLECTION()
#====================================================================================
# polygon,geometrycollection
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_elems_3)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_elems_3)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems))) FROM gis_geometrycollection WHERE fid=100;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')))
POLYGON((0 0,0 10,10 10,10 0,0 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')))
POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')))
POLYGON((4 4,4 6,6 6,6 4,4 4),(0 0,0 10,10 10,10 0,0 0))
#====================================================================================
# multipolygon,point
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top)))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POINT(30 30)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POINT(30 30)')))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top))) FROM gis_geometrycollection WHERE fid=103;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top)))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
#====================================================================================
# multipolygon,multipoint
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_bottom_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_bottom_points)))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_points))) FROM gis_geometrycollection WHERE fid=103;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_points)))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
#====================================================================================
# multipolygon,linestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top_to_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top_to_center)))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center))) FROM gis_geometrycollection WHERE fid=103;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center)))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
#====================================================================================
# multipolygon,multilinestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_vertical))) FROM gis_geometrycollection WHERE fid=103;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)))
MULTIPOLYGON(((5 0,15 25,25 0,15 5,5 0)),((25 0,0 15,30 15,22 10,25 0)))
#====================================================================================
# multipolygon,polygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_elem_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_elem_vertical)))
MULTIPOLYGON(((25 0,22 10,30 15,19 15,25 0)),((8.870967741935484 9.67741935483871,11 15,0 15,8.870967741935484 9.67741935483871)))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')))
MULTIPOLYGON(((23 15,25.333333333333332 12.083333333333334,30 15,23 15)),((6.617647058823529 11.029411764705882,9 15,0 15,6.617647058823529 11.029411764705882)))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_vertical))) FROM gis_geometrycollection WHERE fid=103;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_vertical)))
MULTIPOLYGON(((25 0,22 10,30 15,19 15,25 0)),((8.870967741935484 9.67741935483871,11 15,0 15,8.870967741935484 9.67741935483871)))
#====================================================================================
# multipolygon,multipolygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 -10,-10 -10,-10 0,0 0)))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 -10,-10 -10,-10 0,0 0)))')))
MULTIPOLYGON(((5 0,15 5,25 0,15 25,5 0)),((25 0,22 10,30 15,0 15,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)))'),
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)))'),
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))')))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)))'),
ST_GEOMFROMTEXT('MULTIPOLYGOn(((5 5,5 10,10 10,10 5,5 5)))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)))'),
ST_GEOMFROMTEXT('MULTIPOLYGOn(((5 5,5 10,10 10,10 5,5 5)))')))
POLYGON((5 5,0 5,0 0,5 0,5 5))
#====================================================================================
# multipolygon,geometrycollectionn
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_collection_elems_3)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_collection_elems_3)))
MULTIPOLYGON(((5 0,15 5,25 0,15 25,5 0)),((25 0,22 10,30 15,0 15,25 0)))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems))) FROM gis_geometrycollection WHERE fid=103;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,g2)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=115 and fid2=115;
ST_ASTEXT(ST_DIFFERENCE(g,g2))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_collection_multilinestr)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_collection_multilinestr)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)))'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION()')))
POLYGON((0 0,0 10,10 10,10 0,0 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')))
POLYGON((0 0,0 10,10 10,10 0,0 0),(4 4,4 6,6 6,6 4,4 4))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4)),((0 0,0 10,10 10,10 0,0 0)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4)),((0 0,0 10,10 10,10 0,0 0)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION()))')))
MULTIPOLYGON(((4 4,4 6,6 6,6 4,4 4)),((0 0,0 10,10 10,10 0,0 0)))
#====================================================================================
# geometrycollection,point
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POINT(30 30)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POINT(30 30)')))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top))) FROM gis_geometrycollection WHERE fid=115;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(3 3),LINESTRING(0 0,1 1))'),ST_GEOMFROMTEXT('POINT(4 4)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(3 3),LINESTRING(0 0,1 1))'),ST_GEOMFROMTEXT('POINT(4 4)')))
GEOMETRYCOLLECTION(POINT(3 3),LINESTRING(0 0,1 1))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(3 3),POLYGON((0 0,0 5,5 5,5 0,0 0)))'),ST_GEOMFROMTEXT('POINT(4 4)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(3 3),POLYGON((0 0,0 5,5 5,5 0,0 0)))'),ST_GEOMFROMTEXT('POINT(4 4)')))
POLYGON((0 0,5 0,5 5,0 5,0 0))
#====================================================================================
# geometrycollection,multipoint
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_bottom_points)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_bottom_points)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_points))) FROM gis_geometrycollection WHERE fid=115;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_bottom_points)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
#====================================================================================
# geometrycollection,linestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top_to_center)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top_to_center)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center))) FROM gis_geometrycollection WHERE fid=115;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_top_to_center)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
#====================================================================================
# geometrycollection,multilinestring
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_vertical))) FROM gis_geometrycollection WHERE fid=115;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
#====================================================================================
# geometrycollection,polygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_elem_vertical)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_elem_vertical)))
MULTIPOLYGON(((15 25,25 0,22 10,30 15,20 15,15 25)),((15 25,10 15,0 15,7 10,5 0,15 25)))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')))
MULTIPOLYGON(((6.3 10.5,9 15,0 15,6.3 10.5)),((23 15,25.333333333333332 12.083333333333334,30 15,23 15)))
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_vertical))) FROM gis_geometrycollection WHERE fid=115;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_elem_vertical)))
MULTIPOLYGON(((15 25,25 0,22 10,30 15,20 15,15 25)),((15 25,10 15,0 15,7 10,5 0,15 25)))
#====================================================================================
# geometrycollection,multipolygon
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)))')))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_of_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_of_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems))) FROM gis_geometrycollection WHERE fid=115;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,g2)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=115 and fid2=215;
ST_ASTEXT(ST_DIFFERENCE(g,g2))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),POINT(1 1),POINT(2 2))'),
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),POINT(1 1),POINT(2 2))'),
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)))')))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0,2 2),LINESTRING(4 4,6 6))'),
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(0 0,2 2),LINESTRING(4 4,6 6))'),
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,0 5,5 5,5 0,0 0)),((5 5,5 10,10 10,10 5,5 5)))')))
GEOMETRYCOLLECTION()
#====================================================================================
# geometrycollection,geometrycollectionn
#====================================================================================
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_collection_elems_3)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_collection_elems_3)))
POLYGON((5 0,15 5,25 0,22 10,30 15,20 15,15 25,10 15,0 15,7 10,5 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems))) FROM gis_geometrycollection WHERE fid=115;
ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(g,g2)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=115 and fid2=215;
ST_ASTEXT(ST_DIFFERENCE(g,g2))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_multilinestr),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_multilinestr),ST_GEOMFROMTEXT(@star_collection_elems)))
MULTILINESTRING((0 15,15 30,6 15),(4.2 12,0 5))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(1 1,2 2))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),POINT(5 5))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),LINESTRING(1 1,2 2))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),POINT(5 5))')))
LINESTRING(1 1,2 2)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(2 2),POLYGON((0 0,0 5,5 5,5 0,0 0)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),POINT(5 5))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(2 2),POLYGON((0 0,0 5,5 5,5 0,0 0)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(0 0),POINT(5 5))')))
POLYGON((0 0,5 0,5 5,0 5,0 0))
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())'), 
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())'), 
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())))')))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(1 1), GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(1 1), GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())))')))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(1 1)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(1 1)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())))')))
POINT(1 1)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(1 1)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(1 1), GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())))')));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(1 1)))'),
ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(1 1), GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())))')))
GEOMETRYCOLLECTION()
#####################################################################################
# Testing ST_DIFFERENCE() with 2 geometries of same SRID
#####################################################################################
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,0),ST_GEOMFROMTEXT(@star_center,0)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,0),ST_GEOMFROMTEXT(@star_center,0)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,100),ST_GEOMFROMTEXT(@star_center,100)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,100),ST_GEOMFROMTEXT(@star_center,100)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,20000),ST_GEOMFROMTEXT(@star_center,20000)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,20000),ST_GEOMFROMTEXT(@star_center,20000)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,123456),ST_GEOMFROMTEXT(@star_center,123456)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,123456),ST_GEOMFROMTEXT(@star_center,123456)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,1048575),ST_GEOMFROMTEXT(@star_center,1048575)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,1048575),ST_GEOMFROMTEXT(@star_center,1048575)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,4294967295),ST_GEOMFROMTEXT(@star_center,4294967295)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,4294967295),ST_GEOMFROMTEXT(@star_center,4294967295)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,-1),ST_GEOMFROMTEXT(@star_center,-1)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,-1),ST_GEOMFROMTEXT(@star_center,-1)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,-1024),ST_GEOMFROMTEXT(@star_center,-1024)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,-1024),ST_GEOMFROMTEXT(@star_center,-1024)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,4294967295000),ST_GEOMFROMTEXT(@star_center,4294967295000)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,4294967295000),ST_GEOMFROMTEXT(@star_center,4294967295000)))
POINT(15 25)
#####################################################################################
# Invalid function calls
#####################################################################################
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_center,4326)));
ERROR HY000: Binary geometry function st_difference given two geometries of different srids: 0 and 4326, which should have been identical.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,1048576),ST_GEOMFROMTEXT(@star_center,4326)));
ERROR HY000: Binary geometry function st_difference given two geometries of different srids: 1048576 and 4326, which should have been identical.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,1048576),ST_GEOMFROMTEXT(@star_center,1048576)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,1048576),ST_GEOMFROMTEXT(@star_center,1048576)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,1048575),ST_GEOMFROMTEXT(@star_center,1048575)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,1048575),ST_GEOMFROMTEXT(@star_center,1048575)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,0),ST_GEOMFROMTEXT(@star_center,0)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,0),ST_GEOMFROMTEXT(@star_center,0)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,-1),ST_GEOMFROMTEXT(@star_center,-1)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_top,-1),ST_GEOMFROMTEXT(@star_center,-1)))
POINT(15 25)
SELECT ST_ASTEXT(ST_DIFFERENCE(NULL,ST_GEOMFROMTEXT(@star_top)));
ST_ASTEXT(ST_DIFFERENCE(NULL,ST_GEOMFROMTEXT(@star_top)))
NULL
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),NULL));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),NULL))
NULL
SELECT ST_ASTEXT(ST_DIFFERENCE(g,NULL)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103;
ST_ASTEXT(ST_DIFFERENCE(g,NULL))
NULL
SELECT ST_ASTEXT(ST_DIFFERENCE(NULL,NULL));
ST_ASTEXT(ST_DIFFERENCE(NULL,NULL))
NULL
SELECT ST_ASTEXT(ST_DIFFERENCE(fid,NULL)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103;
ST_ASTEXT(ST_DIFFERENCE(fid,NULL))
NULL
SELECT ST_ASTEXT(ST_DIFFERENCE(fid,ST_GEOMFROMTEXT(@star_top))) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103;
ERROR 22023: Invalid GIS data provided to function st_difference.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),fid)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103;
ERROR 22023: Invalid GIS data provided to function st_difference.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(a 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(! 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT('!' 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!' 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')))' at line 1
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POINT(12,34 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(a 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(0 0,! 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING('!' 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!' 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')))' at line 1
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('LINESTRING(12,34 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((a 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((0 0,! 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON(('!' 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '!' 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')))' at line 1
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')));
ERROR 22023: Invalid GIS data provided to function st_geometryfromtext.
SELECT ST_ASTEXT(ST_DIFFERENCE(,));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '))' at line 1
SELECT ST_ASTEXT(ST_DIFFERENCE(,ST_GEOMFROMTEXT(@star_top)));
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ST_GEOMFROMTEXT(@star_top)))' at line 1
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_of_elems)));
ERROR HY000: Geometry overlay calculation error: geometry data is invalid in function st_difference.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_collection_elems)));
ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_collection_elems)))
GEOMETRYCOLLECTION()
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_of_elems)));
ERROR HY000: Geometry overlay calculation error: geometry data is invalid in function st_difference.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_of_elems),
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,15 25,35 0,0 0)),((5 0,15 25,25 0,15 5,5 0)))')));
ERROR HY000: Geometry overlay calculation error: geometry data is invalid in function st_difference.
SELECT ST_ASTEXT(ST_DIFFERENCE(g,ST_GEOMFROMTEXT(@star_of_elems))) FROM gis_geometrycollection WHERE fid=103;
ERROR HY000: Geometry overlay calculation error: geometry data is invalid in function st_difference.
SELECT ST_ASTEXT(ST_DIFFERENCE(g,g2)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103;
ERROR HY000: Geometry overlay calculation error: geometry data is invalid in function st_difference.
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT(@star_collection_elems),
ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,15 25,35 0,0 0)),((5 0,15 25,25 0,15 5,5 0)))')));
ERROR HY000: Geometry overlay calculation error: geometry data is invalid in function st_difference.
CREATE TABLE t1 (pk INT PRIMARY KEY, g GEOMETRY NOT NULL);
INSERT INTO t1 VALUES (1, ST_GEOMFROMTEXT('POINT(1 1)'));
INSERT INTO t1 VALUES (2, ST_GEOMFROMTEXT('LINESTRING(1 1, 2 2)'));
INSERT INTO t1 VALUES (3, ST_GEOMFROMTEXT(
'POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))'));
INSERT INTO t1 VALUES (4, ST_GEOMFROMTEXT(
'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (4 4, 6 4, 6 6, 4 6, 4 4))'));
INSERT INTO t1 VALUES (5, ST_GEOMFROMTEXT('MULTIPOINT(1 1, 2 2)'));
INSERT INTO t1 VALUES (6, ST_GEOMFROMTEXT('MULTILINESTRING((1 1, 2 2),'
  '(3 3, 4 4))'));
INSERT INTO t1 VALUES (7, ST_GEOMFROMTEXT(
'MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)),((5 5, 10 5, 10 10, 5 10, 5 5)))'));
INSERT INTO t1 VALUES (8, ST_GEOMFROMTEXT(
'MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((5 5, 10 5, 10 10, 5 10, 5 5), '
  '(6 6, 7 6, 7 7, 6 7, 6 6)))'));
INSERT INTO t1 VALUES (9, ST_GEOMFROMTEXT(
'MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((1 1, 10 1, 10 10, 1 10, 1 1), '
  '(4 4, 6 4, 6 6, 4 6, 4 4)))'));
INSERT INTO t1 VALUES (10, ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(1 1))'));
INSERT INTO t1 VALUES (11, ST_GEOMFROMTEXT(
'GEOMETRYCOLLECTION(LINESTRING(1 1, 2 2))'));
INSERT INTO t1 VALUES (12, ST_GEOMFROMTEXT(
'GEOMETRYCOLLECTION(POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)))'));
INSERT INTO t1 VALUES (13, ST_GEOMFROMTEXT(
'GEOMETRYCOLLECTION(POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), '
  '(4 4, 6 4, 6 6, 4 6, 4 4)))'));
INSERT INTO t1 VALUES (14, ST_GEOMFROMTEXT(
'GEOMETRYCOLLECTION(MULTIPOINT(1 1, 2 2))'));
INSERT INTO t1 VALUES (15, ST_GEOMFROMTEXT(
'GEOMETRYCOLLECTION(MULTILINESTRING((1 1, 2 2), (3 3, 4 4)))'));
INSERT INTO t1 VALUES (16, ST_GEOMFROMTEXT(
'GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), '
  '((5 5, 10 5, 10 10, 5 10, 5 5))))'));
INSERT INTO t1 VALUES (17, ST_GEOMFROMTEXT(
'GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), '
  '((5 5, 10 5, 10 10, 5 10, 5 5), (6 6, 7 6, 7 7, 6 7, 6 6))))'));
INSERT INTO t1 VALUES (18, ST_GEOMFROMTEXT(
'GEOMETRYCOLLECTION(MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), '
  '((1 1, 10 1, 10 10, 1 10, 1 1), (4 4, 6 4, 6 6, 4 6, 4 4))))'));
INSERT INTO t1 VALUES (19, ST_GEOMFROMTEXT(
'GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(1 1, 2 2),'
  'POLYGON((0 0, 1 0, 1 1, 0 1, 0 0)),'
  'POLYGON((0 0, 10 0, 10 10, 0 10, 0 0), (4 4, 6 4, 6 6, 4 6, 4 4)),'
  'MULTIPOINT(1 1, 2 2),MULTILINESTRING((1 1, 2 2), (3 3, 4 4)),'
  'MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((5 5, 10 5, 10 10, 5 10, 5 5))),'
  'MULTIPOLYGON(((0 0, 1 0, 1 1, 0 1, 0 0)), ((5 5, 10 5, 10 10, 5 10, 5 5), '
  '(6 6, 7 6, 7 7, 6 7, 6 6))))'));
INSERT INTO t1 VALUES(20,
GEOMETRYCOLLECTION(POINT(1,1),LINESTRING(POINT(1,1),POINT(2,2)),
POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),POINT(0,0))),
POLYGON(LINESTRING(POINT(0,0),POINT(10,0),POINT(10,10),POINT(0,10),
POINT(0,0)),LINESTRING(POINT(4,4),POINT(6,4),POINT(6,6),POINT(4,6),
POINT(4,4))),MULTIPOINT(POINT(1,1),POINT(2,2)),
MULTILINESTRING(LINESTRING(POINT(1,1),POINT(2,2)),LINESTRING(POINT(3,3),
POINT(4,4))),MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),
POINT(0,1),POINT(0,0))),POLYGON(LINESTRING(POINT(5,5),POINT(10,5),
POINT(10,10),POINT(5,10),POINT(5,5)))),
MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),POINT(0,1),
POINT(0,0))),POLYGON(LINESTRING(POINT(5,5),POINT(10,5),POINT(10,10),
POINT(5,10),POINT(5,5)),LINESTRING(POINT(6,6),POINT(7,6),POINT(7,7),
POINT(6,7),POINT(6,6)))),GEOMETRYCOLLECTION(POINT(1,1)),
GEOMETRYCOLLECTION(LINESTRING(POINT(1,1),POINT(2,2))),
GEOMETRYCOLLECTION(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),POINT(1,1),
POINT(0,1),POINT(0,0)))),GEOMETRYCOLLECTION(POLYGON(LINESTRING(POINT(0,0),
POINT(10,0),POINT(10,10),POINT(0,10),POINT(0,0)),LINESTRING(POINT(4,4),
POINT(6,4),POINT(6,6),POINT(4,6),POINT(4,4)))),
GEOMETRYCOLLECTION(MULTIPOINT(POINT(1,1),POINT(2,2))),
GEOMETRYCOLLECTION(MULTILINESTRING(LINESTRING(POINT(1,1),POINT(2,2)),
LINESTRING(POINT(3,3),POINT(4,4)))),
GEOMETRYCOLLECTION(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),
POINT(1,1),POINT(0,1),POINT(0,0))),POLYGON(LINESTRING(POINT(5,5),POINT(10,5),
POINT(10,10),POINT(5,10),POINT(5,5))))),
GEOMETRYCOLLECTION(MULTIPOLYGON(POLYGON(LINESTRING(POINT(0,0),POINT(1,0),
POINT(1,1),POINT(0,1),POINT(0,0))),POLYGON(LINESTRING(POINT(5,5),POINT(10,5),
POINT(10,10),POINT(5,10),POINT(5,5)),LINESTRING(POINT(6,6),POINT(7,6),
POINT(7,7),POINT(6,7),POINT(6,6)))))));
INSERT INTO t1 VALUES (21,
GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POINT(1,1)),
GEOMETRYCOLLECTION(LINESTRING(POINT(1,1),POINT(2,2))),
GEOMETRYCOLLECTION(POLYGON(LINESTRING(POINT(1,1), POINT(10,1), POINT(10,10),
POINT(1,10), POINT(1,1)), LINESTRING(POINT(4,4),POINT(6,4),POINT(6,6),
POINT(4,6),POINT(4,4))))));
SELECT ST_ASTEXT(ST_DIFFERENCE(a.g, b.g)) FROM t1 AS a JOIN t1 AS b ORDER BY a.pk, b.pk;
ST_ASTEXT(ST_DIFFERENCE(a.g, b.g))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((0 0,1 0,1 1,0 1,0 0))
POLYGON((0 0,1 0,1 1,0 1,0 0))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((0 0,1 0,1 1,0 1,0 0))
POLYGON((0 0,1 0,1 1,0 1,0 0))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((0 0,1 0,1 1,0 1,0 0))
POLYGON((0 0,1 0,1 1,0 1,0 0))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((0 0,1 0,1 1,0 1,0 0))
POLYGON((0 0,1 0,1 1,0 1,0 0))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((1 1,0 1,0 0,1 0,1 1))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 1,1 1,1 0,10 0,10 10,0 10,0 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4))
POLYGON((0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10,0 10,0 1))
MULTIPOLYGON(((0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10,0 10,0 1)),((6 6,7 6,7 7,6 7,6 6)))
MULTIPOLYGON(((1 1,1 0,10 0,10 1,1 1)),((0 1,1 1,1 10,0 10,0 1)))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4))
POLYGON((0 1,1 1,1 0,10 0,10 10,0 10,0 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4))
POLYGON((0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10,0 10,0 1))
MULTIPOLYGON(((0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10,0 10,0 1)),((6 6,7 6,7 7,6 7,6 6)))
MULTIPOLYGON(((1 1,1 0,10 0,10 1,1 1)),((0 1,1 1,1 10,0 10,0 1)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((1 10,0 10,0 0,10 0,10 1,1 1,1 10))
POINT(2 2)
GEOMETRYCOLLECTION()
POINT(2 2)
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POINT(2 2)
POINT(2 2)
GEOMETRYCOLLECTION()
POINT(2 2)
GEOMETRYCOLLECTION()
POINT(2 2)
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POINT(2 2)
POINT(2 2)
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
LINESTRING(3 3,4 4)
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
LINESTRING(3 3,4 4)
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
POLYGON((5 5,10 5,10 10,5 10,5 5))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
GEOMETRYCOLLECTION()
POLYGON((6 6,7 6,7 7,6 7,6 6))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
POLYGON((5 5,10 5,10 10,5 10,5 5))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
GEOMETRYCOLLECTION()
POLYGON((6 6,7 6,7 7,6 7,6 6))
POLYGON((5 6,5 5,6 5,6 6,5 6))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTIPOLYGON(((1 1,0 1,0 0,1 0,1 1)),((5 6,5 5,6 5,6 6,5 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
POLYGON((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6)))
POLYGON((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((5 6,5 5,6 5,6 6,5 6))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTIPOLYGON(((1 1,0 1,0 0,1 0,1 1)),((5 6,5 5,6 5,6 6,5 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4)))
POLYGON((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10)),((6 6,7 6,7 7,6 7,6 6)))
GEOMETRYCOLLECTION()
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4)))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4)))
POLYGON((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10)),((6 6,7 6,7 7,6 7,6 6)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((1 1,0 1,0 0,1 0,1 1))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
LINESTRING(1 1,2 2)
LINESTRING(1 1,2 2)
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((0 0,1 0,1 1,0 1,0 0))
POLYGON((0 0,1 0,1 1,0 1,0 0))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((0 0,1 0,1 1,0 1,0 0))
POLYGON((0 0,1 0,1 1,0 1,0 0))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((0 0,1 0,1 1,0 1,0 0))
POLYGON((0 0,1 0,1 1,0 1,0 0))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((0 0,1 0,1 1,0 1,0 0))
POLYGON((0 0,1 0,1 1,0 1,0 0))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((1 1,0 1,0 0,1 0,1 1))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 1,1 1,1 0,10 0,10 10,0 10,0 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10,0 10,0 1))
MULTIPOLYGON(((0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10,0 10,0 1)),((6 6,7 6,7 7,6 7,6 6)))
MULTIPOLYGON(((1 1,1 0,10 0,10 1,1 1)),((0 1,1 1,1 10,0 10,0 1)))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 1,1 1,1 0,10 0,10 10,0 10,0 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,6 4,6 6,4 6,4 4))
POLYGON((0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10,0 10,0 1))
MULTIPOLYGON(((0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10,0 10,0 1)),((6 6,7 6,7 7,6 7,6 6)))
MULTIPOLYGON(((1 1,1 0,10 0,10 1,1 1)),((0 1,1 1,1 10,0 10,0 1)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((1 10,0 10,0 0,10 0,10 1,1 1,1 10))
POINT(2 2)
GEOMETRYCOLLECTION()
POINT(2 2)
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POINT(2 2)
POINT(2 2)
GEOMETRYCOLLECTION()
POINT(2 2)
GEOMETRYCOLLECTION()
POINT(2 2)
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POINT(2 2)
POINT(2 2)
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
LINESTRING(3 3,4 4)
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
LINESTRING(3 3,4 4)
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
MULTILINESTRING((1 1,2 2),(3 3,4 4))
MULTILINESTRING((1 1,2 2),(3 3,4 4))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
POLYGON((5 5,10 5,10 10,5 10,5 5))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
GEOMETRYCOLLECTION()
POLYGON((6 6,7 6,7 7,6 7,6 6))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
POLYGON((5 5,10 5,10 10,5 10,5 5))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5)))
GEOMETRYCOLLECTION()
POLYGON((6 6,7 6,7 7,6 7,6 6))
POLYGON((5 6,5 5,6 5,6 6,5 6))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTIPOLYGON(((1 1,0 1,0 0,1 0,1 1)),((5 6,5 5,6 5,6 6,5 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
POLYGON((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
POLYGON((5 5,10 5,10 10,5 10,5 5),(6 6,6 7,7 7,7 6,6 6))
POLYGON((5 6,5 5,6 5,6 6,5 6))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((5 5,10 5,10 10,5 10,5 5),(6 6,7 6,7 7,6 7,6 6)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((5 6,5 5,6 5,6 6,5 6))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTIPOLYGON(((1 1,0 1,0 0,1 0,1 1)),((5 6,5 5,6 5,6 6,5 6)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
POLYGON((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10)),((6 6,7 6,7 7,6 7,6 6)))
GEOMETRYCOLLECTION()
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)),((1 1,10 1,10 10,1 10,1 1),(4 4,6 4,6 6,4 6,4 4)))
POLYGON((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10)),((6 6,7 6,7 7,6 7,6 6)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
POLYGON((1 1,0 1,0 0,1 0,1 1))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((1 0,10 0,10 5,10 10,5 10,0 10,0 1,1 1,1 0),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((5 6,5 5,6 5,6 6,5 6))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((5 10,0 10,0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((6 6,7 6,7 7,6 7,6 6)),((5 10,0 10,0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10)))
MULTIPOLYGON(((1 1,1 0,10 0,10 1,1 1)),((1 10,0 10,0 1,1 1,1 10)),((5 6,5 5,6 5,6 6,5 6)))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((1 0,10 0,10 5,10 10,5 10,0 10,0 1,1 1,1 0),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((5 6,5 5,6 5,6 6,5 6))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((5 10,0 10,0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((6 6,7 6,7 7,6 7,6 6)),((5 10,0 10,0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10)))
MULTIPOLYGON(((1 1,1 0,10 0,10 1,1 1)),((1 10,0 10,0 1,1 1,1 10)),((5 6,5 5,6 5,6 6,5 6)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTIPOLYGON(((10 1,1 1,1 10,0 10,0 1,0 0,1 0,10 0,10 1)),((5 6,5 5,6 5,6 6,5 6)))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((1 0,10 0,10 5,10 10,5 10,0 10,0 1,1 1,1 0),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((5 6,5 5,6 5,6 6,5 6))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((5 10,0 10,0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((6 6,7 6,7 7,6 7,6 6)),((5 10,0 10,0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10)))
MULTIPOLYGON(((1 1,1 0,10 0,10 1,1 1)),((1 10,0 10,0 1,1 1,1 10)),((5 6,5 5,6 5,6 6,5 6)))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((1 0,10 0,10 5,10 10,5 10,0 10,0 1,1 1,1 0),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((5 6,5 5,6 5,6 6,5 6))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((0 1,0 0,1 0,10 0,10 5,10 10,5 10,0 10,0 1),(6 5,6 4,4 4,4 6,5 6,5 5,6 5))
POLYGON((5 10,0 10,0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((6 6,7 6,7 7,6 7,6 6)),((5 10,0 10,0 1,1 1,1 0,10 0,10 5,6 5,6 4,4 4,4 6,5 6,5 10)))
MULTIPOLYGON(((1 1,1 0,10 0,10 1,1 1)),((1 10,0 10,0 1,1 1,1 10)),((5 6,5 5,6 5,6 6,5 6)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
MULTIPOLYGON(((10 1,1 1,1 10,0 10,0 1,0 0,1 0,10 0,10 1)),((5 6,5 5,6 5,6 6,5 6)))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
POLYGON((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10)),((6 6,7 6,7 7,6 7,6 6)))
GEOMETRYCOLLECTION()
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
GEOMETRYCOLLECTION()
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
POLYGON((1 1,10 1,10 10,1 10,1 1),(4 4,4 6,6 6,6 4,4 4))
POLYGON((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10))
MULTIPOLYGON(((5 10,1 10,1 1,10 1,10 5,6 5,6 4,4 4,4 6,5 6,5 10)),((6 6,7 6,7 7,6 7,6 6)))
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
GEOMETRYCOLLECTION()
#clean up
DROP TABLE gis_geometrycollection;
DROP TABLE gis_geometrycollection_2;
DROP TABLE t1;
#
# Bug#21977775 ST_DIFFERENCE(POLYGON, POLYGON) RETURNS INVALID GEOMETRY
#
SELECT ST_ASTEXT(ST_DIFFERENCE(ST_GEOMFROMTEXT('POLYGON((8 6,5 7,-1
4,-8 -7,0 -17,8 6),(3 6,5 5,0 -2,3 6))'), ST_GEOMFROMTEXT('POLYGON((3 5,-17
11,-8 -3,3 5))'))) AS result;
result
MULTIPOLYGON(((3 6,5 5,0 -2,2.484375 4.625,-3.2615384615384615 0.44615384615384635,-8 -7,0 -17,8 6,5 7,3 6)),((1.75 5.375,2.662921348314607 5.101123595505618,3 6,1.75 5.375)))

Man Man