30 #include <drizzled/error.h>
31 #include <drizzled/function/str/strfunc.h>
37 bool Item_str_func::fix_fields(Session *session, Item **ref)
39 bool res= Item_func::fix_fields(session, ref);
52 String *res, tmp(buff,
sizeof(buff), &my_charset_bin);
57 (void)decimal_value->
store(E_DEC_FATAL_ERROR, (
char*) res->ptr(), res->length(), res->charset());
63 double Item_str_func::val_real()
67 char *end_not_used, buff[64];
68 String *res, tmp(buff,
sizeof(buff), &my_charset_bin);
70 return res ? my_strntod(res->charset(), (
char*) res->ptr(), res->length(),
71 &end_not_used, &err_not_used) : 0.0;
75 int64_t Item_str_func::val_int()
79 char buff[DECIMAL_LONGLONG_DIGITS];
80 String *res, tmp(buff,
sizeof(buff), &my_charset_bin);
83 my_strntoll(res->charset(), res->ptr(), res->length(), 10, NULL,
88 void Item_str_func::left_right_max_length()
90 max_length=args[0]->max_length;
91 if (args[1]->const_item())
93 int length=(int) args[1]->val_int()*collation.collation->mbmaxlen;
97 set_if_smaller(max_length,(uint) length);
101 DRIZZLED_API String my_empty_string(
"",default_charset_info);