automerge
This commit is contained in:
commit
9a5a77eb68
@ -972,6 +972,18 @@ select min(`col002`) from t1 union select `col002` from t1;
|
||||
min(`col002`)
|
||||
NULL
|
||||
drop table t1;
|
||||
#
|
||||
# Bug #47780: crash when comparing GIS items from subquery
|
||||
#
|
||||
CREATE TABLE t1(a INT, b MULTIPOLYGON);
|
||||
INSERT INTO t1 VALUES
|
||||
(0,
|
||||
GEOMFROMTEXT(
|
||||
'multipolygon(((1 2,3 4,5 6,7 8,9 8),(7 6,5 4,3 2,1 2,3 4)))'));
|
||||
# must not crash
|
||||
SELECT 1 FROM t1 WHERE a <> (SELECT GEOMETRYCOLLECTIONFROMWKB(b) FROM t1);
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
|
||||
create view v1 as select * from t1;
|
||||
|
@ -655,6 +655,22 @@ insert into t1 values (),(),();
|
||||
select min(`col002`) from t1 union select `col002` from t1;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug #47780: crash when comparing GIS items from subquery
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1(a INT, b MULTIPOLYGON);
|
||||
INSERT INTO t1 VALUES
|
||||
(0,
|
||||
GEOMFROMTEXT(
|
||||
'multipolygon(((1 2,3 4,5 6,7 8,9 8),(7 6,5 4,3 2,1 2,3 4)))'));
|
||||
|
||||
--echo # must not crash
|
||||
SELECT 1 FROM t1 WHERE a <> (SELECT GEOMETRYCOLLECTIONFROMWKB(b) FROM t1);
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
|
||||
|
@ -84,7 +84,9 @@ String *Item_func_geometry_from_wkb::val_str(String *str)
|
||||
|
||||
if (args[0]->field_type() == MYSQL_TYPE_GEOMETRY)
|
||||
{
|
||||
return args[0]->val_str(str);
|
||||
String *str_ret= args[0]->val_str(str);
|
||||
null_value= args[0]->null_value;
|
||||
return str_ret;
|
||||
}
|
||||
|
||||
wkb= args[0]->val_str(&arg_val);
|
||||
@ -94,7 +96,10 @@ String *Item_func_geometry_from_wkb::val_str(String *str)
|
||||
|
||||
str->set_charset(&my_charset_bin);
|
||||
if (str->reserve(SRID_SIZE, 512))
|
||||
return 0;
|
||||
{
|
||||
null_value= TRUE; /* purecov: inspected */
|
||||
return 0; /* purecov: inspected */
|
||||
}
|
||||
str->length(0);
|
||||
str->q_append(srid);
|
||||
if ((null_value=
|
||||
|
Loading…
x
Reference in New Issue
Block a user