diff options
author | unknown <bar@gw.udmsearch.izhnet.ru> | 2002-05-17 16:29:52 +0500 |
---|---|---|
committer | unknown <bar@gw.udmsearch.izhnet.ru> | 2002-05-17 16:29:52 +0500 |
commit | 8bee96ab0ad02e45bb4652f6878173d030642051 (patch) | |
tree | e4f1191a52998c24839a96bb95784af36d1f03d0 /sql/item_sum.cc | |
parent | b043f06666c278a4277e7d35b1bff418d45708c2 (diff) | |
download | mariadb-git-8bee96ab0ad02e45bb4652f6878173d030642051.tar.gz |
Now string values are created and filled with charset field
SELECT func(charset2) FROM t ORDER BY 1 works in correct charset
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r-- | sql/item_sum.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 83bc2272515..2275ce4eeb6 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -513,7 +513,7 @@ void Item_sum_hybrid::reset_field() if (hybrid_type == STRING_RESULT) { char buff[MAX_FIELD_WIDTH]; - String tmp(buff,sizeof(buff)),*res; + String tmp(buff,sizeof(buff),default_charset_info),*res; res=args[0]->val_str(&tmp); if (args[0]->null_value) @@ -524,7 +524,7 @@ void Item_sum_hybrid::reset_field() else { result_field->set_notnull(); - result_field->store(res->ptr(),res->length()); + result_field->store(res->ptr(),res->length(),tmp.charset()); } } else if (hybrid_type == INT_RESULT) @@ -694,7 +694,7 @@ Item_sum_hybrid::min_max_update_str_field(int offset) if (result_field->is_null() || (cmp_sign * (binary ? stringcmp(res_str,&tmp_value) : sortcmp(res_str,&tmp_value)) < 0)) - result_field->store(res_str->ptr(),res_str->length()); + result_field->store(res_str->ptr(),res_str->length(),res_str->charset()); else { // Use old value char *res=result_field->ptr; |