Commit 7a856411 authored by ram@mysql.r18.ru's avatar ram@mysql.r18.ru

Fixed envelope() function.

parent 1c9e9bb6
...@@ -2624,20 +2624,21 @@ String *Item_func_geometry_type::val_str(String *str) ...@@ -2624,20 +2624,21 @@ String *Item_func_geometry_type::val_str(String *str)
String *Item_func_envelope::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; Geometry geom;
if ((null_value= args[0]->null_value || if ((null_value= args[0]->null_value ||
geom.create_from_wkb(res->ptr() + SRID_SIZE, geom.create_from_wkb(swkb->ptr() + SRID_SIZE,
res->length() - SRID_SIZE))) swkb->length() - SRID_SIZE)))
return 0; return 0;
uint32 srid= uint4korr(res->ptr()); uint32 srid= uint4korr(swkb->ptr());
if (res->reserve(SRID_SIZE, 512)) str->length(0);
if (str->reserve(SRID_SIZE, 512))
return 0; return 0;
res->length(0); str->q_append(srid);
res->q_append(srid); return (null_value= geom.envelope(str)) ? 0 : str;
return (null_value= geom.envelope(res)) ? 0 : res;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment