@@ -200,6 +200,57 @@ result
200
200
SELECT ST_Equals(PointFromText('POINT (12 13)'),PointFromText('POINT (12 13)')) as result;
201
201
result
202
202
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
203
254
#
204
255
# BUG#11755628/47429: INTERSECTION FUNCTION CRASHED MYSQLD
205
256
# BUG#11759650/51979: UNION/INTERSECTION OF POLYGONS CRASHES MYSQL
@@ -970,6 +1021,58 @@ ERROR 22023: Invalid GIS data provided to function st_centroid.
970
1021
SELECT ST_DISTANCE(GeomFromText('POLYGON((0 0, 1 1))'), GeomFromText('POLYGON((1 0, 0 1))'));
971
1022
ERROR 22023: Invalid GIS data provided to function st_distance.
972
1023
#
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
+ #
973
1076
# Bug #19566186 GLENGTH RETURNS NON-INF VALUE ON 32BIT PLATFORMS FOR LINESTRING OF INF LENGTH
974
1077
#
975
1078
select GLength(MLineFromWKB(0x0000000005000000020000000002000000035FB317E5EF3AB327E3A4B378469B67320000000000000000C0240000000000003FF05FD8ADAB9F560000000000000000000000000200000003000000000000000000000000000000000000000000000000BFF08B439581062540240000000000004341C37937E08000)) as length;
@@ -994,10 +1097,10 @@ ERROR 22023: Invalid GIS data provided to function st_distance.
994
1097
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)'))))));
995
1098
SELECT astext(@centroid_point) as centroid;
996
1099
centroid
997
- POINT(0 0)
1100
+ NULL
998
1101
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;
999
1102
result
1000
- 1
1103
+ NULL
1001
1104
DROP TABLE IF EXISTS p1;
1002
1105
CREATE PROCEDURE p1(dist DOUBLE, geom TEXT)
1003
1106
BEGIN
0 commit comments