summaryrefslogtreecommitdiff
path: root/sql/item_cmpfunc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/item_cmpfunc.cc')
-rw-r--r--sql/item_cmpfunc.cc16
1 files changed, 15 insertions, 1 deletions
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc
index da63e3bbf4b..ff6f4022877 100644
--- a/sql/item_cmpfunc.cc
+++ b/sql/item_cmpfunc.cc
@@ -111,7 +111,21 @@ bool Item_bool_func2::set_cmp_charset(CHARSET_INFO *cs1, enum coercion co1,
if (cs1 == cs2)
cmp_charset= cs1;
else
- return 1;
+ {
+ if (co1 == COER_COERCIBLE)
+ {
+ CHARSET_INFO *c= get_charset_by_csname(cs1->csname,MY_CS_PRIMARY,MYF(0));
+ if (c)
+ {
+ cmp_charset= c;
+ return 0;
+ }
+ else
+ return 1;
+ }
+ else
+ return 1;
+ }
}
return 0;
}