Bug #57321 crashes and valgrind errors from spatial types
Item_func_spatial_collection::fix_length_and_dec didn't call parent's method, so the maybe_null was set to '0' after it. But in this case the result was just NULL, that caused wrong behaviour. per-file comments: mysql-test/r/gis.result Bug #57321 crashes and valgrind errors from spatial types test result updated. mysql-test/t/gis.test Bug #57321 crashes and valgrind errors from spatial types test case added. sql/item_geofunc.h Bug #57321 crashes and valgrind errors from spatial types Item_func_geometry::fix_length_and_dec() called in Item_func_spatial_collection::fix_length_and_dec().
This commit is contained in:
parent
599457ae2c
commit
33c78e328f
@ -1014,4 +1014,12 @@ SET @a=0x00000000030000000100000000000000000000000000144000000000000014400000000
|
|||||||
SET @a=POLYFROMWKB(@a);
|
SET @a=POLYFROMWKB(@a);
|
||||||
SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000000001840000000000000184000000000000014400000000000001440;
|
||||||
SET @a=POLYFROMWKB(@a);
|
SET @a=POLYFROMWKB(@a);
|
||||||
|
create table t1(a polygon NOT NULL)engine=myisam;
|
||||||
|
insert into t1 values (geomfromtext("point(0 1)"));
|
||||||
|
insert into t1 values (geomfromtext("point(1 0)"));
|
||||||
|
select * from (select polygon(t1.a) as p from t1 order by t1.a) d;
|
||||||
|
p
|
||||||
|
NULL
|
||||||
|
NULL
|
||||||
|
drop table t1;
|
||||||
End of 5.1 tests
|
End of 5.1 tests
|
||||||
|
@ -744,4 +744,14 @@ SET @a=0x00000000030000000000000000000000000000000000144000000000000014400000000
|
|||||||
SET @a=POLYFROMWKB(@a);
|
SET @a=POLYFROMWKB(@a);
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #57321 crashes and valgrind errors from spatial types
|
||||||
|
#
|
||||||
|
|
||||||
|
create table t1(a polygon NOT NULL)engine=myisam;
|
||||||
|
insert into t1 values (geomfromtext("point(0 1)"));
|
||||||
|
insert into t1 values (geomfromtext("point(1 0)"));
|
||||||
|
select * from (select polygon(t1.a) as p from t1 order by t1.a) d;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
--echo End of 5.1 tests
|
||||||
|
@ -177,6 +177,7 @@ public:
|
|||||||
String *val_str(String *);
|
String *val_str(String *);
|
||||||
void fix_length_and_dec()
|
void fix_length_and_dec()
|
||||||
{
|
{
|
||||||
|
Item_geometry_func::fix_length_and_dec();
|
||||||
for (unsigned int i= 0; i < arg_count; ++i)
|
for (unsigned int i= 0; i < arg_count; ++i)
|
||||||
{
|
{
|
||||||
if (args[i]->fixed && args[i]->field_type() != MYSQL_TYPE_GEOMETRY)
|
if (args[i]->fixed && args[i]->field_type() != MYSQL_TYPE_GEOMETRY)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user