summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2005-07-16 00:52:00 +0300
committerunknown <bell@sanja.is.com.ua>2005-07-16 00:52:00 +0300
commitae04e233f30ceff4d29c2ae32fbc5bd966dda517 (patch)
treec80fe3dba43e86b96aa1e20201297620f160416d
parent026903bf2c23c40e164e8e40bb6dadec1e00ba5f (diff)
downloadmariadb-git-ae04e233f30ceff4d29c2ae32fbc5bd966dda517.tar.gz
post merge changes: added safe_charset_converter to other static functions
-rw-r--r--sql/item.cc32
-rw-r--r--sql/item.h2
2 files changed, 34 insertions, 0 deletions
diff --git a/sql/item.cc b/sql/item.cc
index 49ab2c13a88..d26e4ba7c20 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -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;
diff --git a/sql/item.h b/sql/item.h
index cf6c0052a98..f195557fb69 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -1132,6 +1132,7 @@ public:
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 @@ public:
: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);
};