summaryrefslogtreecommitdiff
path: root/sql/item_strfunc.cc
diff options
context:
space:
mode:
authorunknown <bar@bar.mysql.r18.ru>2003-06-10 14:54:03 +0500
committerunknown <bar@bar.mysql.r18.ru>2003-06-10 14:54:03 +0500
commit8a40e2e8f81508ba66f9b3e9bab7b1896fb8482d (patch)
treef9aa22c9dbb79f6980e381c2d1c8d176bafe705a /sql/item_strfunc.cc
parent4b420bb29bb871c10bcb15a4dfafeada38f45ce5 (diff)
downloadmariadb-git-8a40e2e8f81508ba66f9b3e9bab7b1896fb8482d.tar.gz
Some more functions work according to coercibility now:
repeat, reverse, quote, soundex, substring Test func_str has been extended to check them
Diffstat (limited to 'sql/item_strfunc.cc')
-rw-r--r--sql/item_strfunc.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index e5b73e7670f..b9d44295f35 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -702,6 +702,7 @@ String *Item_func_reverse::val_str(String *str)
void Item_func_reverse::fix_length_and_dec()
{
+ set_charset(args[0]->charset(),args[0]->coercibility);
max_length = args[0]->max_length;
}
@@ -1521,6 +1522,7 @@ String *Item_func_user::val_str(String *str)
void Item_func_soundex::fix_length_and_dec()
{
+ set_charset(args[0]->charset(), args[0]->coercibility);
max_length=args[0]->max_length;
set_if_bigger(max_length,4);
}
@@ -1552,7 +1554,7 @@ String *Item_func_soundex::val_str(String *str)
{
String *res =args[0]->val_str(str);
char last_ch,ch;
- CHARSET_INFO *cs= &my_charset_latin1;
+ CHARSET_INFO *cs= charset();
if ((null_value=args[0]->null_value))
return 0; /* purecov: inspected */
@@ -2538,6 +2540,7 @@ String *Item_func_quote::val_str(String *str)
}
*to= '\'';
str->length(new_length);
+ str->set_charset(charset());
return str;
null: