summaryrefslogtreecommitdiff
path: root/sql/gcalc_tools.cc
diff options
context:
space:
mode:
authorAlexey Botchkov <holyfoot@askmonty.org>2015-03-15 22:20:38 +0400
committerAlexey Botchkov <holyfoot@askmonty.org>2015-03-15 22:20:38 +0400
commit37345bd9dde7fb948c439e73fbec5a88385162b2 (patch)
tree3170bbf05310ce08238dd63e53ea3edec511e58b /sql/gcalc_tools.cc
parentca3041883725393baa6c645050ef926d782eb3a8 (diff)
downloadmariadb-git-37345bd9dde7fb948c439e73fbec5a88385162b2.tar.gz
MDEV-7529 GIS: ST_Relate returns unexpected results for POINT relations.
Problem was that we considered the point itself as the 'border' object. Instead of that the 'border' of a POINT is an empty set, and the point is the 'interior'. Another error fixed by the way - not all operations of the resulting function were properly allocated.
Diffstat (limited to 'sql/gcalc_tools.cc')
-rw-r--r--sql/gcalc_tools.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/gcalc_tools.cc b/sql/gcalc_tools.cc
index 864437401b7..2d770fd45d6 100644
--- a/sql/gcalc_tools.cc
+++ b/sql/gcalc_tools.cc
@@ -300,10 +300,10 @@ int Gcalc_function::check_function(Gcalc_scan_iterator &scan_it)
gcalc_shape_info si= events->get_shape();
if (events->event == scev_thread ||
events->event == scev_end ||
- events->event == scev_single_point ||
(get_shape_kind(si) == Gcalc_function::shape_polygon))
set_b_state(si);
- else if (get_shape_kind(si) == Gcalc_function::shape_line)
+ else if (events->event == scev_single_point ||
+ get_shape_kind(si) == Gcalc_function::shape_line)
set_i_state(si);
}