diff options
author | unknown <gluh@gluh.mysql.r18.ru> | 2005-03-17 16:51:07 +0300 |
---|---|---|
committer | unknown <gluh@gluh.mysql.r18.ru> | 2005-03-17 16:51:07 +0300 |
commit | 17791f95002b2f9c8cb31eed64c36f019b2edda9 (patch) | |
tree | 7107fca24e8d8dd39be0300a9e1e64d7ad8921a2 /sql/item_strfunc.cc | |
parent | 621abfacfe316df9ce06c9d046ec11f23e543ea7 (diff) | |
parent | 3e4ae65a144d8f7a63ee5f8c4d1ec65f94f35b58 (diff) | |
download | mariadb-git-17791f95002b2f9c8cb31eed64c36f019b2edda9.tar.gz |
Merge 4.1 -> 5.0
heap/hp_create.c:
Auto merged
mysql-test/mysql-test-run.sh:
Auto merged
mysql-test/r/ctype_utf8.result:
Auto merged
mysql-test/r/olap.result:
Auto merged
mysql-test/t/func_str.test:
Auto merged
sql/item.cc:
Auto merged
sql/item.h:
Auto merged
sql/item_func.cc:
Auto merged
sql/item_strfunc.cc:
Auto merged
sql/key.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/sql_select.h:
Auto merged
sql/sql_string.h:
Auto merged
client/mysqldump.c:
Manual merge
mysql-test/r/func_gconcat.result:
Manual merge
mysql-test/r/func_str.result:
Manual merge
mysql-test/t/func_gconcat.test:
Manual merge
sql/ha_heap.cc:
Manual merge
sql/sql_select.cc:
Manual merge
Diffstat (limited to 'sql/item_strfunc.cc')
-rw-r--r-- | sql/item_strfunc.cc | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index a9ec7139ea7..81120bbe3f7 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -267,8 +267,7 @@ String *Item_func_concat::val_str(String *str) current_thd->variables.max_allowed_packet); goto null; } - if (!args[0]->const_item() && - res->alloced_length() >= res->length()+res2->length()) + if (res->alloced_length() >= res->length()+res2->length()) { // Use old buffer res->append(*res2); } @@ -2308,12 +2307,11 @@ void Item_func_set_collation::print(String *str) String *Item_func_charset::val_str(String *str) { DBUG_ASSERT(fixed == 1); - String *res = args[0]->val_str(str); uint dummy_errors; - if ((null_value=(args[0]->null_value || !res->charset()))) - return 0; - str->copy(res->charset()->csname,strlen(res->charset()->csname), + CHARSET_INFO *cs= args[0]->collation.collation; + null_value= 0; + str->copy(cs->csname, strlen(cs->csname), &my_charset_latin1, collation.collation, &dummy_errors); return str; } @@ -2321,12 +2319,11 @@ String *Item_func_charset::val_str(String *str) String *Item_func_collation::val_str(String *str) { DBUG_ASSERT(fixed == 1); - String *res = args[0]->val_str(str); uint dummy_errors; + CHARSET_INFO *cs= args[0]->collation.collation; - if ((null_value=(args[0]->null_value || !res->charset()))) - return 0; - str->copy(res->charset()->name,strlen(res->charset()->name), + null_value= 0; + str->copy(cs->name, strlen(cs->name), &my_charset_latin1, collation.collation, &dummy_errors); return str; } @@ -2490,6 +2487,7 @@ String* Item_func_export_set::val_str(String* str) uint num_set_values = 64; ulonglong mask = 0x1; str->length(0); + str->set_charset(collation.collation); /* Check if some argument is a NULL value */ if (args[0]->null_value || args[1]->null_value || args[2]->null_value) |