mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Bug #21531: EXPORT_SET() doesn't accept args with coercible character sets
- Fix typo in Item_func_export_set::fix_length_and_dec() which caused character set aggregation to fail - Remove default argument from last arg of agg_arg_charsets() function, to reduce potential errors mysql-test/r/func_misc.result: Test EXPORT_SET() with charset coersion (bug #21531) mysql-test/t/func_misc.test: Test EXPORT_SET() with charset coersion (bug #21531) sql/item_func.h: Remove default argument from last arg of agg_arg_charsets() function, to reduce potential errors. sql/item_strfunc.cc: Fix typo in Item_func_export_set::fix_length_and_dec() which caused character set aggregation to fail.
This commit is contained in:
@ -93,3 +93,7 @@ SELECT IS_USED_LOCK('bug16501');
|
||||
IS_USED_LOCK('bug16501')
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
select export_set(3, _latin1'foo', _utf8'bar', ',', 4);
|
||||
export_set(3, _latin1'foo', _utf8'bar', ',', 4)
|
||||
foo,foo,bar,bar
|
||||
End of 4.1 tests
|
||||
|
@ -83,4 +83,9 @@ connection default;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
#
|
||||
# Bug #21531: EXPORT_SET() doesn't accept args with coercible character sets
|
||||
#
|
||||
select export_set(3, _latin1'foo', _utf8'bar', ',', 4);
|
||||
|
||||
--echo End of 4.1 tests
|
||||
|
@ -156,8 +156,7 @@ public:
|
||||
return agg_item_collations_for_comparison(c, func_name(),
|
||||
items, nitems, flags);
|
||||
}
|
||||
bool agg_arg_charsets(DTCollation &c, Item **items, uint nitems,
|
||||
uint flags= 0)
|
||||
bool agg_arg_charsets(DTCollation &c, Item **items, uint nitems, uint flags)
|
||||
{
|
||||
return agg_item_charsets(c, func_name(), items, nitems, flags);
|
||||
}
|
||||
|
@ -2624,8 +2624,8 @@ void Item_func_export_set::fix_length_and_dec()
|
||||
uint sep_length=(arg_count > 3 ? args[3]->max_length : 1);
|
||||
max_length=length*64+sep_length*63;
|
||||
|
||||
if (agg_arg_charsets(collation, args+1, min(4,arg_count)-1),
|
||||
MY_COLL_ALLOW_CONV)
|
||||
if (agg_arg_charsets(collation, args+1, min(4,arg_count)-1,
|
||||
MY_COLL_ALLOW_CONV))
|
||||
return;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user