Skip to content

Commit df1535c

Browse files
author
Ashish Padiyar
committed
Bug#27462294: BACKPORTING BUG#26540102 TO 5.7 BRANCH
Most of the architecture/compiler differences in the GIS test suites have now been eliminated. The repeated usage of replace_numeric_round/replace_regex/ replace_result to stabilize results after the decimal point isn't needed as it once was. This patch introduces changes to the patch provided by Daniel Black (Github user: grooverdan). Calls to replace_numeric_round/replace_regex/ replace_result have been eliminated/added from the contribution patch to prevent result content mismatch.
1 parent 423c2ef commit df1535c

12 files changed

+90
-228
lines changed

mysql-test/r/gis-precise.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,10 @@ ST_DISTANCE(ST_GeomFromText('linestring(0 0, 3 6, 6 3, 0 0)'), ST_GeomFromText('
121121
0.8944271909999159
122122
select ST_astext(ST_Intersection(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')));
123123
ST_astext(ST_Intersection(ST_GeomFromText('POLYGON((0 0, 50 45, 40 50, 0 0))'), ST_GeomFromText('POLYGON((50 5, 55 10, 0 45, 50 5))')))
124-
POLYGON((21.951219512195124 27.4390243902439,26.470588235294116 23.823529411764707,29.28994082840237 26.36094674556213,23.855421686746986 29.819277108433734,21.951219512195124 27.4390243902439))
124+
POLYGON((21.951219512195124 27.4390243902439,26.470588235294116 23.823529411764707,29.28994082840237 26.36094674556213,23.85542168674699 29.819277108433734,21.951219512195124 27.4390243902439))
125125
select ST_astext(ST_Intersection(ST_GeomFromText('LINESTRING(0 0, 50 45, 40 50, 0 0)'), ST_GeomFromText('LINESTRING(50 5, 55 10, 0 45, 50 5)')));
126126
ST_astext(ST_Intersection(ST_GeomFromText('LINESTRING(0 0, 50 45, 40 50, 0 0)'), ST_GeomFromText('LINESTRING(50 5, 55 10, 0 45, 50 5)')))
127-
MULTIPOINT((21.951219512195124 27.4390243902439),(23.855421686746986 29.819277108433734),(26.470588235294116 23.823529411764707),(29.28994082840237 26.36094674556213))
127+
MULTIPOINT((21.951219512195124 27.4390243902439),(23.85542168674699 29.819277108433734),(26.470588235294116 23.823529411764707),(29.28994082840237 26.36094674556213))
128128
select ST_astext(ST_Intersection(ST_GeomFromText('LINESTRING(0 0, 50 45, 40 50)'), ST_GeomFromText('LINESTRING(50 5, 55 10, 0 45)')));
129129
ST_astext(ST_Intersection(ST_GeomFromText('LINESTRING(0 0, 50 45, 40 50)'), ST_GeomFromText('LINESTRING(50 5, 55 10, 0 45)')))
130130
POINT(29.28994082840237 26.36094674556213)

mysql-test/r/gis.result

+2-2
Original file line numberDiff line numberDiff line change
@@ -2284,10 +2284,10 @@ CREATE TABLE t1 (g GEOMETRY);
22842284
INSERT INTO t1 (g) VALUES (ST_GeomFromText("MULTIPOLYGON(((0 7,-3 -14,9 -11,0 7)))"));
22852285
SELECT ST_AsText(ST_Buffer(g, 2)), ST_AsText(ST_Buffer(g, 2)) FROM t1;
22862286
ST_AsText(ST_Buffer(g, 2)) ST_AsText(ST_Buffer(g, 2))
2287-
POLYGON((1.7889 7.8944,1.5815 8.2242,1.3142 8.5076,0.9971 8.7337,0.6421 8.8941,0.2627 8.9827,-0.1266 8.996,-0.5111 8.9336,-0.8762 8.7978,-1.2081 8.5939,-1.4942 8.3295,-1.7235 8.0146,-1.8875 7.6613,-1.9799 7.2828,-4.9799 -13.7172,-4.9971 -14.1077,-4.938 -14.4941,-4.8049 -14.8616,-4.6028 -15.1963,-4.3395 -15.4852,-4.025 -15.7174,-3.6714 -15.884,-3.2921 -15.9786,-2.9016 -15.9976,-2.5149 -15.9403,9.4851 -12.9403,9.8227 -12.823,10.134 -12.6474,10.4091 -12.4193,10.6393 -12.1458,10.817 -11.8357,10.9368 -11.499,10.9946 -11.1463,10.9888 -10.7889,10.9195 -10.4383,10.7889 -10.1056,1.7889 7.8944)) POLYGON((1.7889 7.8944,1.5815 8.2242,1.3142 8.5076,0.9971 8.7337,0.6421 8.8941,0.2627 8.9827,-0.1266 8.996,-0.5111 8.9336,-0.8762 8.7978,-1.2081 8.5939,-1.4942 8.3295,-1.7235 8.0146,-1.8875 7.6613,-1.9799 7.2828,-4.9799 -13.7172,-4.9971 -14.1077,-4.938 -14.4941,-4.8049 -14.8616,-4.6028 -15.1963,-4.3395 -15.4852,-4.025 -15.7174,-3.6714 -15.884,-3.2921 -15.9786,-2.9016 -15.9976,-2.5149 -15.9403,9.4851 -12.9403,9.8227 -12.823,10.134 -12.6474,10.4091 -12.4193,10.6393 -12.1458,10.817 -11.8357,10.9368 -11.499,10.9946 -11.1463,10.9888 -10.7889,10.9195 -10.4383,10.7889 -10.1056,1.7889 7.8944))
2287+
POLYGON((1.788854382 7.894427191,1.581542679896 8.224223325896,1.314233720023 8.5075774372,0.997068110519 8.733740229384,0.642077816799 8.894132011549,0.262729718025 8.982668175784,-0.126585271189 8.995990022299,-0.511098133187 8.933592174749,-0.876222023373 8.797841752145,-1.208105635399 8.593888570044,-1.49415866306 8.329469777619,-1.723529424984 8.014616341882,-1.887516533025 7.661272513837,-1.979898987322 7.282842712475,-4.979898987322 -13.717157287525,-4.997098708684 -14.107688196991,-4.938004155957 -14.494105142143,-4.804872892066 -14.861646008221,-4.602790871498 -15.196269794922,-4.339478143841 -15.48519301849,-4.024993928167 -15.717378073466,-3.67135232515 -15.883954897421,-3.292063347729 -15.978559830006,-2.901616804081 -15.997578721042,-2.514928749927 -15.940285000291,9.485071250073 -12.940285000291,9.822682701181 -12.822962745965,10.134020545528 -12.647421440409,10.409141741794 -12.419267258671,10.639259881667 -12.145786646962,10.817025796986 -11.835713619063,10.936762266449 -11.498950822484,10.994645326203 -11.146253282554,10.98882639386 -10.788884924546,10.91949130576 -10.438258843317,10.788854382 -10.105572809,1.788854382 7.894427191)) POLYGON((1.788854382 7.894427191,1.581542679896 8.224223325896,1.314233720023 8.5075774372,0.997068110519 8.733740229384,0.642077816799 8.894132011549,0.262729718025 8.982668175784,-0.126585271189 8.995990022299,-0.511098133187 8.933592174749,-0.876222023373 8.797841752145,-1.208105635399 8.593888570044,-1.49415866306 8.329469777619,-1.723529424984 8.014616341882,-1.887516533025 7.661272513837,-1.979898987322 7.282842712475,-4.979898987322 -13.717157287525,-4.997098708684 -14.107688196991,-4.938004155957 -14.494105142143,-4.804872892066 -14.861646008221,-4.602790871498 -15.196269794922,-4.339478143841 -15.48519301849,-4.024993928167 -15.717378073466,-3.67135232515 -15.883954897421,-3.292063347729 -15.978559830006,-2.901616804081 -15.997578721042,-2.514928749927 -15.940285000291,9.485071250073 -12.940285000291,9.822682701181 -12.822962745965,10.134020545528 -12.647421440409,10.409141741794 -12.419267258671,10.639259881667 -12.145786646962,10.817025796986 -11.835713619063,10.936762266449 -11.498950822484,10.994645326203 -11.146253282554,10.98882639386 -10.788884924546,10.91949130576 -10.438258843317,10.788854382 -10.105572809,1.788854382 7.894427191))
22882288
SELECT ST_AsText(ST_Buffer(g, 2)), ST_AsText(ST_Difference(g, g)) FROM t1;
22892289
ST_AsText(ST_Buffer(g, 2)) ST_AsText(ST_Difference(g, g))
2290-
POLYGON((1.7889 7.8944,1.5815 8.2242,1.3142 8.5076,0.9971 8.7337,0.6421 8.8941,0.2627 8.9827,-0.1266 8.996,-0.5111 8.9336,-0.8762 8.7978,-1.2081 8.5939,-1.4942 8.3295,-1.7235 8.0146,-1.8875 7.6613,-1.9799 7.2828,-4.9799 -13.7172,-4.9971 -14.1077,-4.938 -14.4941,-4.8049 -14.8616,-4.6028 -15.1963,-4.3395 -15.4852,-4.025 -15.7174,-3.6714 -15.884,-3.2921 -15.9786,-2.9016 -15.9976,-2.5149 -15.9403,9.4851 -12.9403,9.8227 -12.823,10.134 -12.6474,10.4091 -12.4193,10.6393 -12.1458,10.817 -11.8357,10.9368 -11.499,10.9946 -11.1463,10.9888 -10.7889,10.9195 -10.4383,10.7889 -10.1056,1.7889 7.8944)) GEOMETRYCOLLECTION()
2290+
POLYGON((1.788854382 7.894427191,1.581542679896 8.224223325896,1.314233720023 8.5075774372,0.997068110519 8.733740229384,0.642077816799 8.894132011549,0.262729718025 8.982668175784,-0.126585271189 8.995990022299,-0.511098133187 8.933592174749,-0.876222023373 8.797841752145,-1.208105635399 8.593888570044,-1.49415866306 8.329469777619,-1.723529424984 8.014616341882,-1.887516533025 7.661272513837,-1.979898987322 7.282842712475,-4.979898987322 -13.717157287525,-4.997098708684 -14.107688196991,-4.938004155957 -14.494105142143,-4.804872892066 -14.861646008221,-4.602790871498 -15.196269794922,-4.339478143841 -15.48519301849,-4.024993928167 -15.717378073466,-3.67135232515 -15.883954897421,-3.292063347729 -15.978559830006,-2.901616804081 -15.997578721042,-2.514928749927 -15.940285000291,9.485071250073 -12.940285000291,9.822682701181 -12.822962745965,10.134020545528 -12.647421440409,10.409141741794 -12.419267258671,10.639259881667 -12.145786646962,10.817025796986 -11.835713619063,10.936762266449 -11.498950822484,10.994645326203 -11.146253282554,10.98882639386 -10.788884924546,10.91949130576 -10.438258843317,10.788854382 -10.105572809,1.788854382 7.894427191)) GEOMETRYCOLLECTION()
22912291
DROP TABLE t1;
22922292
CREATE TABLE t1(id INT PRIMARY KEY AUTO_INCREMENT, g GEOMETRY NOT NULL,
22932293
SPATIAL INDEX(g));

mysql-test/suite/gis/r/gis_bugs_crashes.result

+3-3
Original file line numberDiff line numberDiff line change
@@ -1428,7 +1428,7 @@ POLYGON((15 3.882,24.5528 -0.8944,24.6028 -0.9139,24.6518 -0.9374,24.6896 -0.947
14281428
SET @buf = ST_BUFFER(ST_GEOMFROMTEXT(@star_of_elems), 1);
14291429
SELECT st_area(@buf);
14301430
st_area(@buf)
1431-
373.4694
1431+
373.46939430619625
14321432
SELECT ST_ASTEXT(ST_BUFFER(@buf, 1));
14331433
ST_ASTEXT(ST_BUFFER(@buf, 1))
14341434
POLYGON((15 2.7639,24.1056 -1.7889,24.1905 -1.8265,24.2045 -1.8319,24.2187 -1.8387,24.3275 -1.8791,24.3273 -1.8797,24.3634 -1.8937,24.3774 -1.8977,24.3917 -1.903,24.4294 -1.9132,24.4296 -1.9126,24.5417 -1.9446,24.5556 -1.9472,24.5699 -1.951,24.6856 -1.971,24.6855 -1.9715,24.7241 -1.9787,24.7377 -1.98,24.7518 -1.9824,24.7912 -1.9855,24.7912 -1.9849,24.9088 -1.9958,24.922 -1.9957,24.9358 -1.9968,25.0546 -1.9952,25.0546 -1.9956,25.0943 -1.9956,25.107 -1.9944,25.1203 -1.9942,25.1601 -1.99,25.16 -1.9894,25.2789 -1.9783,25.291 -1.976,25.3038 -1.9746,25.4217 -1.9509,25.4218 -1.9513,25.4612 -1.9439,25.4726 -1.9406,25.4847 -1.9382,25.5235 -1.9265,25.5234 -1.926,25.6396 -1.8927,25.6501 -1.8886,25.6615 -1.8852,25.7743 -1.8396,25.7745 -1.84,25.8123 -1.8253,25.822 -1.8204,25.8327 -1.8161,25.8691 -1.7973,25.8689 -1.7969,25.9782 -1.742,25.9869 -1.7365,25.9967 -1.7315,26.1004 -1.6652,26.1006 -1.6656,26.1354 -1.6438,26.1433 -1.6378,26.1522 -1.6321,26.185 -1.6067,26.1847 -1.6063,26.2831 -1.5314,26.29 -1.525,26.2979 -1.5188,26.3888 -1.4337,26.389 -1.4339,26.4196 -1.4058,26.4256 -1.3991,26.4325 -1.3926,26.4603 -1.3612,26.46 -1.3609,26.5438 -1.2681,26.5489 -1.2612,26.5549 -1.2545,26.6294 -1.1529,26.6297 -1.1531,26.6548 -1.1194,26.659 -1.1125,26.6641 -1.1056,26.6859 -1.0693,26.6855 -1.0691,26.7515 -0.9611,26.7548 -0.9543,26.759 -0.9473,26.8141 -0.8325,26.8144 -0.8326,26.8331 -0.7945,26.8356 -0.7878,26.8389 -0.781,26.8538 -0.7408,26.8535 -0.7407,26.8988 -0.6211,26.9006 -0.6147,26.9031 -0.608,26.9366 -0.4836,26.9368 -0.4837,26.9483 -0.4423,26.9494 -0.4362,26.9511 -0.4298,26.9585 -0.387,26.9582 -0.387,26.9809 -0.2597,26.9814 -0.254,26.9824 -0.2479,26.9926 -0.1181,26.9928 -0.1181,26.9964 -0.0748,26.9964 -0.0696,26.9968 -0.0639,26.9962 -0.0201,26.9959 -0.0201,26.9948 0.1107,26.9943 0.1154,26.9942 0.1207,26.9802 0.2515,26.9804 0.2515,26.9759 0.2952,26.9751 0.2994,26.9746 0.3042,26.9658 0.3476,26.9656 0.3476,26.94 0.4772,26.9389 0.4808,26.9381 0.4851,26.9157 0.5747,24.3542 9.1129,31.06 13.304,31.1359 13.3564,31.2824 13.4681,31.4181 13.5927,31.5417 13.7293,31.6522 13.8767,31.7487 14.0337,31.8302 14.1989,31.8962 14.3709,31.9461 14.5483,31.9795 14.7295,31.996 14.913,31.9955 15.0972,31.9781 15.2806,31.9438 15.4616,31.893 15.6387,31.8261 15.8104,31.7437 15.9752,31.6465 16.1317,31.5352 16.2785,31.4109 16.4145,31.2746 16.5385,31.1275 16.6493,30.9707 16.7462,30.8057 16.8282,30.6339 16.8946,30.4567 16.945,30.2756 16.9788,30.0921 16.9957,30 17,20.3541 17,16.857 25.7428,16.8191 25.8261,16.736 25.989,16.6383 26.1436,16.5268 26.2886,16.4026 26.4228,16.2667 26.5451,16.1201 26.6544,15.9641 26.7499,15.8001 26.8307,15.6294 26.8962,15.4533 26.9458,15.2735 26.9791,15.0914 26.9958,14.9086 26.9958,14.7265 26.9791,14.5467 26.9458,14.3706 26.8962,14.1999 26.8307,14.0359 26.7499,13.8799 26.6544,13.7333 26.5451,13.5974 26.4228,13.4732 26.2886,13.3617 26.1436,13.264 25.989,13.1809 25.8261,13.143 25.7428,9.6459 17,0 17,-0.0928 16.9957,-0.2775 16.9785,-0.4598 16.9442,-0.6382 16.8932,-0.8111 16.8258,-0.9769 16.7427,-1.1344 16.6445,-1.2821 16.5322,-1.4187 16.4067,-1.543 16.269,-1.6541 16.1204,-1.7509 15.9621,-1.8326 15.7955,-1.8985 15.6221,-1.948 15.4433,-1.9808 15.2607,-1.9964 15.0758,-1.9948 14.8903,-1.9761 14.7057,-1.9402 14.5237,-1.8877 14.3457,-1.8188 14.1735,-1.7343 14.0083,-1.6349 13.8517,-1.5213 13.705,-1.3946 13.5694,-1.2559 13.4462,-1.1063 13.3364,-1.029 13.285,6.3814 8.8388,3.143 0.7428,3.1126 0.6551,3.06 0.4772,3.0241 0.2952,3.0052 0.1107,3.0036 -0.0748,3.0191 -0.2597,3.0517 -0.4423,3.1011 -0.6211,3.1669 -0.7945,3.2485 -0.9611,3.3452 -1.1194,3.4562 -1.2681,3.5804 -1.4058,3.717 -1.5314,3.8645 -1.6438,4.0219 -1.742,4.1877 -1.8252,4.3605 -1.8927,4.5388 -1.9439,4.721 -1.9783,4.9057 -1.9956,5.0912 -1.9958,5.2759 -1.9787,5.4583 -1.9446,5.6366 -1.8937,5.8095 -1.8265,5.8944 -1.7889,15 2.7639))
@@ -1440,7 +1440,7 @@ ST_ASTEXT(ST_CONVEXHULL(@buf))
14401440
POLYGON((-0.9964 15.0843,-0.9949 14.8988,-0.959 14.7167,4.065 -0.3547,4.1466 -0.5213,4.2576 -0.6699,4.3941 -0.7955,4.5514 -0.8937,4.7242 -0.9612,4.9065 -0.9956,5.092 -0.9958,25.014 -0.9999,25.0935 -0.9956,25.1976 -0.9803,25.2758 -0.9612,25.3743 -0.9273,25.4486 -0.8937,25.5384 -0.8427,25.6059 -0.7955,25.6841 -0.7294,25.7424 -0.6699,25.8065 -0.5913,25.8534 -0.5213,25.9014 -0.433,25.935 -0.3547,30.9626 14.7292,30.996 14.9104,30.9955 15.0947,30.9612 15.2757,30.8944 15.4473,30.7971 15.6038,30.6728 15.7398,30.5257 15.8507,15.5979 25.8015,15.442 25.897,15.2712 25.9625,15.0914 25.9958,14.9086 25.9958,14.7288 25.9625,14.558 25.897,14.4021 25.8015,-0.529 15.8486,-0.6766 15.7363,-0.801 15.5986,-0.8978 15.4404,-0.9637 15.2669,-0.9964 15.0843))
14411441
SELECT ST_ASTEXT(ST_ENVELOPE(@buf));
14421442
ST_ASTEXT(ST_ENVELOPE(@buf))
1443-
POLYGON((-0.9964 -0.9999,30.996 -0.9999,30.996 25.9958,-0.9964 25.9958,-0.9964 -0.9999))
1443+
POLYGON((-0.9964394501011175 -0.9999013929047789,30.995979706343796 -0.9999013929047789,30.995979706343796 25.995811240678275,-0.9964394501011175 25.995811240678275,-0.9964394501011175 -0.9999013929047789))
14441444
SELECT ST_DISTANCE(ST_GEOMFROMTEXT(@star_of_elems),ST_GEOMFROMTEXT(@star_top)) as result;
14451445
result
14461446
0
@@ -2637,7 +2637,7 @@ ST_ASTEXT(ST_BUFFER(ST_GEOMFROMTEXT('LINESTRING(0 0,10 10,10 0,0 10)'), 20, ST_B
26372637
POLYGON((-10 0,-14.1421 -4.1421,-4.1421 -14.1421,-1.1114 -16.6294,2.3463 -18.4776,6.0982 -19.6157,10 -20,13.9018 -19.6157,17.6537 -18.4776,21.1114 -16.6294,24.1421 -14.1421,26.6294 -11.1114,28.4776 -7.6537,29.6157 -3.9018,30 0,30 10,29.6157 13.9018,28.4776 17.6537,26.6294 21.1114,24.1421 24.1421,21.1114 26.6294,17.6537 28.4776,13.9018 29.6157,10 30,6.0982 29.6157,2.3463 28.4776,-1.1114 26.6294,-4.1421 24.1421,-14.1421 14.1421,-10 10,-10 0))
26382638
SELECT ST_ASTEXT(ST_BUFFER(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10),(10 0,0 10))'), 50, ST_BUFFER_STRATEGY('end_flat')));
26392639
ST_ASTEXT(ST_BUFFER(ST_GEOMFROMTEXT('MULTILINESTRING((0 0,10 10),(10 0,0 10))'), 50, ST_BUFFER_STRATEGY('end_flat')))
2640-
POLYGON((5 15,-25.3553 45.3553,-35.3553 35.3553,-5 5,-35.3553 -25.3553,-25.3553 -35.3553,5 -5,35.3553 -35.3553,45.3553 -25.3553,15 5,45.3553 35.3553,35.3553 45.3553,5 15))
2640+
POLYGON((5.000000748969793 14.999999251030207,-25.35533905932737 45.35533905932737,-35.35533905932737 35.35533905932737,-4.999999251030204 4.999999251030204,-35.35533905932737 -25.35533905932737,-25.35533905932737 -35.35533905932737,4.999999251030207 -4.999999251030207,35.35533905932737 -35.35533905932737,45.35533905932737 -25.35533905932737,14.999999251030204 5.000000748969796,45.35533905932737 35.35533905932737,35.35533905932737 45.35533905932737,5.000000748969793 14.999999251030207))
26412641
######################################################################################################
26422642
# BUG#20558350 : ST_BUFFER RETURNS INCORRECT RESULT WITH NEGATIVE DISTANCE AND POLYGON WITH HOLE
26432643
######################################################################################################

0 commit comments

Comments
 (0)