Loading mysql-test/r/innodb.result +9 −0 Original line number Diff line number Diff line Loading @@ -1685,3 +1685,12 @@ explain select * from t1 order by a,b,c,d; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort drop table t1; create table t1 (a char(1), b char(1), key(a, b)) engine=innodb; insert into t1 values ('8', '6'), ('4', '7'); select min(a) from t1; min(a) 4 select min(b) from t1 where a='8'; min(b) 6 drop table t1; mysql-test/t/innodb.test +9 −0 Original line number Diff line number Diff line Loading @@ -1230,4 +1230,13 @@ select * from t1 order by a,b,c,d; explain select * from t1 order by a,b,c,d; drop table t1; # # BUG#11039,#13218 Wrong key length in min() # create table t1 (a char(1), b char(1), key(a, b)) engine=innodb; insert into t1 values ('8', '6'), ('4', '7'); select min(a) from t1; select min(b) from t1 where a='8'; drop table t1; # End of 4.1 tests sql/opt_sum.cc +2 −1 Original line number Diff line number Diff line Loading @@ -661,7 +661,8 @@ static bool find_key_for_maxmin(bool max_fl, TABLE_REF *ref, If key_part2 may be NULL, then we want to find the first row that is not null */ ref->key_buff[ref->key_length++]= 1; ref->key_buff[ref->key_length]= 1; ref->key_length+= part->store_length; *range_fl&= ~NO_MIN_RANGE; *range_fl|= NEAR_MIN; // > NULL } Loading Loading
mysql-test/r/innodb.result +9 −0 Original line number Diff line number Diff line Loading @@ -1685,3 +1685,12 @@ explain select * from t1 order by a,b,c,d; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using filesort drop table t1; create table t1 (a char(1), b char(1), key(a, b)) engine=innodb; insert into t1 values ('8', '6'), ('4', '7'); select min(a) from t1; min(a) 4 select min(b) from t1 where a='8'; min(b) 6 drop table t1;
mysql-test/t/innodb.test +9 −0 Original line number Diff line number Diff line Loading @@ -1230,4 +1230,13 @@ select * from t1 order by a,b,c,d; explain select * from t1 order by a,b,c,d; drop table t1; # # BUG#11039,#13218 Wrong key length in min() # create table t1 (a char(1), b char(1), key(a, b)) engine=innodb; insert into t1 values ('8', '6'), ('4', '7'); select min(a) from t1; select min(b) from t1 where a='8'; drop table t1; # End of 4.1 tests
sql/opt_sum.cc +2 −1 Original line number Diff line number Diff line Loading @@ -661,7 +661,8 @@ static bool find_key_for_maxmin(bool max_fl, TABLE_REF *ref, If key_part2 may be NULL, then we want to find the first row that is not null */ ref->key_buff[ref->key_length++]= 1; ref->key_buff[ref->key_length]= 1; ref->key_length+= part->store_length; *range_fl&= ~NO_MIN_RANGE; *range_fl|= NEAR_MIN; // > NULL } Loading