diff options
Diffstat (limited to 'sql/item_geofunc.cc')
-rw-r--r-- | sql/item_geofunc.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sql/item_geofunc.cc b/sql/item_geofunc.cc index 02c0f5829fd..1c9338f5f35 100644 --- a/sql/item_geofunc.cc +++ b/sql/item_geofunc.cc @@ -31,10 +31,13 @@ String *Item_func_geometry_from_text::val_str(String *str) { Geometry_buffer buffer; - Geometry *geom; String arg_val; String *wkt= args[0]->val_str(&arg_val); - Gis_read_stream trs(wkt->c_ptr(), wkt->length()); + + if ((null_value= args[0]->null_value)) + return 0; + + Gis_read_stream trs(wkt->charset(), wkt->ptr(), wkt->length()); uint32 srid= 0; if ((arg_count == 2) && !args[1]->null_value) @@ -44,8 +47,7 @@ String *Item_func_geometry_from_text::val_str(String *str) return 0; str->length(0); str->q_append(srid); - if ((null_value=(args[0]->null_value || - !(geom= Geometry::create_from_wkt(&buffer, &trs, str, 0))))) + if ((null_value= !Geometry::create_from_wkt(&buffer, &trs, str, 0))) return 0; return str; } |