Skip to content

Commit 2f82c22

Browse files
committed
WL#7541 GIS MBR spatial operations enhancement
1. Fix MBRTOUCHES wiring: mbrtouches was wired to Item_func_touches, which is wrong. Wire it to Item_func_spatial_mbr_rel instead. 2. Fix MBRWITHIN/MBRTOUCHES, they didn't return correct results when one or both mbrs degrade to a point/line segment. 3. Add MBREQUALS as another name for MBREQUAL to follow the GIS functions naming convention; And also deprecate MBREQUAL. 4. Add MBRCOVEREDBY and MBRCOVERS functions. Bugs fixed: Bug 20073459 GIS PERFORMANCE ISSUE: TOO MANY REALLOCS Bug #20073238 WL7541: MEMORY ISSUE FOUND BY VALGRIND AND MANUAL INSPECTION Bug #19784515 ASSERTION DIM1 >= 0 && DIM1 <= 2 && DIM2 >= 0 && DIM2 <= 2 FAILED Bug #19552241 MBRTOUCHES() FUNCTION RETURNS INCORRECT RESULT Bug #19549099 VIRTUAL CONST CHAR* ITEM_FUNC_SPATIAL_MBR_REL::FUNC_NAME() CONST
1 parent 5d4c6f2 commit 2f82c22

File tree

67 files changed

+27793
-21943
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+27793
-21943
lines changed

mysql-test/r/archive_gis.result

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,8 @@ down3,left3,right3,up3
493493
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
494494
mbrequal
495495
center
496+
Warnings:
497+
Warning 1287 'MBREQUAL' is deprecated and will be removed in a future release. Please use MBREQUALS instead
496498
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
497499
mbrintersect
498500
big,center,down,down2,left,left2,right,right2,small,up,up2

mysql-test/r/gis-precise.result

Lines changed: 105 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,57 @@ result
200200
SELECT ST_Equals(PointFromText('POINT (12 13)'),PointFromText('POINT (12 13)')) as result;
201201
result
202202
1
203+
select mbrcoveredby(geomfromtext("point(2 4)"), geomfromtext("polygon((2 2, 10 2, 10 10, 2 10, 2 2))"));
204+
mbrcoveredby(geomfromtext("point(2 4)"), geomfromtext("polygon((2 2, 10 2, 10 10, 2 10, 2 2))"))
205+
1
206+
select mbrcontains(geomfromtext("polygon((2 2, 10 2, 10 10, 2 10, 2 2))"), geomfromtext("point(2 4)"));
207+
mbrcontains(geomfromtext("polygon((2 2, 10 2, 10 10, 2 10, 2 2))"), geomfromtext("point(2 4)"))
208+
0
209+
select mbrcovers(geomfromtext("polygon((2 2, 10 2, 10 10, 2 10, 2 2))"), geomfromtext("point(2 4)"));
210+
mbrcovers(geomfromtext("polygon((2 2, 10 2, 10 10, 2 10, 2 2))"), geomfromtext("point(2 4)"))
211+
1
212+
select mbrtouches(geomfromtext("point (2 4)"), geomfromtext("point (2 4)"));
213+
mbrtouches(geomfromtext("point (2 4)"), geomfromtext("point (2 4)"))
214+
0
215+
select mbrtouches(geomfromtext("point(2 4)"), geomfromtext("linestring(2 0, 2 6)"));
216+
mbrtouches(geomfromtext("point(2 4)"), geomfromtext("linestring(2 0, 2 6)"))
217+
0
218+
select mbrtouches(geomfromtext("point(2 4)"), geomfromtext("linestring(2 0, 2 4)"));
219+
mbrtouches(geomfromtext("point(2 4)"), geomfromtext("linestring(2 0, 2 4)"))
220+
1
221+
select mbrtouches(geomfromtext("point(2 4)"), geomfromtext("polygon((2 2, 6 2, 6 6, 2 6, 2 2))"));
222+
mbrtouches(geomfromtext("point(2 4)"), geomfromtext("polygon((2 2, 6 2, 6 6, 2 6, 2 2))"))
223+
1
224+
select mbrtouches(geomfromtext("linestring(1 0, 2 0)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"));
225+
mbrtouches(geomfromtext("linestring(1 0, 2 0)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"))
226+
1
227+
select mbrtouches(geomfromtext("linestring(3 2, 4 2)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"));
228+
mbrtouches(geomfromtext("linestring(3 2, 4 2)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"))
229+
1
230+
select mbrwithin(geomfromtext("point(2 4)"), geomfromtext("point(2 4)"));
231+
mbrwithin(geomfromtext("point(2 4)"), geomfromtext("point(2 4)"))
232+
1
233+
select mbrwithin(geomfromtext("point(2 4)"), geomfromtext("linestring(2 0, 2 6)"));
234+
mbrwithin(geomfromtext("point(2 4)"), geomfromtext("linestring(2 0, 2 6)"))
235+
1
236+
select mbrwithin(geomfromtext("point(2 4)"), geomfromtext("linestring(2 0, 2 4)"));
237+
mbrwithin(geomfromtext("point(2 4)"), geomfromtext("linestring(2 0, 2 4)"))
238+
0
239+
select mbrwithin(geomfromtext("point(2 4)"), geomfromtext("polygon((2 2, 10 2, 10 10, 2 10, 2 2))"));
240+
mbrwithin(geomfromtext("point(2 4)"), geomfromtext("polygon((2 2, 10 2, 10 10, 2 10, 2 2))"))
241+
0
242+
select mbrwithin(geomfromtext("linestring(1 0, 2 0)"), geomfromtext("linestring(0 0, 3 0)"));
243+
mbrwithin(geomfromtext("linestring(1 0, 2 0)"), geomfromtext("linestring(0 0, 3 0)"))
244+
1
245+
select mbrwithin(geomfromtext("linestring(1 0, 2 0)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"));
246+
mbrwithin(geomfromtext("linestring(1 0, 2 0)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"))
247+
0
248+
select mbrwithin(geomfromtext("linestring(1 1, 2 1)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"));
249+
mbrwithin(geomfromtext("linestring(1 1, 2 1)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"))
250+
1
251+
select mbrwithin(geomfromtext("linestring(0 1, 3 1)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"));
252+
mbrwithin(geomfromtext("linestring(0 1, 3 1)"), geomfromtext("polygon((0 0, 3 0, 3 3, 0 3, 0 0))"))
253+
1
203254
#
204255
# BUG#11755628/47429: INTERSECTION FUNCTION CRASHED MYSQLD
205256
# BUG#11759650/51979: UNION/INTERSECTION OF POLYGONS CRASHES MYSQL
@@ -970,6 +1021,58 @@ ERROR 22023: Invalid GIS data provided to function st_centroid.
9701021
SELECT ST_DISTANCE(GeomFromText('POLYGON((0 0, 1 1))'), GeomFromText('POLYGON((1 0, 0 1))'));
9711022
ERROR 22023: Invalid GIS data provided to function st_distance.
9721023
#
1024+
# Bug #19552241 MBRTOUCHES() FUNCTION RETURNS INCORRECT RESULT
1025+
#
1026+
SELECT 1, MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 10,5 15)'));
1027+
1 MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 10,5 15)'))
1028+
1 1
1029+
SELECT MBRTOUCHES(GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(5 0,5 10),GEOMETRYCOLLECTION())'),GEOMFROMTEXT('LINESTRING(5 0,5 10)'));
1030+
MBRTOUCHES(GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(5 0,5 10),GEOMETRYCOLLECTION())'),GEOMFROMTEXT('LINESTRING(5 0,5 10)'))
1031+
0
1032+
SELECT MBRTOUCHES(GEOMFROMTEXT('GEOMETRYCOLLECTION(MULTIPOINT(5 0,5 10),GEOMETRYCOLLECTION())'),GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'));
1033+
MBRTOUCHES(GEOMFROMTEXT('GEOMETRYCOLLECTION(MULTIPOINT(5 0,5 10),GEOMETRYCOLLECTION())'),GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'))
1034+
0
1035+
SELECT MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 1,5 11)'));
1036+
MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 1,5 11)'))
1037+
0
1038+
SELECT 1, MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 10,5 15)'));
1039+
1 MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 10,5 15)'))
1040+
1 1
1041+
SELECT MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 11,5 15)'));
1042+
MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 11,5 15)'))
1043+
0
1044+
SELECT MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(3 0,15 0)'));
1045+
MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(3 0,15 0)'))
1046+
0
1047+
SELECT 1, MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(3 0,5 0)'));
1048+
1 MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(3 0,5 0)'))
1049+
1 1
1050+
SELECT MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(3 0,4 0)'));
1051+
MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(3 0,4 0)'))
1052+
0
1053+
SELECT 1, MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 3,15 3)'));
1054+
1 MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(5 3,15 3)'))
1055+
1 1
1056+
SELECT MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(0 3,15 3)'));
1057+
MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,5 10)'),GEOMFROMTEXT('MULTIPOINT(0 3,15 3)'))
1058+
0
1059+
SELECT 1, MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(6 0,6 10)'));
1060+
1 MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(6 0,6 10)'))
1061+
1 1
1062+
SELECT MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(6 -5,6 10)'));
1063+
MBRTOUCHES(GEOMFROMTEXT('MULTIPOINT(5 0,10 0)'),GEOMFROMTEXT('MULTIPOINT(6 -5,6 10)'))
1064+
0
1065+
#
1066+
# Bug #19784515 ASSERTION `DIM1 >= 0 && DIM1 <= 2 && DIM2 >= 0 && DIM2 <= 2' FAILED
1067+
#
1068+
set @centroid_point = CENTROID(ST_UNION(ST_UNION(GEOMFROMTEXT('MULTILINESTRING((-556 966,-721 -210),(-202 390,-954 804,682 504,-394 -254,832 371,907 -369,827 126,-567 -337,-304 -555,-957 -483,-660 792),(-965 -940,814 -804,-477 -909,-128 57,-819 880,761 497,-559 40,-431 427,179 -291,-707 315,137 -781,-416 -371,-5 -156),(-600 -570,-481 -191,991 -361,768 888,-647 566,795 -861,-82 -575,-593 539))'), GEOMFROMTEXT('MULTIPOLYGON(((805 69,249 708,147 455,546 -672,-218 843,458 24,-630 -420,-83 -69)),((196 -219,-201 663,-867 521,-910 -315,-749 801,-402 820,-167 -817,-526 -163,744 -988,-588 -370,573 695,-597 513,-246 439)),((32 -903,189 -871,-778 -741,784 340,403 -555,607 -540,-513 -982,700 -124,344 732,714 151,-812 -252,-440 -895,-426 231,-819 -357)),((-395 830,454 -143,788 -279,618 -843,-490 -507,-224 17)))')), ST_INTERSECTION(ST_UNION(GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(-169 -570),MULTIPOINT(384 290,-601 123,408 86,-616 -300,160 -474,-979 -4,-63 -824,-689 -765,-219 802,-54 -93,191 -982,-723 -449),MULTILINESTRING((683 4,864 -634,548 -891,727 -691,-570 32,-334 -438,127 -317,241 -12,-807 947,-987 693,-345 -867,854 -106)),MULTIPOINT(384 290,-601 123,408 86,-616 -300,160 -474,-979 -4,-63 -824,-689 -765,-219 802,-54 -93,191 -982,-723 -449),MULTIPOLYGON(((266 51,851 523,-781 366,-607 -581)),((416 -450,-973 880,103 226,-896 -857,-369 761)),((168 171,26 -99,-606 -490,-174 -138,-325 -218,-833 -652,-255 -445,-882 -762,-202 -560)),((-423 -216,-531 -190,-147 821,362 441,645 -128,-997 708,134 -426,714 -9,147 842,-887 -870,688 -330,689 17,-314 -262,401 -112,-606 761)),((-582 -373,-360 -84,-727 -171,412 -660,750 -846,-464 718,163 -11,489 -659,586 -324,-741 -198,144 -165,644 -80,930 -487,-504 -205))),MULTIPOLYGON(((266 51,851 523,-781 366,-607 -581)),((416 -450,-973 880,103 226,-896 -857,-369 761)),((168 171,26 -99,-606 -490,-174 -138,-325 -218,-833 -652,-255 -445,-882 -762,-202 -560)),((-423 -216,-531 -190,-147 821,362 441,645 -128,-997 708,134 -426,714 -9,147 842,-887 -870,688 -330,689 17,-314 -262,401 -112,-606 761)),((-582 -373,-360 -84,-727 -171,412 -660,750 -846,-464 718,163 -11,489 -659,586 -324,-741 -198,144 -165,644 -80,930 -487,-504 -205))),GEOMETRYCOLLECTION(),MULTIPOINT(384 290,-601 123,408 86,-616 -300,160 -474,-979 -4,-63 -824,-689 -765,-219 802,-54 -93,191 -982,-723 -449),MULTILINESTRING((683 4,864 -634,548 -891,727 -691,-570 32,-334 -438,127 -317,241 -12,-807 947,-987 693,-345 -867,854 -106)))'), GEOMFROMTEXT('MULTIPOINT(157 69,-725 -189,-176 -41,676 375,33 -672,-76 47)')), ST_UNION(ENVELOPE(GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(-896 100,-793 810,243 -525,650 -373,599 170,-554 -890),POINT(945 -828),POINT(945 -828),LINESTRING(-896 100,-793 810,243 -525,650 -373,599 170,-554 -890),POINT(945 -828),MULTIPOINT(-47 307,-768 -425,-3 167,-170 30,-784 721,951 146,407 790,37 850,-466 738),GEOMETRYCOLLECTION(),MULTIPOINT(-47 307,-768 -425,-3 167,-170 30,-784 721,951 146,407 790,37 850,-466 738),MULTIPOLYGON(((104 113,688 423,-859 602,272 978)),((981 -394,189 -400,649 -325,-977 371,30 859,590 318,329 -894,-51 262,197 952,-846 -139,-920 399)),((-236 -759,834 757,857 747,437 -146,194 913,316 862,976 -491,-745 933,610 687,-149 -164,-803 -565,451 -275)),((572 96,-160 -607,529 930,-544 -132,458 294))))')), ST_CENTROID(GEOMFROMTEXT('POINT(-939 -921)'))))));
1069+
SELECT astext(@centroid_point) as centroid;
1070+
centroid
1071+
NULL
1072+
SELECT MBRWITHIN(@centroid_point, ST_INTERSECTION(GEOMFROMTEXT('MULTILINESTRING((541 -927,-414 316,-429 -444,212 260,-125 104,445 563,-713 -975,-976 514),(-830 882,-377 914,-915 919,-535 -23,-508 979),(806 347,-87 220,226 -22,-12 468,707 598,83 951,-592 701,833 964,270 -932,743 -514,231 469,-575 -122,-99 -245,416 465,801 -587))'), GEOMFROMTEXT('LINESTRING(-96 -182,-373 75,697 687,-881 -463,-557 -959,-493 810)'))) as result;
1073+
result
1074+
NULL
1075+
#
9731076
# Bug #19566186 GLENGTH RETURNS NON-INF VALUE ON 32BIT PLATFORMS FOR LINESTRING OF INF LENGTH
9741077
#
9751078
select GLength(MLineFromWKB(0x0000000005000000020000000002000000035FB317E5EF3AB327E3A4B378469B67320000000000000000C0240000000000003FF05FD8ADAB9F560000000000000000000000000200000003000000000000000000000000000000000000000000000000BFF08B439581062540240000000000004341C37937E08000)) as length;
@@ -994,10 +1097,10 @@ ERROR 22023: Invalid GIS data provided to function st_distance.
9941097
set @centroid_point = CENTROID(ST_UNION(ST_UNION(GEOMFROMTEXT('MULTILINESTRING((-556 966,-721 -210),(-202 390,-954 804,682 504,-394 -254,832 371,907 -369,827 126,-567 -337,-304 -555,-957 -483,-660 792),(-965 -940,814 -804,-477 -909,-128 57,-819 880,761 497,-559 40,-431 427,179 -291,-707 315,137 -781,-416 -371,-5 -156),(-600 -570,-481 -191,991 -361,768 888,-647 566,795 -861,-82 -575,-593 539))'), GEOMFROMTEXT('MULTIPOLYGON(((805 69,249 708,147 455,546 -672,-218 843,458 24,-630 -420,-83 -69)),((196 -219,-201 663,-867 521,-910 -315,-749 801,-402 820,-167 -817,-526 -163,744 -988,-588 -370,573 695,-597 513,-246 439)),((32 -903,189 -871,-778 -741,784 340,403 -555,607 -540,-513 -982,700 -124,344 732,714 151,-812 -252,-440 -895,-426 231,-819 -357)),((-395 830,454 -143,788 -279,618 -843,-490 -507,-224 17)))')), ST_INTERSECTION(ST_UNION(GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(-169 -570),MULTIPOINT(384 290,-601 123,408 86,-616 -300,160 -474,-979 -4,-63 -824,-689 -765,-219 802,-54 -93,191 -982,-723 -449),MULTILINESTRING((683 4,864 -634,548 -891,727 -691,-570 32,-334 -438,127 -317,241 -12,-807 947,-987 693,-345 -867,854 -106)),MULTIPOINT(384 290,-601 123,408 86,-616 -300,160 -474,-979 -4,-63 -824,-689 -765,-219 802,-54 -93,191 -982,-723 -449),MULTIPOLYGON(((266 51,851 523,-781 366,-607 -581)),((416 -450,-973 880,103 226,-896 -857,-369 761)),((168 171,26 -99,-606 -490,-174 -138,-325 -218,-833 -652,-255 -445,-882 -762,-202 -560)),((-423 -216,-531 -190,-147 821,362 441,645 -128,-997 708,134 -426,714 -9,147 842,-887 -870,688 -330,689 17,-314 -262,401 -112,-606 761)),((-582 -373,-360 -84,-727 -171,412 -660,750 -846,-464 718,163 -11,489 -659,586 -324,-741 -198,144 -165,644 -80,930 -487,-504 -205))),MULTIPOLYGON(((266 51,851 523,-781 366,-607 -581)),((416 -450,-973 880,103 226,-896 -857,-369 761)),((168 171,26 -99,-606 -490,-174 -138,-325 -218,-833 -652,-255 -445,-882 -762,-202 -560)),((-423 -216,-531 -190,-147 821,362 441,645 -128,-997 708,134 -426,714 -9,147 842,-887 -870,688 -330,689 17,-314 -262,401 -112,-606 761)),((-582 -373,-360 -84,-727 -171,412 -660,750 -846,-464 718,163 -11,489 -659,586 -324,-741 -198,144 -165,644 -80,930 -487,-504 -205))),GEOMETRYCOLLECTION(),MULTIPOINT(384 290,-601 123,408 86,-616 -300,160 -474,-979 -4,-63 -824,-689 -765,-219 802,-54 -93,191 -982,-723 -449),MULTILINESTRING((683 4,864 -634,548 -891,727 -691,-570 32,-334 -438,127 -317,241 -12,-807 947,-987 693,-345 -867,854 -106)))'), GEOMFROMTEXT('MULTIPOINT(157 69,-725 -189,-176 -41,676 375,33 -672,-76 47)')), ST_UNION(ENVELOPE(GEOMFROMTEXT('GEOMETRYCOLLECTION(LINESTRING(-896 100,-793 810,243 -525,650 -373,599 170,-554 -890),POINT(945 -828),POINT(945 -828),LINESTRING(-896 100,-793 810,243 -525,650 -373,599 170,-554 -890),POINT(945 -828),MULTIPOINT(-47 307,-768 -425,-3 167,-170 30,-784 721,951 146,407 790,37 850,-466 738),GEOMETRYCOLLECTION(),MULTIPOINT(-47 307,-768 -425,-3 167,-170 30,-784 721,951 146,407 790,37 850,-466 738),MULTIPOLYGON(((104 113,688 423,-859 602,272 978)),((981 -394,189 -400,649 -325,-977 371,30 859,590 318,329 -894,-51 262,197 952,-846 -139,-920 399)),((-236 -759,834 757,857 747,437 -146,194 913,316 862,976 -491,-745 933,610 687,-149 -164,-803 -565,451 -275)),((572 96,-160 -607,529 930,-544 -132,458 294))))')), ST_CENTROID(GEOMFROMTEXT('POINT(-939 -921)'))))));
9951098
SELECT astext(@centroid_point) as centroid;
9961099
centroid
997-
POINT(0 0)
1100+
NULL
9981101
SELECT MBRWITHIN(@centroid_point, ST_INTERSECTION(GEOMFROMTEXT('MULTILINESTRING((541 -927,-414 316,-429 -444,212 260,-125 104,445 563,-713 -975,-976 514),(-830 882,-377 914,-915 919,-535 -23,-508 979),(806 347,-87 220,226 -22,-12 468,707 598,83 951,-592 701,833 964,270 -932,743 -514,231 469,-575 -122,-99 -245,416 465,801 -587))'), GEOMFROMTEXT('LINESTRING(-96 -182,-373 75,697 687,-881 -463,-557 -959,-493 810)'))) as result;
9991102
result
1000-
1
1103+
NULL
10011104
DROP TABLE IF EXISTS p1;
10021105
CREATE PROCEDURE p1(dist DOUBLE, geom TEXT)
10031106
BEGIN

mysql-test/r/gis.result

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -846,6 +846,8 @@ down3,left3,right3,up3
846846
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrequal FROM t1 a1 JOIN t1 a2 ON MBREqual( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
847847
mbrequal
848848
center
849+
Warnings:
850+
Warning 1287 'MBREQUAL' is deprecated and will be removed in a future release. Please use MBREQUALS instead
849851
SELECT GROUP_CONCAT(a2.name ORDER BY a2.name) AS mbrintersect FROM t1 a1 JOIN t1 a2 ON MBRIntersects( a1.square, a2.square) WHERE a1.name = "center" GROUP BY a1.name;
850852
mbrintersect
851853
big,center,down,down2,left,left2,right,right2,small,up,up2

0 commit comments

Comments
 (0)