Commit 8fb495d1 authored by unknown's avatar unknown
Browse files

post merge changes: added safe_charset_converter to other static functions

parent 213c0540
Loading
Loading
Loading
Loading
+32 −0
Original line number Diff line number Diff line
@@ -638,6 +638,38 @@ Item *Item_num::safe_charset_converter(CHARSET_INFO *tocs)
}


Item *Item_static_int_func::safe_charset_converter(CHARSET_INFO *tocs)
{
  Item_string *conv;
  char buf[64];
  String *s, tmp(buf, sizeof(buf), &my_charset_bin);
  s= val_str(&tmp);
  if ((conv= new Item_static_string_func(func_name, s->ptr(), s->length(),
                                         s->charset())))
  {
    conv->str_value.copy();
    conv->str_value.mark_as_const();
  }
  return conv;
}


Item *Item_static_float_func::safe_charset_converter(CHARSET_INFO *tocs)
{
  Item_string *conv;
  char buf[64];
  String *s, tmp(buf, sizeof(buf), &my_charset_bin);
  s= val_str(&tmp);
  if ((conv= new Item_static_string_func(func_name, s->ptr(), s->length(),
                                         s->charset())))
  {
    conv->str_value.copy();
    conv->str_value.mark_as_const();
  }
  return conv;
}


Item *Item_string::safe_charset_converter(CHARSET_INFO *tocs)
{
  Item_string *conv;
+2 −0
Original line number Diff line number Diff line
@@ -1132,6 +1132,7 @@ class Item_static_int_func :public Item_int
  Item_static_int_func(const char *str_arg, longlong i, uint length)
    :Item_int(NullS, i, length), func_name(str_arg)
  {}
  Item *safe_charset_converter(CHARSET_INFO *tocs);
  void print(String *str) { str->append(func_name); }
};

@@ -1242,6 +1243,7 @@ class Item_static_float_func :public Item_float
    :Item_float(NullS, val_arg, decimal_par, length), func_name(str)
  {}
  void print(String *str) { str->append(func_name); }
  Item *safe_charset_converter(CHARSET_INFO *tocs);
};