summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamil Kalimullin <ramil@mysql.com>2010-09-09 13:40:17 +0400
committerRamil Kalimullin <ramil@mysql.com>2010-09-09 13:40:17 +0400
commit762c7ca4620be17ed7a4006954926b0e8aa8666b (patch)
treeb8946caef11286f7734f3d9b6909090370abfbf1
parent0782e25aa2cbb260f5fe965511e1f3736add83c6 (diff)
downloadmariadb-git-762c7ca4620be17ed7a4006954926b0e8aa8666b.tar.gz
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.
-rw-r--r--mysql-test/r/gis.result6
-rw-r--r--sql/item_geofunc.h10
2 files changed, 9 insertions, 7 deletions
diff --git a/mysql-test/r/gis.result b/mysql-test/r/gis.result
index 02c8afc2d77..3b18ee61336 100644
--- a/mysql-test/r/gis.result
+++ b/mysql-test/r/gis.result
@@ -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
#
diff --git a/sql/item_geofunc.h b/sql/item_geofunc.h
index 070c2cd26fc..b3ecbc39933 100644
--- a/sql/item_geofunc.h
+++ b/sql/item_geofunc.h
@@ -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());
}
}
}