summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorram@mysql.r18.ru <>2003-04-04 14:10:24 +0500
committerram@mysql.r18.ru <>2003-04-04 14:10:24 +0500
commitd29557cb68e9049642c305820ce8a9dda26679c3 (patch)
treeb6bd1f17a19d8a9910a1efe9bcf945cc340b6ee2
parentbe27b2369b8755cd3fe98b258bd620b054799744 (diff)
parent7a856411ec49f2ce64b72981c66d290bb402bcbc (diff)
downloadmariadb-git-d29557cb68e9049642c305820ce8a9dda26679c3.tar.gz
Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-4.1
into mysql.r18.ru:/usr/home/ram/work/mysql-4.1.sp
-rw-r--r--sql/item_strfunc.cc17
1 files changed, 9 insertions, 8 deletions
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index 0ec2acb5d75..45a7625b331 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -2624,20 +2624,21 @@ String *Item_func_geometry_type::val_str(String *str)
String *Item_func_envelope::val_str(String *str)
{
- String *res= args[0]->val_str(str);
+ String arg_val;
+ String *swkb= args[0]->val_str(&arg_val);
Geometry geom;
if ((null_value= args[0]->null_value ||
- geom.create_from_wkb(res->ptr() + SRID_SIZE,
- res->length() - SRID_SIZE)))
+ geom.create_from_wkb(swkb->ptr() + SRID_SIZE,
+ swkb->length() - SRID_SIZE)))
return 0;
- uint32 srid= uint4korr(res->ptr());
- if (res->reserve(SRID_SIZE, 512))
+ uint32 srid= uint4korr(swkb->ptr());
+ str->length(0);
+ if (str->reserve(SRID_SIZE, 512))
return 0;
- res->length(0);
- res->q_append(srid);
- return (null_value= geom.envelope(res)) ? 0 : res;
+ str->q_append(srid);
+ return (null_value= geom.envelope(str)) ? 0 : str;
}