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 |
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)))