st_distance() results are incorrect depending on variable order
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MariaDB |
Fix Committed
|
High
|
Alexey Botchkov |
Bug Description
Using MariaDB 5.3.3 on CentOS 6.0
The st_distance() function returns different results depending on the order of the variables. The results appear to be more accurate when the least complex spatial object is used as the first variable. For instance, st_distance(point, linestring) appears to consistently return accurate results but st_distance(
As a workaround we have had success using the least complex spatial object first where point < linestring < polygon (from a complexity standpoint).
select st_distance(
LINESTRING(
-95.9673005697771 36.13509598461,
-95.9673057475387 36.1344478941074,
-95.9673063519371 36.134484524621,
-95.9673049102515 36.1343976584193
)
'),geomfromtext
;
Result: 0.0005742759656
select st_distance(
, geomfromtext('
LINESTRING(
-95.9673005697771 36.13509598461,
-95.9673057475387 36.1344478941074,
-95.9673063519371 36.134484524621,
-95.9673049102515 36.1343976584193
)
'))
;
Result: 0.00791407398682628
Also filed as https:/ /mariadb. atlassian. net/browse/ MDEV-499