From f7da62d2ad5e585af2adb3cae78885114cc64393 Mon Sep 17 00:00:00 2001 From: Sergey Vojtovich Date: Wed, 8 Sep 2010 00:16:10 +0400 Subject: [PATCH 1/2] main.gis-rtree, main.type_float and main.type_newdecimal were marked as experimental due to BUG38965. --- mysql-test/collections/default.experimental | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mysql-test/collections/default.experimental b/mysql-test/collections/default.experimental index 8da83d8ae97..91dada3ee05 100644 --- a/mysql-test/collections/default.experimental +++ b/mysql-test/collections/default.experimental @@ -45,3 +45,6 @@ parts.partition_syntax_ndb # joro : NDB tests marked as experiment parts.partition_value_ndb # joro : NDB tests marked as experimental as agreed with bochklin main.mysqlhotcopy_myisam # horst: due to bug#54129 main.mysqlhotcopy_archive # horst: due to bug#54129 +main.gis-rtree # svoj: due to BUG#38965 +main.type_float # svoj: due to BUG#38965 +main.type_newdecimal # svoj: due to BUG#38965 From 9080f681b4b543797e9f592aefc09977b9770b75 Mon Sep 17 00:00:00 2001 From: Ramil Kalimullin Date: Thu, 9 Sep 2010 13:40:17 +0400 Subject: [PATCH 2/2] 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 | 6 +++--- sql/item_geofunc.h | 10 ++++++---- 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; ifixed && 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()); } } }