diff options
author | bar@mysql.com <> | 2004-09-01 15:39:15 +0500 |
---|---|---|
committer | bar@mysql.com <> | 2004-09-01 15:39:15 +0500 |
commit | 153e18a25237c89e347317beffea6ecc0121e894 (patch) | |
tree | 77ebcecccdab54d0eed739c08f6404be23bc1aff /sql/item_func.cc | |
parent | 4f32cd2b3d415c9ce3d3835f1974428f37a7f235 (diff) | |
download | mariadb-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.cc | 12 |
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) |