summaryrefslogtreecommitdiff
path: root/sql/item_func.cc
diff options
context:
space:
mode:
authorbar@mysql.com <>2004-09-01 15:39:15 +0500
committerbar@mysql.com <>2004-09-01 15:39:15 +0500
commit153e18a25237c89e347317beffea6ecc0121e894 (patch)
tree77ebcecccdab54d0eed739c08f6404be23bc1aff /sql/item_func.cc
parent4f32cd2b3d415c9ce3d3835f1974428f37a7f235 (diff)
downloadmariadb-git-153e18a25237c89e347317beffea6ecc0121e894.tar.gz
Allow IN to convert arguments into Unicode in some cases.
Diffstat (limited to 'sql/item_func.cc')
-rw-r--r--sql/item_func.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/sql/item_func.cc b/sql/item_func.cc
index adcba34d56b..ef845bb8266 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -75,13 +75,16 @@ static void my_coll_agg_error(Item** args, uint count, const char *fname)
}
-bool Item_func::agg_arg_collations(DTCollation &c, Item **av, uint count)
+bool Item_func::agg_arg_collations(DTCollation &c, Item **av, uint count,
+ bool allow_superset_conversion)
{
uint i;
+ c.nagg= 0;
+ c.strong= 0;
c.set(av[0]->collation);
for (i= 1; i < count; i++)
{
- if (c.aggregate(av[i]->collation))
+ if (c.aggregate(av[i]->collation, allow_superset_conversion))
{
my_coll_agg_error(av, count, func_name());
return TRUE;
@@ -92,9 +95,10 @@ bool Item_func::agg_arg_collations(DTCollation &c, Item **av, uint count)
bool Item_func::agg_arg_collations_for_comparison(DTCollation &c,
- Item **av, uint count)
+ Item **av, uint count,
+ bool allow_superset_conv)
{
- if (agg_arg_collations(c, av, count))
+ if (agg_arg_collations(c, av, count, allow_superset_conv))
return TRUE;
if (c.derivation == DERIVATION_NONE)