diff options
author | Alexey Botchkov <holyfoot@askmonty.org> | 2011-09-23 17:00:36 +0500 |
---|---|---|
committer | Alexey Botchkov <holyfoot@askmonty.org> | 2011-09-23 17:00:36 +0500 |
commit | 6e7d578b2b3fad8671504785b757e53b11516b22 (patch) | |
tree | bae936260d8fbced7090f092e5a8e0ca0064fbd1 /sql/gcalc_tools.cc | |
parent | 5b83aee35dffff0de4758a2a595624a18bec2b3e (diff) | |
download | mariadb-git-6e7d578b2b3fad8671504785b757e53b11516b22.tar.gz |
bug 857087 Wrong result with ST_INTERSECTS and LINESTRINGs
Line autointersection point was treated as if it doesn't belong to the line.
It's in some way logical, but seems to confuse people. Fixed.
per_file_comments:
mysql-test/r/gis-precise.result
bug 857087 Wrong result with ST_INTERSECTS and LINESTRINGs
test result updated.
mysql-test/t/gis-precise.test
bug 857087 Wrong result with ST_INTERSECTS and LINESTRINGs
test case added.
sql/gcalc_tools.cc
bug 857087 Wrong result with ST_INTERSECTS and LINESTRINGs
Point of line autointersection handled as it belongs to the line.
sql/gcalc_tools.h
bug 857087 Wrong result with ST_INTERSECTS and LINESTRINGs
Gcalc_function::set_i_state() added
Diffstat (limited to 'sql/gcalc_tools.cc')
-rw-r--r-- | sql/gcalc_tools.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/gcalc_tools.cc b/sql/gcalc_tools.cc index 69071c16ee8..8e881b84c5d 100644 --- a/sql/gcalc_tools.cc +++ b/sql/gcalc_tools.cc @@ -297,7 +297,7 @@ int Gcalc_function::check_function(Gcalc_scan_iterator &scan_it) (get_shape_kind(si) == Gcalc_function::shape_polygon)) set_b_state(si); else if (get_shape_kind(si) == Gcalc_function::shape_line) - invert_i_state(si); + set_i_state(si); } if (count()) @@ -313,7 +313,7 @@ int Gcalc_function::check_function(Gcalc_scan_iterator &scan_it) (get_shape_kind(si) == Gcalc_function::shape_polygon)) clear_b_state(si); else if (get_shape_kind(si) == Gcalc_function::shape_line) - invert_i_state(si); + clear_i_state(si); } if (scan_it.get_event_position() == scan_it.get_event_end()) |