mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
Fix for bug#56679: gis.test: valgrind error
Item_func_spatial_collection::fix_length_and_dec() changed to use argument's print() method to print the ER_ILLEGAL_VALUE_FOR_TYPE error. mysql-test/r/gis.result: Fix for bug#56679: gis.test: valgrind error - test result adjusted. sql/item_geofunc.h: Fix for bug#56679: gis.test: valgrind error - use argument's print() method instead of improper val_str() call in the Item_func_spatial_collection::fix_length_and_dec(), as it's applicable only for constant items.
This commit is contained in:
parent
0782e25aa2
commit
762c7ca462
2 changed files with 9 additions and 7 deletions
|
@ -707,7 +707,7 @@ numgeometries(b) IS NULL, numinteriorrings(b) IS NULL, numpoints(b) IS NULL,
|
|||
area(b) IS NULL, glength(b) IS NULL, srid(b) IS NULL, x(b) IS NULL,
|
||||
y(b) IS NULL
|
||||
from t1;
|
||||
ERROR 22007: Illegal non geometric '' value found during parsing
|
||||
ERROR 22007: Illegal non geometric '`test`.`t1`.`b`' value found during parsing
|
||||
select
|
||||
within(b, b) IS NULL, contains(b, b) IS NULL, overlaps(b, b) IS NULL,
|
||||
equals(b, b) IS NULL, disjoint(b, b) IS NULL, touches(b, b) IS NULL,
|
||||
|
@ -722,7 +722,7 @@ point(b, b) IS NULL, linestring(b) IS NULL, polygon(b) IS NULL, multipoint(b) IS
|
|||
multilinestring(b) IS NULL, multipolygon(b) IS NULL,
|
||||
geometrycollection(b) IS NULL
|
||||
from t1;
|
||||
ERROR 22007: Illegal non geometric '' value found during parsing
|
||||
ERROR 22007: Illegal non geometric '`test`.`t1`.`b`' value found during parsing
|
||||
drop table t1;
|
||||
CREATE TABLE t1(a POINT) ENGINE=MyISAM;
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
@ -1006,7 +1006,7 @@ drop table t1;
|
|||
SELECT MultiPoint(12345,'');
|
||||
ERROR 22007: Illegal non geometric '12345' value found during parsing
|
||||
SELECT 1 FROM (SELECT GREATEST(1,GEOMETRYCOLLECTION('00000','00000')) b FROM DUAL) AS d WHERE (LINESTRING(d.b));
|
||||
ERROR 22007: Illegal non geometric '' value found during parsing
|
||||
ERROR 22007: Illegal non geometric ''00000'' value found during parsing
|
||||
#
|
||||
# BUG#51875: crash when loading data into geometry function polyfromwkb
|
||||
#
|
||||
|
|
|
@ -177,13 +177,15 @@ public:
|
|||
String *val_str(String *);
|
||||
void 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)
|
||||
{
|
||||
String str;
|
||||
args[i]->val_str(&str);
|
||||
my_error(ER_ILLEGAL_VALUE_FOR_TYPE,MYF(0),"non geometric",str.c_ptr());
|
||||
args[i]->print(&str, QT_ORDINARY);
|
||||
str.append('\0');
|
||||
my_error(ER_ILLEGAL_VALUE_FOR_TYPE, MYF(0), "non geometric",
|
||||
str.ptr());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue