diff options
-rw-r--r-- | mysql-test/r/gis-precise.result | 5 | ||||
-rw-r--r-- | mysql-test/t/gis-precise.test | 5 | ||||
-rw-r--r-- | sql/item_geofunc.cc | 2 |
3 files changed, 11 insertions, 1 deletions
diff --git a/mysql-test/r/gis-precise.result b/mysql-test/r/gis-precise.result index a370e117fe0..1d61db1c98d 100644 --- a/mysql-test/r/gis-precise.result +++ b/mysql-test/r/gis-precise.result @@ -323,3 +323,8 @@ GEOMETRYCOLLECTION() SELECT AsText(ST_UNION(GEOMETRYFROMTEXT('POINT(8 1)') ,MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 5, 2 5, 2 4, 3 4, 3 5))'))); AsText(ST_UNION(GEOMETRYFROMTEXT('POINT(8 1)') ,MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 5, 2 5, 2 4, 3 4, 3 5))'))) GEOMETRYCOLLECTION(POINT(8 1),LINESTRING(2 4,2 5,3 5,3 4,2 4)) +SELECT ST_DISTANCE(POINTFROMTEXT('POINT(7 1)'),MULTILINESTRINGFROMTEXT('MULTILINESTRING( + (4 7,9 7,6 1,3 4,1 1), (3 5, 2 5, 2 4, 3 4, 3 5))')); +ST_DISTANCE(POINTFROMTEXT('POINT(7 1)'),MULTILINESTRINGFROMTEXT('MULTILINESTRING( + (4 7,9 7,6 1,3 4,1 1), (3 5, 2 5, 2 4, 3 4, 3 5))')) +1 diff --git a/mysql-test/t/gis-precise.test b/mysql-test/t/gis-precise.test index c2d13cfe5cb..62445d3aa27 100644 --- a/mysql-test/t/gis-precise.test +++ b/mysql-test/t/gis-precise.test @@ -206,3 +206,8 @@ SELECT AsText(ST_INTERSECTION(LinestringFromText('LINESTRING(1 1, 2 2)'), Geomet #bug 839341 100% CPU usage with ST_UNION in maria-5.3-gis SELECT AsText(ST_UNION(GEOMETRYFROMTEXT('POINT(8 1)') ,MULTILINESTRINGFROMTEXT('MULTILINESTRING((3 5, 2 5, 2 4, 3 4, 3 5))'))); + +#bug 839318 Crash in Gcalc_scan_iterator::point::get_shape with ST_DISTANCE and MULTILINESTRING in maria-5.3-gis +SELECT ST_DISTANCE(POINTFROMTEXT('POINT(7 1)'),MULTILINESTRINGFROMTEXT('MULTILINESTRING( + (4 7,9 7,6 1,3 4,1 1), (3 5, 2 5, 2 4, 3 4, 3 5))')); + diff --git a/sql/item_geofunc.cc b/sql/item_geofunc.cc index a8abcd26b42..ea849bb10a3 100644 --- a/sql/item_geofunc.cc +++ b/sql/item_geofunc.cc @@ -1829,7 +1829,7 @@ double Item_func_distance::val_real() { if (ev->event != scev_intersection) cur_point= ev->pi; - func.set_on_state(evpos->get_shape()); + func.set_on_state(ev->get_shape()); if (func.count()) { /* Point of one object is inside the other - intersection found */ |