Loading mysql-test/r/select.result +9 −0 Original line number Diff line number Diff line Loading @@ -2756,3 +2756,12 @@ DROP TABLE t1,t2; select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0 16 16 2 2 create table t1 (f1 varchar(6) default NULL, f2 int(6) primary key not null); create table t2 (f3 varchar(5) not null, f4 varchar(5) not null, UNIQUE KEY UKEY (f3,f4)); insert into t1 values (" 2", 2); insert into t2 values (" 2", " one "),(" 2", " two "); select * from t1 left join t2 on f1 = f3; f1 f2 f3 f4 2 2 2 one 2 2 2 two drop table t1,t2; mysql-test/t/select.test +10 −0 Original line number Diff line number Diff line Loading @@ -2348,3 +2348,13 @@ DROP TABLE t1,t2; # select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; # # Bug #11398 Bug in field_conv() results in wrong result of join with index # create table t1 (f1 varchar(6) default NULL, f2 int(6) primary key not null); create table t2 (f3 varchar(5) not null, f4 varchar(5) not null, UNIQUE KEY UKEY (f3,f4)); insert into t1 values (" 2", 2); insert into t2 values (" 2", " one "),(" 2", " two "); select * from t1 left join t2 on f1 = f3; drop table t1,t2; sql/field_conv.cc +4 −1 Original line number Diff line number Diff line Loading @@ -640,7 +640,10 @@ void field_conv(Field *to,Field *from) (!(to->table->in_use->variables.sql_mode & (MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE | MODE_INVALID_DATES)) || to->type() != FIELD_TYPE_DATE && to->type() != FIELD_TYPE_DATETIME)) to->type() != FIELD_TYPE_DATETIME) && (from->real_type() != MYSQL_TYPE_VARCHAR || ((Field_varstring*)from)->length_bytes == ((Field_varstring*)to)->length_bytes)) { // Identical fields #ifdef HAVE_purify /* This may happen if one does 'UPDATE ... SET x=x' */ Loading Loading
mysql-test/r/select.result +9 −0 Original line number Diff line number Diff line Loading @@ -2756,3 +2756,12 @@ DROP TABLE t1,t2; select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; x'10' + 0 X'10' + 0 b'10' + 0 B'10' + 0 16 16 2 2 create table t1 (f1 varchar(6) default NULL, f2 int(6) primary key not null); create table t2 (f3 varchar(5) not null, f4 varchar(5) not null, UNIQUE KEY UKEY (f3,f4)); insert into t1 values (" 2", 2); insert into t2 values (" 2", " one "),(" 2", " two "); select * from t1 left join t2 on f1 = f3; f1 f2 f3 f4 2 2 2 one 2 2 2 two drop table t1,t2;
mysql-test/t/select.test +10 −0 Original line number Diff line number Diff line Loading @@ -2348,3 +2348,13 @@ DROP TABLE t1,t2; # select x'10' + 0, X'10' + 0, b'10' + 0, B'10' + 0; # # Bug #11398 Bug in field_conv() results in wrong result of join with index # create table t1 (f1 varchar(6) default NULL, f2 int(6) primary key not null); create table t2 (f3 varchar(5) not null, f4 varchar(5) not null, UNIQUE KEY UKEY (f3,f4)); insert into t1 values (" 2", 2); insert into t2 values (" 2", " one "),(" 2", " two "); select * from t1 left join t2 on f1 = f3; drop table t1,t2;
sql/field_conv.cc +4 −1 Original line number Diff line number Diff line Loading @@ -640,7 +640,10 @@ void field_conv(Field *to,Field *from) (!(to->table->in_use->variables.sql_mode & (MODE_NO_ZERO_IN_DATE | MODE_NO_ZERO_DATE | MODE_INVALID_DATES)) || to->type() != FIELD_TYPE_DATE && to->type() != FIELD_TYPE_DATETIME)) to->type() != FIELD_TYPE_DATETIME) && (from->real_type() != MYSQL_TYPE_VARCHAR || ((Field_varstring*)from)->length_bytes == ((Field_varstring*)to)->length_bytes)) { // Identical fields #ifdef HAVE_purify /* This may happen if one does 'UPDATE ... SET x=x' */ Loading