22 #include <drizzled/item/basic_constant.h>
23 #include <drizzled/charset.h>
32 assert(not (str.size() % cs->mbminlen));
33 str_value.set(str.data(), str.size(), cs);
34 collation.set(cs, dv);
42 max_length=
str_value.numchars() * cs->mbmaxlen;
43 set_name(str.data(), str.size(), cs);
44 decimals=NOT_FIXED_DEC;
52 assert(not (length % cs->mbminlen));
54 collation.set(cs, dv);
62 max_length=
str_value.numchars()*cs->mbmaxlen;
63 set_name(str, length, cs);
64 decimals=NOT_FIXED_DEC;
71 collation.set(cs, dv);
73 set_name(NULL, 0, cs);
74 decimals= NOT_FIXED_DEC;
77 Item_string(
const char *name_par,
const char *str, uint32_t length,
80 assert(not (length % cs->mbminlen));
82 collation.set(cs, dv);
83 max_length=
str_value.numchars()*cs->mbmaxlen;
84 set_name(name_par, 0, cs);
85 decimals=NOT_FIXED_DEC;
89 enum Type type()
const {
return STRING_ITEM; }
98 int save_in_field(
Field *field,
bool no_conversions);
99 enum Item_result result_type ()
const {
return STRING_RESULT; }
100 enum_field_types field_type()
const {
return DRIZZLE_TYPE_VARCHAR; }
102 bool eq(
const Item *item,
bool binary_cmp)
const;
107 Item *safe_charset_converter(
const charset_info_st *
const tocs);
111 max_length=
str_value.numchars() * collation.collation->mbmaxlen;
113 virtual void print(String *str);
119 const char *func_name;
132 str->append(func_name, strlen(func_name));