diff --git a/client/mysql.cc b/client/mysql.cc index 6acc5d73f6b..096410fd486 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1033,6 +1033,7 @@ static COMMANDS commands[] = { { "MASTER_POS_WAIT", 0, 0, 0, ""}, { "MAX", 0, 0, 0, ""}, { "MBRCONTAINS", 0, 0, 0, ""}, + { "MBRCOVEREDBY", 0, 0, 0, ""}, { "MBRDISJOINT", 0, 0, 0, ""}, { "MBREQUAL", 0, 0, 0, ""}, { "MBRINTERSECTS", 0, 0, 0, ""}, diff --git a/mysql-test/main/spatial_testing_functions_coveredby.result b/mysql-test/main/spatial_testing_functions_coveredby.result new file mode 100644 index 00000000000..27712ea96b5 --- /dev/null +++ b/mysql-test/main/spatial_testing_functions_coveredby.result @@ -0,0 +1,1184 @@ +#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 separate 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 +##################################################################################### +# MBRCOVEREDBY(g1,g2) +##################################################################################### +#==================================================================================== +# point,point +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star_center)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) FROM gis_geometrycollection WHERE fid=105; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('POINT(0 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('POINT(0 0)')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('POINT(10 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('POINT(10 0)')) +0 +#==================================================================================== +# point,multipoint +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_bottom_left),ST_GEOMFROMTEXT(@star_bottom_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_bottom_left),ST_GEOMFROMTEXT(@star_bottom_points)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_bottom_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_bottom_points)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=106; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0)')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 0)')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 0,10 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 0,10 0)')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(10 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 0,10 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(10 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 0,10 0)')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 0,10 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 0,10 0)')) +0 +#==================================================================================== +# point,linestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_top_to_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_top_to_center)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_line_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_line_horizontal)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=104; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0)')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0)')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0,20 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0,20 0)')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0)')) +0 +#==================================================================================== +# point,multilinestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_lines_near_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_lines_near_vertical)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_lines_near_horizontal)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=104; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 0))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(10 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,5 0),(5 0,10 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(10 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,5 0),(5 0,10 0))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,5 0,10 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,5 0,10 0))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,5 0),(5 0,10 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,5 0),(5 0,10 0))')) +0 +#==================================================================================== +# point,polygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_elem_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_elem_horizontal)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_elem_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_elem_vertical)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star)) FROM gis_geometrycollection WHERE fid=104; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0))')) +0 +#==================================================================================== +# point,multipolygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_of_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(-0.01 0)'),ST_GEOMFROMTEXT(@star_of_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(-0.01 0)'),ST_GEOMFROMTEXT(@star_of_elems)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=104; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((10 10,10 20,20 20,20 10,10 10)))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((10 10,10 20,20 20,20 10,10 10)))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4)))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4)))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4)))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4)))')) +0 +#==================================================================================== +# point,geometrycollection +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(-0.01 0)'),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(-0.01 0)'),ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=104; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_multilinestr)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_multilinestr)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())')) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(5 5))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(5 5))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(MULTIPOINT(0 0,5 5,10 10),GEOMETRYCOLLECTION())')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(MULTIPOINT(0 0,5 5,10 10),GEOMETRYCOLLECTION())')) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0))))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0))))')) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0))))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0))))')) +NULL +#==================================================================================== +# multipoint,point +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_left)) FROM gis_geometrycollection WHERE fid=108; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_left)) +0 +#==================================================================================== +# multipoint,multipoint +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_bottom_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_bottom_points)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_all_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_all_points)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=208; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=308; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) +0 +#==================================================================================== +# multipoint,linestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top_to_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=109; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=209; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=309; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +#==================================================================================== +# multipoint,multilinestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_horizontal)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal)) FROM gis_geometrycollection WHERE fid=109; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal)) +1 +#==================================================================================== +# multipoint,polygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_vertical)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_horizontal)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_horizontal)) FROM gis_geometrycollection WHERE fid=109; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_horizontal)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_horizontal)) FROM gis_geometrycollection WHERE fid=209; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_horizontal)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_horizontal)) FROM gis_geometrycollection WHERE fid=309; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_horizontal)) +0 +#==================================================================================== +# multipoint,multipolygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_of_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_of_elems)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_of_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=109; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=209; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=309; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +0 +#==================================================================================== +# multipoint,geometrycollection +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=109; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=209; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=309; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_multilinestr)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_multilinestr)) +1 +#==================================================================================== +# linestring,point +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_center)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_bottom_left)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_bottom_left)) +0 +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=110 and fid2=105; +MBRCOVEREDBY(g,g2) +0 +#==================================================================================== +# linestring,multipoint +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_all_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_all_points)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) FROM gis_geometrycollection WHERE fid=111; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) FROM gis_geometrycollection WHERE fid=311; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) FROM gis_geometrycollection WHERE fid=411; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) +0 +#==================================================================================== +# linestring,linestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_top_to_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_line_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_line_vertical)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=111; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=311; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=411; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +#==================================================================================== +# linestring,multilinestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_horizontal)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal)) FROM gis_geometrycollection WHERE fid=110; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal)) +1 +#==================================================================================== +# linestring,polygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('POLYGON((11 15,19 15,19 10,11 15))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('POLYGON((11 15,19 15,19 10,11 15))')) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal_2)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal_2)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal_3)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal_3)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('POLYGON((11 15,19 15,11 15))')) FROM gis_geometrycollection WHERE fid=110; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT('POLYGON((11 15,19 15,11 15))')) +0 +#==================================================================================== +# linestring,multipolygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,11 15)),((25 0,0 15,25 0)))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,11 15)),((25 0,0 15,25 0)))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems_2)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems_2)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems_3)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems_3)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,11 15)),((25 0,0 15,25 0)))')) FROM gis_geometrycollection WHERE fid=110; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,11 15)),((25 0,0 15,25 0)))')) +1 +#==================================================================================== +# linestring,geometrycollection +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems_2)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems_2)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems_3)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems_3)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=110; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_multilinestr)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_multilinestr)) +1 +#==================================================================================== +# multilinestring,point +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_top)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_top)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center_2)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center_2)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center_3)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center_3)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=114; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) +0 +#==================================================================================== +# multilinestring,multipoint +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_bottom_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_bottom_points)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_all_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_all_points)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=114; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) +0 +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=114 and fid2=108; +MBRCOVEREDBY(g,g2) +0 +#==================================================================================== +# multilinestring,linestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal_2)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal_2)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal_3)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal_3)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) FROM gis_geometrycollection WHERE fid=114; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) +0 +#==================================================================================== +# multilinestring,multilinestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))')) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal_3)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal_3)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))')) FROM gis_geometrycollection WHERE fid=114; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))')) +1 +#==================================================================================== +# multilinestring,polygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal_2)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal_2)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal_3)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal_3)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=114; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +#==================================================================================== +# multilinestring,multipolygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_elem_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_of_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=114; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +1 +#==================================================================================== +# multilinestring,geometrycollection +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=114; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_collection_multilinestr)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_collection_multilinestr)) +1 +#==================================================================================== +# polygon,point +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_bottom_left)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_bottom_left)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('POINT(0 0)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('POINT(0 0)')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=100; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) FROM gis_geometrycollection WHERE fid=200; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) FROM gis_geometrycollection WHERE fid=300; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) FROM gis_geometrycollection WHERE fid=400; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) +0 +#==================================================================================== +# polygon,multipoint +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_all_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_all_points)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('MULTIPOINT(0 0,30 25)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('MULTIPOINT(0 0,30 25)')) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=100; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=300; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=400; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) +0 +#==================================================================================== +# polygon,linestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_line_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_line_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) FROM gis_geometrycollection WHERE fid=100; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) FROM gis_geometrycollection WHERE fid=300; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) FROM gis_geometrycollection WHERE fid=400; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) +0 +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=100 and fid2=111; +MBRCOVEREDBY(g,g2) +0 +#==================================================================================== +# polygon,multilinestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_lines_near_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=100; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=300; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=400; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +#==================================================================================== +# polygon,polygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_elem_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('POLYGON((25 0,25 5,30 0,25 0))')) FROM gis_geometrycollection WHERE fid=100; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT('POLYGON((25 0,25 5,30 0,25 0))')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('POLYGON((25 15,25 20,30 15,25 15))')) FROM gis_geometrycollection WHERE fid=100; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT('POLYGON((25 15,25 20,30 15,25 15))')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=400; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +#==================================================================================== +# polygon,multipolygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_of_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_of_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOLYGON(((25 0,25 5,30 0,25 0)),((25 15,25 20,30 15,25 15)))')) FROM gis_geometrycollection WHERE fid=100; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOLYGON(((25 0,25 5,30 0,25 0)),((25 15,25 20,30 15,25 15)))')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=300; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=400; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +0 +#==================================================================================== +# polygon,geometrycollection +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=300; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=400; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_multilinestr)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_multilinestr)) +1 +#==================================================================================== +# multipolygon,point +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POINT(30 30)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POINT(30 30)')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=103; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=403; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) +0 +#==================================================================================== +# multipolygon,multipoint +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_bottom_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_bottom_points)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=103; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=403; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) +0 +#==================================================================================== +# multipolygon,linestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top_to_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=103; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=403; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +#==================================================================================== +# multipolygon,multilinestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=103; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=403; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +#==================================================================================== +# multipolygon,polygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_elem_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POLYGON((25 0,25 5,30 0,25 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POLYGON((25 0,25 5,30 0,25 0))')) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=103; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=303; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=403; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +#==================================================================================== +# multipolygon,multipolygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((25 0,25 5,30 0,25 0)),((25 15,25 20,30 15,25 15)))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((25 0,25 5,30 0,25 0)),((25 15,25 20,30 15,25 15)))')) +0 +SELECT MBRCOVEREDBY(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)))')); +MBRCOVEREDBY(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)))')) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=103; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=303; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=403; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) +0 +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; +MBRCOVEREDBY(g,g2) +1 +#==================================================================================== +# multipolygon,geometrycollection +#==================================================================================== +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=103; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=303; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=403; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=115; +MBRCOVEREDBY(g,g2) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_collection_elems)) +1 +#==================================================================================== +# geometrycollection,point +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POINT(30 30)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POINT(30 30)')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=115; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=415; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) +0 +#==================================================================================== +# geometrycollection,multipoint +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_bottom_points)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_bottom_points)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=115; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=415; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) +0 +#==================================================================================== +# geometrycollection,linestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top_to_center)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=115; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=415; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) +0 +#==================================================================================== +# geometrycollection,multilinestring +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=115; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=415; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) +0 +#==================================================================================== +# geometrycollection,polygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_elem_vertical)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POLYGON((25 0,25 5,30 0,25 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POLYGON((25 0,25 5,30 0,25 0))')) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=115; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=315; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=415; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) +0 +#==================================================================================== +# geometrycollection,multipolygon +#==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((25 0,25 5,30 0,25 0)),((25 15,25 20,30 15,25 15)))')); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((25 0,25 5,30 0,25 0)),((25 15,25 20,30 15,25 15)))')) +0 +SELECT MBRCOVEREDBY(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)))')); +MBRCOVEREDBY(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)))')) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=115; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=315; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=415; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=115 and fid2=103; +MBRCOVEREDBY(g,g2) +1 +#==================================================================================== +# geometrycollection,geometrycollection +#==================================================================================== +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=115; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +1 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=315; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=415; +MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) +0 +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=115 and fid2=115; +MBRCOVEREDBY(g,g2) +1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_collection_elems)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_collection_elems)) +1 +##################################################################################### +# Testing MBRCOVEREDBY() with 2 geometries of same SRID +##################################################################################### +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,0),ST_GEOMFROMTEXT(@star_center,0)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,0),ST_GEOMFROMTEXT(@star_center,0)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4145)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4145)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4326),ST_GEOMFROMTEXT(@star_center,4326)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4326),ST_GEOMFROMTEXT(@star_center,4326)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4135),ST_GEOMFROMTEXT(@star_center,4135)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4135),ST_GEOMFROMTEXT(@star_center,4135)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4145)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4145)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4326),ST_GEOMFROMTEXT(@star_center,4326)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4326),ST_GEOMFROMTEXT(@star_center,4326)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4135),ST_GEOMFROMTEXT(@star_center,4135)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4135),ST_GEOMFROMTEXT(@star_center,4135)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,-1),ST_GEOMFROMTEXT(@star_center,-1)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,-1),ST_GEOMFROMTEXT(@star_center,-1)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,-1024),ST_GEOMFROMTEXT(@star_center,-1024)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,-1024),ST_GEOMFROMTEXT(@star_center,-1024)) +0 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4294967295000),ST_GEOMFROMTEXT(@star_center,4294967295000)); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4294967295000),ST_GEOMFROMTEXT(@star_center,4294967295000)) +0 +##################################################################################### +# Invalid function calls +##################################################################################### +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_center,4326)); +ERROR HY000: Binary geometry function mbrcoveredby given two geometries of different srids: 0 and 4326, which should have been identical. +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4326)); +ERROR HY000: Binary geometry function mbrcoveredby given two geometries of different srids: 4145 and 4326, which should have been identical. +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4326)); +ERROR HY000: Binary geometry function mbrcoveredby given two geometries of different srids: 4145 and 4326, which should have been identical. +SELECT MBRCOVEREDBY(NULL,ST_GEOMFROMTEXT(@star_top)); +MBRCOVEREDBY(NULL,ST_GEOMFROMTEXT(@star_top)) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),NULL); +MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),NULL) +NULL +SELECT MBRCOVEREDBY(g,NULL) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; +MBRCOVEREDBY(g,NULL) +NULL +SELECT MBRCOVEREDBY(NULL,NULL); +MBRCOVEREDBY(NULL,NULL) +NULL +SELECT MBRCOVEREDBY(fid,NULL) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; +ERROR HY000: Illegal parameter data type int for operation 'mbrcoveredby' +SELECT MBRCOVEREDBY(fid,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; +ERROR HY000: Illegal parameter data type int for operation 'mbrcoveredby' +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),fid) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; +ERROR HY000: Illegal parameter data type int for operation 'mbrcoveredby' +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(a 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(a 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(! 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(! 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(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 MariaDB server version for the right syntax to use near '!' 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)'))' at line 1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(12,34 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(12,34 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING(a 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING(a 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING(0 0,! 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING(0 0,! 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(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 MariaDB server version for the right syntax to use near '!' 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)'))' at line 1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING(12,34 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING(12,34 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((a 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((a 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((0 0,! 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((0 0,! 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(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 MariaDB 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 MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); +MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')) +NULL +SELECT MBRCOVEREDBY(,); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1 +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1 +SELECT MBRCOVEREDBY(,ST_GEOMFROMTEXT(@star_top)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ST_GEOMFROMTEXT(@star_top))' at line 1 +# clean up +DROP TABLE gis_geometrycollection; +DROP TABLE gis_geometrycollection_2; +# +# WL#8579 Spatial Reference Systems +# +# SRID 0 (should pass) +SELECT MBRCOVEREDBY( +ST_GEOMFROMTEXT('POINT(0 0)', 0), +ST_GEOMFROMTEXT('POINT(0 0)', 0) +); +MBRCOVEREDBY( +ST_GEOMFROMTEXT('POINT(0 0)', 0), +ST_GEOMFROMTEXT('POINT(0 0)', 0) +) +1 +# Projected SRS (should pass) +SELECT MBRCOVEREDBY( +ST_GEOMFROMTEXT('POINT(0 0)', 2000), +ST_GEOMFROMTEXT('POINT(0 0)', 2000) +); +MBRCOVEREDBY( +ST_GEOMFROMTEXT('POINT(0 0)', 2000), +ST_GEOMFROMTEXT('POINT(0 0)', 2000) +) +1 +# Geographic SRS (should pass) +SELECT MBRCOVEREDBY( +ST_GEOMFROMTEXT('POINT(0 0)', 4326), +ST_GEOMFROMTEXT('POINT(0 0)', 4326) +); +MBRCOVEREDBY( +ST_GEOMFROMTEXT('POINT(0 0)', 4326), +ST_GEOMFROMTEXT('POINT(0 0)', 4326) +) +1 diff --git a/mysql-test/main/spatial_testing_functions_coveredby.test b/mysql-test/main/spatial_testing_functions_coveredby.test new file mode 100644 index 00000000000..55300abd38d --- /dev/null +++ b/mysql-test/main/spatial_testing_functions_coveredby.test @@ -0,0 +1,966 @@ +# Copyright (c) 2013, Oracle and/or its affiliates +# Copyright (c) 2024, MariaDB Corporation. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA + +############################################################################################ +# Creating the spatial objects # +############################################################################################ + +--echo #Creating the spatial Geometry object +USE test; + +CREATE TABLE gis_geometrycollection (fid INTEGER NOT NULL PRIMARY KEY, g GEOMETRY); + +############################################################################################ +# Inserting the values specific to the spatial objects # +############################################################################################ + +# Geometric elements constructing a star and some of its elememts as base +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))'; + +# Star identical to the base star +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))'; + +# Star like the base star, but shifted to right by 10 on X to overlap base star +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))'; + +# Star like the base star, but shifted to right by 60 on X to be completly separate +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))'; + +--echo #INSERT base star +--disable_warnings +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)); +--enable_warnings + +--echo #INSERT identical (to base) star +--disable_warnings +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)); +--enable_warnings + +--echo #INSERT overlapping star +--disable_warnings +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)); +--enable_warnings + +--echo #INSERT separate star +--disable_warnings +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)); +--enable_warnings + +CREATE TABLE gis_geometrycollection_2 SELECT fid as fid2,g as g2 FROM gis_geometrycollection; + +--echo #Checking the integrity of the above create/insert statements + +--echo #64 rows. +SELECT count(ST_ASTEXT(g) != 'NULL') FROM gis_geometrycollection; +--echo #64 rows. +SELECT count(ST_ASTEXT(g2) != 'NULL') FROM gis_geometrycollection_2; + +############################################################################################ +# Checking the spatial testing functions # +############################################################################################ + +--echo ##################################################################################### +--echo # MBRCOVEREDBY(g1,g2) +--echo ##################################################################################### + +--echo #==================================================================================== +--echo # point,point +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star_center)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_center)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) FROM gis_geometrycollection WHERE fid=105; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('POINT(0 0)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('POINT(10 0)')); + +--echo #==================================================================================== +--echo # point,multipoint +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_bottom_left),ST_GEOMFROMTEXT(@star_bottom_points)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_bottom_points)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=106; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,10 0)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 0,10 0)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(10 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 0,10 0)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('MULTIPOINT(0 0,5 0,10 0)')); + +--echo #==================================================================================== +--echo # point,linestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_top_to_center)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_line_horizontal)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=104; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0,20 0)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 0)')); + +--echo #==================================================================================== +--echo # point,multilinestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_lines_near_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=104; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 0))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(10 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,5 0),(5 0,10 0))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,5 0,10 0))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 0)'),ST_GEOMFROMTEXT('MULTILINESTRING((0 0,5 0),(5 0,10 0))')); + +--echo #==================================================================================== +--echo # point,polygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_center),ST_GEOMFROMTEXT(@star)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_elem_horizontal)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_elem_vertical)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star)) FROM gis_geometrycollection WHERE fid=104; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 0)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('POLYGON((0 0,10 0,10 10,0 10,0 0))')); + +--echo #==================================================================================== +--echo # point,multipolygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_of_elems)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(-0.01 0)'),ST_GEOMFROMTEXT(@star_of_elems)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=104; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0)),((10 10,10 20,20 20,20 10,10 10)))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4)))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('MULTIPOLYGON(((0 0,10 0,10 10,0 10,0 0),(4 4,4 6,6 6,6 4,4 4)))')); + +--echo #==================================================================================== +--echo # point,geometrycollection +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_elems)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(-0.01 0)'),ST_GEOMFROMTEXT(@star_collection_elems)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=104; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_collection_multilinestr)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION())')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(5 5))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(5 5)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(MULTIPOINT(0 0,5 5,10 10),GEOMETRYCOLLECTION())')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(0 0)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0))))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(20 20)'),ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(GEOMETRYCOLLECTION(POLYGON((0 0,10 0,10 10,0 10,0 0))))')); + +--echo #==================================================================================== +--echo # multipoint,point +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_center)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_left)) FROM gis_geometrycollection WHERE fid=108; + +--echo #==================================================================================== +--echo # multipoint,multipoint +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_bottom_points)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_bottom_points),ST_GEOMFROMTEXT(@star_all_points)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=208; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=308; + +--echo #==================================================================================== +--echo # multipoint,linestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_top_to_center)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=109; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=209; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=309; + +--echo #==================================================================================== +--echo # multipoint,multilinestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal)) FROM gis_geometrycollection WHERE fid=109; + +--echo #==================================================================================== +--echo # multipoint,polygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_elem_horizontal)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_horizontal)) FROM gis_geometrycollection WHERE fid=109; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_horizontal)) FROM gis_geometrycollection WHERE fid=209; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_horizontal)) FROM gis_geometrycollection WHERE fid=309; + +--echo #==================================================================================== +--echo # multipoint,multipolygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_of_elems)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_of_elems)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=109; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=209; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=309; + +--echo #==================================================================================== +--echo # multipoint,geometrycollection +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTIPOINT(0 0,0 30,30 25)'),ST_GEOMFROMTEXT(@star_collection_elems)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_elems)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=109; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=209; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=309; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_all_points),ST_GEOMFROMTEXT(@star_collection_multilinestr)); + +--echo #==================================================================================== +--echo # linestring,point +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_center)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_bottom_left)); + +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=110 and fid2=105; + +--echo #==================================================================================== +--echo # linestring,multipoint +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_all_points)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) FROM gis_geometrycollection WHERE fid=111; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) FROM gis_geometrycollection WHERE fid=311; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOINT(15 10,15 25)')) FROM gis_geometrycollection WHERE fid=411; + +--echo #==================================================================================== +--echo # linestring,linestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_vertical),ST_GEOMFROMTEXT(@star_top_to_center)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top_to_center),ST_GEOMFROMTEXT(@star_line_vertical)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=111; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=311; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=411; + +--echo #==================================================================================== +--echo # linestring,multilinestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_lines_near_vertical)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_horizontal)) FROM gis_geometrycollection WHERE fid=110; + +--echo #==================================================================================== +--echo # linestring,polygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('POLYGON((11 15,19 15,19 10,11 15))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal_2)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_elem_horizontal_3)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('POLYGON((11 15,19 15,11 15))')) FROM gis_geometrycollection WHERE fid=110; + +--echo #==================================================================================== +--echo # linestring,multipolygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,11 15)),((25 0,0 15,25 0)))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems_2)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_of_elems_3)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOLYGON(((11 15,19 15,11 15)),((25 0,0 15,25 0)))')) FROM gis_geometrycollection WHERE fid=110; + +--echo #==================================================================================== +--echo # linestring,geometrycollection +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems_2)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_elems_3)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=110; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_line_horizontal),ST_GEOMFROMTEXT(@star_collection_multilinestr)); + +--echo #==================================================================================== +--echo # multilinestring,point +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_top)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center_2)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_center_3)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=114; + +--echo #==================================================================================== +--echo # multilinestring,multipoint +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_bottom_points)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_all_points)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=114; + +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=114 and fid2=108; + +--echo #==================================================================================== +--echo # multilinestring,linestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal_2)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_line_horizontal_3)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) FROM gis_geometrycollection WHERE fid=114; + +--echo #==================================================================================== +--echo # multilinestring,multilinestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal_3)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTILINESTRING((0 5,15 25,0 15))')) FROM gis_geometrycollection WHERE fid=114; + +--echo #==================================================================================== +--echo # multilinestring,polygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal_2)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_elem_horizontal_3)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=114; + +--echo #==================================================================================== +--echo # multilinestring,multipolygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_elem_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_of_elems)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=114; + +--echo #==================================================================================== +--echo # multilinestring,geometrycollection +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('MULTILINESTRING((0 25,25 0,25 30))'),ST_GEOMFROMTEXT(@star_collection_elems)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_collection_elems)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=114; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_lines_near_vertical),ST_GEOMFROMTEXT(@star_collection_multilinestr)); + +--echo #==================================================================================== +--echo # polygon,point +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_bottom_left)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('POINT(0 0)')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=100; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) FROM gis_geometrycollection WHERE fid=200; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) FROM gis_geometrycollection WHERE fid=300; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_center)) FROM gis_geometrycollection WHERE fid=400; + +--echo #==================================================================================== +--echo # polygon,multipoint +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_all_points)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT('MULTIPOINT(0 0,30 25)')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=100; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=300; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_all_points)) FROM gis_geometrycollection WHERE fid=400; + +--echo #==================================================================================== +--echo # polygon,linestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_line_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_line_horizontal)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) FROM gis_geometrycollection WHERE fid=100; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) FROM gis_geometrycollection WHERE fid=300; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_line_vertical)) FROM gis_geometrycollection WHERE fid=400; + +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=100 and fid2=111; + +--echo #==================================================================================== +--echo # polygon,multilinestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_lines_near_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_lines_near_horizontal)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=100; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=300; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=400; + +--echo #==================================================================================== +--echo # polygon,polygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_elem_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('POLYGON((25 0,25 5,30 0,25 0))')) FROM gis_geometrycollection WHERE fid=100; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('POLYGON((25 15,25 20,30 15,25 15))')) FROM gis_geometrycollection WHERE fid=100; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=400; + +--echo #==================================================================================== +--echo # polygon,multipolygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_of_elems)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_of_elems)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT('MULTIPOLYGON(((25 0,25 5,30 0,25 0)),((25 15,25 20,30 15,25 15)))')) FROM gis_geometrycollection WHERE fid=100; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=300; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=400; + +--echo #==================================================================================== +--echo # polygon,geometrycollection +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_elems)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_elem_vertical),ST_GEOMFROMTEXT(@star_collection_elems)); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=300; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=400; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star),ST_GEOMFROMTEXT(@star_collection_multilinestr)); + +--echo #==================================================================================== +--echo # multipolygon,point +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POINT(30 30)')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=103; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=403; + +--echo #==================================================================================== +--echo # multipolygon,multipoint +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_bottom_points)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=103; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=403; + +--echo #==================================================================================== +--echo # multipolygon,linestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top_to_center)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=103; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=403; + +--echo #==================================================================================== +--echo # multipolygon,multilinestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=103; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=403; + +--echo #==================================================================================== +--echo # multipolygon,polygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_elem_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POLYGON((25 0,25 5,30 0,25 0))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=103; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=303; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=403; + +--echo #==================================================================================== +--echo # multipolygon,multipolygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((25 0,25 5,30 0,25 0)),((25 15,25 20,30 15,25 15)))')); + +SELECT MBRCOVEREDBY(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)))')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=103; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=303; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_of_elems)) FROM gis_geometrycollection WHERE fid=403; + +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; + +--echo #==================================================================================== +--echo # multipolygon,geometrycollection +--echo #==================================================================================== +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=103; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=303; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=403; + +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=115; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_collection_elems)); + +--echo #==================================================================================== +--echo # geometrycollection,point +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POINT(30 30)')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=115; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection WHERE fid=415; + +--echo #==================================================================================== +--echo # geometrycollection,multipoint +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_bottom_points)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOINT(30 30,0 35)')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=115; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_bottom_points)) FROM gis_geometrycollection WHERE fid=415; + +--echo #==================================================================================== +--echo # geometrycollection,linestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_top_to_center)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('LINESTRING(30 30,0 35)')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=115; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_top_to_center)) FROM gis_geometrycollection WHERE fid=415; + +--echo #==================================================================================== +--echo # geometrycollection,multilinestring +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_lines_near_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTILINESTRING((0 30,30 30,0 35))')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=115; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_lines_near_vertical)) FROM gis_geometrycollection WHERE fid=415; + +--echo #==================================================================================== +--echo # geometrycollection,polygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_elem_vertical)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POLYGON((25 0,25 5,30 0,25 0))')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('POLYGON((0 0,15 25,35 0,0 0))')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=115; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=315; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_elem_vertical)) FROM gis_geometrycollection WHERE fid=415; + +--echo #==================================================================================== +--echo # geometrycollection,multipolygon +--echo #==================================================================================== +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT('MULTIPOLYGON(((25 0,25 5,30 0,25 0)),((25 15,25 20,30 15,25 15)))')); + +SELECT MBRCOVEREDBY(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)))')); + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=115; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=315; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=415; + +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=115 and fid2=103; + +--echo #==================================================================================== +--echo # geometrycollection,geometrycollection +--echo #==================================================================================== +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=115; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=315; + +SELECT MBRCOVEREDBY(g,ST_GEOMFROMTEXT(@star_collection_elems)) FROM gis_geometrycollection WHERE fid=415; + +SELECT MBRCOVEREDBY(g,g2) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=115 and fid2=115; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_collection_elems),ST_GEOMFROMTEXT(@star_collection_elems)); + +--echo ##################################################################################### +--echo # Testing MBRCOVEREDBY() with 2 geometries of same SRID +--echo ##################################################################################### + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,0),ST_GEOMFROMTEXT(@star_center,0)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4145)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4326),ST_GEOMFROMTEXT(@star_center,4326)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4135),ST_GEOMFROMTEXT(@star_center,4135)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4145)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4326),ST_GEOMFROMTEXT(@star_center,4326)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4135),ST_GEOMFROMTEXT(@star_center,4135)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,-1),ST_GEOMFROMTEXT(@star_center,-1)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,-1024),ST_GEOMFROMTEXT(@star_center,-1024)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4294967295000),ST_GEOMFROMTEXT(@star_center,4294967295000)); + +--echo ##################################################################################### +--echo # Invalid function calls +--echo ##################################################################################### +--error ER_GIS_DIFFERENT_SRIDS +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top),ST_GEOMFROMTEXT(@star_center,4326)); + +--error ER_GIS_DIFFERENT_SRIDS +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4326)); + +--error ER_GIS_DIFFERENT_SRIDS +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_top,4145),ST_GEOMFROMTEXT(@star_center,4326)); + +SELECT MBRCOVEREDBY(NULL,ST_GEOMFROMTEXT(@star_top)); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),NULL); + +SELECT MBRCOVEREDBY(g,NULL) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; + +SELECT MBRCOVEREDBY(NULL,NULL); + +--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION +SELECT MBRCOVEREDBY(fid,NULL) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; + +--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION +SELECT MBRCOVEREDBY(fid,ST_GEOMFROMTEXT(@star_top)) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; + +--error ER_ILLEGAL_PARAMETER_DATA_TYPE_FOR_OPERATION +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),fid) FROM gis_geometrycollection,gis_geometrycollection_2 WHERE fid=103 and fid2=103; + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(a 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(! 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +--error ER_PARSE_ERROR +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT('!' 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POINT(12,34 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING(a 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING(0 0,! 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +--error ER_PARSE_ERROR +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING('!' 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('LINESTRING(12,34 0,10 10)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((a 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((0 0,! 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +--error ER_PARSE_ERROR +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON(('!' 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0))'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT('POLYGON((12,34 0,10 10,10 0,0 0)'),ST_GEOMFROMTEXT('LINESTRING(0 0,10 10)')); + +--error ER_PARSE_ERROR +SELECT MBRCOVEREDBY(,); + +--error ER_PARSE_ERROR +SELECT MBRCOVEREDBY(ST_GEOMFROMTEXT(@star_of_elems),); + +--error ER_PARSE_ERROR +SELECT MBRCOVEREDBY(,ST_GEOMFROMTEXT(@star_top)); + +--echo # clean up +DROP TABLE gis_geometrycollection; +DROP TABLE gis_geometrycollection_2; + +--echo # +--echo # WL#8579 Spatial Reference Systems +--echo # + +--echo # SRID 0 (should pass) +SELECT MBRCOVEREDBY( + ST_GEOMFROMTEXT('POINT(0 0)', 0), + ST_GEOMFROMTEXT('POINT(0 0)', 0) +); + +--echo # Projected SRS (should pass) +SELECT MBRCOVEREDBY( + ST_GEOMFROMTEXT('POINT(0 0)', 2000), + ST_GEOMFROMTEXT('POINT(0 0)', 2000) +); + +--echo # Geographic SRS (should pass) +SELECT MBRCOVEREDBY( + ST_GEOMFROMTEXT('POINT(0 0)', 4326), + ST_GEOMFROMTEXT('POINT(0 0)', 4326) +); diff --git a/sql/item_func.h b/sql/item_func.h index 3783797f142..7c020f2f9f4 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -96,7 +96,7 @@ public: INTERVAL_FUNC, ISNOTNULLTEST_FUNC, SP_EQUALS_FUNC, SP_DISJOINT_FUNC,SP_INTERSECTS_FUNC, SP_TOUCHES_FUNC,SP_CROSSES_FUNC,SP_WITHIN_FUNC, - SP_CONTAINS_FUNC,SP_OVERLAPS_FUNC, + SP_CONTAINS_FUNC, SP_COVEREDBY_FUNC, SP_OVERLAPS_FUNC, SP_STARTPOINT,SP_ENDPOINT,SP_EXTERIORRING, SP_POINTN,SP_GEOMETRYN,SP_INTERIORRINGN, SP_RELATE_FUNC, NOT_FUNC, NOT_ALL_FUNC, TEMPTABLE_ROWID, diff --git a/sql/item_geofunc.cc b/sql/item_geofunc.cc index 2a4795af6dc..6b46af6e4b9 100644 --- a/sql/item_geofunc.cc +++ b/sql/item_geofunc.cc @@ -1139,10 +1139,12 @@ Item_func_spatial_rel::get_mm_leaf(RANGE_OPT_PARAM *param, LEX_CSTRING Item_func_spatial_mbr_rel::func_name_cstring() const -{ +{ switch (spatial_rel) { case SP_CONTAINS_FUNC: return { STRING_WITH_LEN("mbrcontains") }; + case SP_COVEREDBY_FUNC: + return { STRING_WITH_LEN("mbrcoveredby") }; case SP_WITHIN_FUNC: return { STRING_WITH_LEN("mbrwithin") } ; case SP_EQUALS_FUNC: @@ -1183,9 +1185,15 @@ bool Item_func_spatial_mbr_rel::val_bool() g2->get_mbr(&mbr2, &dummy) || !mbr2.valid()))) return 0; + uint32 srid1= uint4korr(res1->ptr()), srid2= uint4korr(res2->ptr()); + if (srid1 != srid2) + my_error(ER_GIS_DIFFERENT_SRIDS, MYF(0), func_name(), srid1, srid2); + switch (spatial_rel) { case SP_CONTAINS_FUNC: return mbr1.contains(&mbr2); + case SP_COVEREDBY_FUNC: + return mbr1.coveredby(&mbr2); case SP_WITHIN_FUNC: return mbr1.within(&mbr2); case SP_EQUALS_FUNC: @@ -1209,11 +1217,14 @@ bool Item_func_spatial_mbr_rel::val_bool() } + LEX_CSTRING Item_func_spatial_precise_rel::func_name_cstring() const -{ +{ switch (spatial_rel) { case SP_CONTAINS_FUNC: return { STRING_WITH_LEN("st_contains") }; + case SP_COVEREDBY_FUNC: + return { STRING_WITH_LEN("st_coveredby") }; case SP_WITHIN_FUNC: return { STRING_WITH_LEN("st_within") }; case SP_EQUALS_FUNC: @@ -3085,6 +3096,38 @@ protected: }; +class Create_func_mbr_coveredby : public Create_func_arg2 +{ +public: + Item *create_2_arg(THD *thd, Item *arg1, Item *arg2) override + { + return new (thd->mem_root) Item_func_spatial_mbr_rel(thd, arg1, arg2, + Item_func::SP_COVEREDBY_FUNC); + } + + static Create_func_mbr_coveredby s_singleton; + +protected: + Create_func_mbr_coveredby() = default; + ~Create_func_mbr_coveredby() override = default; +}; + +class Create_func_coveredby : public Create_func_arg2 +{ +public: + Item *create_2_arg(THD *thd, Item *arg1, Item *arg2) override + { + return new (thd->mem_root) Item_func_spatial_precise_rel(thd, arg1, arg2, + Item_func::SP_COVEREDBY_FUNC); + } + static Create_func_coveredby s_singleton; + +protected: + Create_func_coveredby() = default; + ~Create_func_coveredby() override = default; +}; + + class Create_func_crosses : public Create_func_arg2 { public: @@ -4092,6 +4135,7 @@ Create_func_boundary Create_func_boundary::s_singleton; Create_func_buffer Create_func_buffer::s_singleton; Create_func_centroid Create_func_centroid::s_singleton; Create_func_contains Create_func_contains::s_singleton; +Create_func_coveredby Create_func_coveredby::s_singleton; Create_func_convexhull Create_func_convexhull::s_singleton; Create_func_crosses Create_func_crosses::s_singleton; Create_func_difference Create_func_difference::s_singleton; @@ -4118,6 +4162,7 @@ Create_func_isempty Create_func_isempty::s_singleton; Create_func_isring Create_func_isring::s_singleton; Create_func_issimple Create_func_issimple::s_singleton; Create_func_mbr_contains Create_func_mbr_contains::s_singleton; +Create_func_mbr_coveredby Create_func_mbr_coveredby::s_singleton; Create_func_mbr_disjoint Create_func_mbr_disjoint::s_singleton; Create_func_mbr_equals Create_func_mbr_equals::s_singleton; Create_func_mbr_intersects Create_func_mbr_intersects::s_singleton; @@ -4159,6 +4204,7 @@ static Native_func_registry func_array_geom[] = { { STRING_WITH_LEN("BUFFER") }, GEOM_BUILDER(Create_func_buffer)}, { { STRING_WITH_LEN("CENTROID") }, GEOM_BUILDER(Create_func_centroid)}, { { STRING_WITH_LEN("CONTAINS") }, GEOM_BUILDER(Create_func_contains)}, + { { STRING_WITH_LEN("COVEREDBY") }, GEOM_BUILDER(Create_func_coveredby)}, { { STRING_WITH_LEN("CONVEXHULL") }, GEOM_BUILDER(Create_func_convexhull)}, { { STRING_WITH_LEN("CROSSES") }, GEOM_BUILDER(Create_func_crosses)}, { { STRING_WITH_LEN("DIMENSION") }, GEOM_BUILDER(Create_func_dimension)}, @@ -4189,6 +4235,7 @@ static Native_func_registry func_array_geom[] = { { STRING_WITH_LEN("LINESTRINGFROMTEXT") }, GEOM_BUILDER(Create_func_geometry_from_text)}, { { STRING_WITH_LEN("LINESTRINGFROMWKB") }, GEOM_BUILDER(Create_func_geometry_from_wkb)}, { { STRING_WITH_LEN("MBRCONTAINS") }, GEOM_BUILDER(Create_func_mbr_contains)}, + { { STRING_WITH_LEN("MBRCOVEREDBY") }, GEOM_BUILDER(Create_func_mbr_coveredby)}, { { STRING_WITH_LEN("MBRDISJOINT") }, GEOM_BUILDER(Create_func_mbr_disjoint)}, { { STRING_WITH_LEN("MBREQUAL") }, GEOM_BUILDER(Create_func_mbr_equals)}, { { STRING_WITH_LEN("MBREQUALS") }, GEOM_BUILDER(Create_func_mbr_equals)}, @@ -4233,6 +4280,7 @@ static Native_func_registry func_array_geom[] = { { STRING_WITH_LEN("ST_BUFFER") }, GEOM_BUILDER(Create_func_buffer)}, { { STRING_WITH_LEN("ST_CENTROID") }, GEOM_BUILDER(Create_func_centroid)}, { { STRING_WITH_LEN("ST_CONTAINS") }, GEOM_BUILDER(Create_func_contains)}, + { { STRING_WITH_LEN("ST_COVEREDBY") }, GEOM_BUILDER(Create_func_coveredby)}, { { STRING_WITH_LEN("ST_CONVEXHULL") }, GEOM_BUILDER(Create_func_convexhull)}, { { STRING_WITH_LEN("ST_CROSSES") }, GEOM_BUILDER(Create_func_crosses)}, { { STRING_WITH_LEN("ST_DIFFERENCE") }, GEOM_BUILDER(Create_func_difference)}, diff --git a/sql/spatial.cc b/sql/spatial.cc index 6b34295566c..5cda8f6c979 100644 --- a/sql/spatial.cc +++ b/sql/spatial.cc @@ -25,7 +25,7 @@ double my_double_round(double value, longlong dec, bool dec_unsigned, bool truncate); -/* +/* exponential notation : 1 sign 1 number before the decimal point @@ -140,6 +140,21 @@ int MBR::within(const MBR *mbr) } +int MBR::coveredby(const MBR *mbr) +{ + int dim1= dimension(); + int dim2= mbr->dimension(); + + if (dim1 > dim2) + return 0; + else if (dim1 == 0 && dim2 == 0) + return equals(mbr); + + return ((xmin >= mbr->xmin) && (xmax <= mbr->xmax) && + (ymin >= mbr->ymin) && (ymax <= mbr->ymax)); +} + + /***************************** Gis_class_info *******************************/ Geometry::Class_info *Geometry::ci_collection[Geometry::wkb_last+1]= diff --git a/sql/spatial.h b/sql/spatial.h index db61cd60ef1..f0e173eaaf2 100644 --- a/sql/spatial.h +++ b/sql/spatial.h @@ -152,6 +152,8 @@ struct MBR (mbr->xmax <= xmax) && (mbr->ymax <= ymax)); } + int coveredby(const MBR *mbr); + bool inner_point(double x, double y) const { /* The following should be safe, even if we compare doubles */