diff options
author | unknown <bar@bar.intranet.mysql.r18.ru> | 2004-03-19 12:09:14 +0400 |
---|---|---|
committer | unknown <bar@bar.intranet.mysql.r18.ru> | 2004-03-19 12:09:14 +0400 |
commit | 54735ae3a9252fa64c38f930b516e60d394e65cb (patch) | |
tree | 1f1f1a545b2c6f7acb1af5bba3abb9f779824920 /sql/item_strfunc.cc | |
parent | 8bbb6d2b42f8f7f6ce50171addc4d57c5d2c81f4 (diff) | |
download | mariadb-git-54735ae3a9252fa64c38f930b516e60d394e65cb.tar.gz |
Bug #3087 CONCAT_WS makes the server die in case of illegal mix of collations
Diffstat (limited to 'sql/item_strfunc.cc')
-rw-r--r-- | sql/item_strfunc.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc index 2833e1ca016..06131950ec3 100644 --- a/sql/item_strfunc.cc +++ b/sql/item_strfunc.cc @@ -628,9 +628,11 @@ void Item_func_concat_ws::fix_length_and_dec() max_length=separator->max_length*(arg_count-1); for (uint i=0 ; i < arg_count ; i++) { + DTCollation tmp(collation.collation, collation.derivation); max_length+=args[i]->max_length; if (collation.aggregate(args[i]->collation)) { + collation.set(tmp); // Restore the previous value my_coll_agg_error(collation, args[i]->collation, func_name()); break; } |