automerge
This commit is contained in:
commit
9a5a77eb68
@ -972,6 +972,18 @@ select min(`col002`) from t1 union select `col002` from t1;
|
|||||||
min(`col002`)
|
min(`col002`)
|
||||||
NULL
|
NULL
|
||||||
drop table t1;
|
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
|
End of 5.0 tests
|
||||||
create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
|
create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
|
||||||
create view v1 as select * from t1;
|
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;
|
select min(`col002`) from t1 union select `col002` from t1;
|
||||||
drop table 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
|
--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)
|
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);
|
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);
|
str->set_charset(&my_charset_bin);
|
||||||
if (str->reserve(SRID_SIZE, 512))
|
if (str->reserve(SRID_SIZE, 512))
|
||||||
return 0;
|
{
|
||||||
|
null_value= TRUE; /* purecov: inspected */
|
||||||
|
return 0; /* purecov: inspected */
|
||||||
|
}
|
||||||
str->length(0);
|
str->length(0);
|
||||||
str->q_append(srid);
|
str->q_append(srid);
|
||||||
if ((null_value=
|
if ((null_value=
|
||||||
|
Loading…
x
Reference in New Issue
Block a user