Reversing additional change suggested by Serg
under terms of bug#28875 for better performance. The change appeared to require more changes in item_cmpfunc.cc, which is dangerous in 5.0. Conversion between a latin1 column and an ascii string constant stopped to work.
This commit is contained in:
parent
ea9848094a
commit
7269c6cc6c
@ -187,6 +187,14 @@ select * from t1 where a=_latin1'
|
|||||||
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
|
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
|
||||||
drop table t1;
|
drop table t1;
|
||||||
set names latin1;
|
set names latin1;
|
||||||
|
set names ascii;
|
||||||
|
create table t1 (a char(1) character set latin1);
|
||||||
|
insert into t1 values ('a');
|
||||||
|
select * from t1 where a='a';
|
||||||
|
a
|
||||||
|
a
|
||||||
|
drop table t1;
|
||||||
|
set names latin1;
|
||||||
create table t1 (a char(10) character set utf8 collate utf8_bin);
|
create table t1 (a char(10) character set utf8 collate utf8_bin);
|
||||||
insert into t1 values (' xxx');
|
insert into t1 values (' xxx');
|
||||||
select * from t1 where a=lpad('xxx',10,' ');
|
select * from t1 where a=lpad('xxx',10,' ');
|
||||||
|
@ -152,6 +152,16 @@ select * from t1 where a=_latin1'
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
set names latin1;
|
set names latin1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Test the same with ascii
|
||||||
|
#
|
||||||
|
set names ascii;
|
||||||
|
create table t1 (a char(1) character set latin1);
|
||||||
|
insert into t1 values ('a');
|
||||||
|
select * from t1 where a='a';
|
||||||
|
drop table t1;
|
||||||
|
set names latin1;
|
||||||
|
|
||||||
#
|
#
|
||||||
# Bug#10446 Illegal mix of collations
|
# Bug#10446 Illegal mix of collations
|
||||||
#
|
#
|
||||||
|
@ -263,8 +263,6 @@ bool String::needs_conversion(uint32 arg_length,
|
|||||||
(to_cs == &my_charset_bin) ||
|
(to_cs == &my_charset_bin) ||
|
||||||
(to_cs == from_cs) ||
|
(to_cs == from_cs) ||
|
||||||
my_charset_same(from_cs, to_cs) ||
|
my_charset_same(from_cs, to_cs) ||
|
||||||
(my_charset_is_ascii_based(to_cs) &&
|
|
||||||
my_charset_is_8bit_pure_ascii(from_cs)) ||
|
|
||||||
((from_cs == &my_charset_bin) &&
|
((from_cs == &my_charset_bin) &&
|
||||||
(!(*offset=(arg_length % to_cs->mbminlen)))))
|
(!(*offset=(arg_length % to_cs->mbminlen)))))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user