diff options
Diffstat (limited to 'sql/item.h')
-rw-r--r-- | sql/item.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sql/item.h b/sql/item.h index 0a236189063..09882b26724 100644 --- a/sql/item.h +++ b/sql/item.h @@ -344,13 +344,15 @@ public: enum Type type() const { return STRING_ITEM; } double val() { + int err; return my_strntod(str_value.charset(), (char*) str_value.ptr(), - str_value.length(), (char**) 0); + str_value.length(), (char**) 0, &err); } longlong val_int() { + int err; return my_strntoll(str_value.charset(), str_value.ptr(), - str_value.length(), (char**) 0, 10); + str_value.length(), 10, (char**) 0, &err); } String *val_str(String*) { return (String*) &str_value; } int save_in_field(Field *field, bool no_conversions); @@ -599,12 +601,16 @@ public: enum_field_types field_type() const { return cached_field_type; } double val() { + int err; return (null_value ? 0.0 : my_strntod(str_value.charset(), (char*) str_value.ptr(), - str_value.length(),NULL)); + str_value.length(),NULL,&err)); } longlong val_int() - { return null_value ? LL(0) : my_strntoll(str_value.charset(),str_value.ptr(),str_value.length(),(char**) 0,10); } + { + int err; + return null_value ? LL(0) : my_strntoll(str_value.charset(),str_value.ptr(),str_value.length(),10, (char**) 0,&err); + } String *val_str(String*); void make_field(Send_field *field) { item->make_field(field); } void copy(); |