1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

5.3 merge

This commit is contained in:
Sergei Golubchik
2014-11-18 17:36:51 +01:00
3 changed files with 18 additions and 1 deletions

View File

@ -1546,6 +1546,12 @@ Warnings:
Warning 1300 Invalid utf8 character string: 'E043' Warning 1300 Invalid utf8 character string: 'E043'
Warning 1300 Invalid utf8 character string: 'E043' Warning 1300 Invalid utf8 character string: 'E043'
drop table t1; drop table t1;
#
# MDEV-6883 ST_WITHIN crashes server if (0,0) is matched to POLYGON((0 0))
#
select st_within(GeomFromText('Polygon((0 0))'), Point(0,0));
st_within(GeomFromText('Polygon((0 0))'), Point(0,0))
1
End of 5.3 tests End of 5.3 tests
# #
# Bug#11908153: CRASH AND/OR VALGRIND ERRORS IN FIELD_BLOB::GET_KEY_IMAGE # Bug#11908153: CRASH AND/OR VALGRIND ERRORS IN FIELD_BLOB::GET_KEY_IMAGE

View File

@ -1401,6 +1401,11 @@ insert into t1 values(geomfromtext("POINT(0 9.2233720368548e18)"));
select equals(`a`,convert(`a` using utf8)) from `t1`; select equals(`a`,convert(`a` using utf8)) from `t1`;
drop table t1; drop table t1;
--echo #
--echo # MDEV-6883 ST_WITHIN crashes server if (0,0) is matched to POLYGON((0 0))
--echo #
select st_within(GeomFromText('Polygon((0 0))'), Point(0,0));
--echo End of 5.3 tests --echo End of 5.3 tests
--echo # --echo #

View File

@ -1237,11 +1237,15 @@ int Gis_polygon::store_shapes(Gcalc_shape_transporter *trn) const
trn->start_ring(); trn->start_ring();
get_point(&first_x, &first_y, data); get_point(&first_x, &first_y, data);
data+= POINT_DATA_SIZE; data+= POINT_DATA_SIZE;
n_points--;
prev_x= first_x; prev_x= first_x;
prev_y= first_y; prev_y= first_y;
if (trn->add_point(first_x, first_y)) if (trn->add_point(first_x, first_y))
return 1; return 1;
if (--n_points == 0)
goto single_point_ring;
while (--n_points) while (--n_points)
{ {
double x, y; double x, y;
@ -1266,6 +1270,8 @@ int Gis_polygon::store_shapes(Gcalc_shape_transporter *trn) const
return 1; return 1;
} }
data+= POINT_DATA_SIZE; data+= POINT_DATA_SIZE;
single_point_ring:
trn->complete_ring(); trn->complete_ring();
} }