Loading mysql-test/include/varchar.inc +1 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' alter table t1 add unique(v); alter table t1 add key(v); select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a'; --replace_column 6 # explain select * from t1 where v='a'; # GROUP BY Loading mysql-test/r/bdb.result +1 −1 Original line number Diff line number Diff line Loading @@ -1445,7 +1445,7 @@ qq *a *a*a * explain select * from t1 where v='a'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref v,v_2 v 13 const 10 Using where 1 SIMPLE t1 ref v,v_2 # 13 const 10 Using where select v,count(*) from t1 group by v limit 10; v count(*) a 1 Loading mysql-test/r/myisam.result +1 −1 Original line number Diff line number Diff line Loading @@ -716,7 +716,7 @@ qq *a *a*a * explain select * from t1 where v='a'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref v,v_2 v_2 13 const 7 Using where 1 SIMPLE t1 ref v,v_2 # 13 const 7 Using where select v,count(*) from t1 group by v limit 10; v count(*) a 1 Loading sql/table.cc +6 −5 Original line number Diff line number Diff line Loading @@ -262,11 +262,6 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, } key_part->store_length=key_part->length; } set_if_bigger(outparam->max_key_length,keyinfo->key_length+ keyinfo->key_parts); outparam->total_key_length+= keyinfo->key_length; if (keyinfo->flags & HA_NOSAME) set_if_bigger(outparam->max_unique_length,keyinfo->key_length); } keynames=(char*) key_part; strpos+= (strmov(keynames, (char *) strpos) - keynames)+1; Loading Loading @@ -718,6 +713,12 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, } } keyinfo->usable_key_parts=usable_parts; // Filesort set_if_bigger(outparam->max_key_length,keyinfo->key_length+ keyinfo->key_parts); outparam->total_key_length+= keyinfo->key_length; if (keyinfo->flags & HA_NOSAME) set_if_bigger(outparam->max_unique_length,keyinfo->key_length); } if (primary_key < MAX_KEY && (outparam->keys_in_use.is_set(primary_key))) Loading Loading
mysql-test/include/varchar.inc +1 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,7 @@ explain select count(*) from t1 where v between 'a' and 'a ' and v between 'a ' alter table t1 add unique(v); alter table t1 add key(v); select concat('*',v,'*',c,'*',t,'*') as qq from t1 where v='a'; --replace_column 6 # explain select * from t1 where v='a'; # GROUP BY Loading
mysql-test/r/bdb.result +1 −1 Original line number Diff line number Diff line Loading @@ -1445,7 +1445,7 @@ qq *a *a*a * explain select * from t1 where v='a'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref v,v_2 v 13 const 10 Using where 1 SIMPLE t1 ref v,v_2 # 13 const 10 Using where select v,count(*) from t1 group by v limit 10; v count(*) a 1 Loading
mysql-test/r/myisam.result +1 −1 Original line number Diff line number Diff line Loading @@ -716,7 +716,7 @@ qq *a *a*a * explain select * from t1 where v='a'; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref v,v_2 v_2 13 const 7 Using where 1 SIMPLE t1 ref v,v_2 # 13 const 7 Using where select v,count(*) from t1 group by v limit 10; v count(*) a 1 Loading
sql/table.cc +6 −5 Original line number Diff line number Diff line Loading @@ -262,11 +262,6 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, } key_part->store_length=key_part->length; } set_if_bigger(outparam->max_key_length,keyinfo->key_length+ keyinfo->key_parts); outparam->total_key_length+= keyinfo->key_length; if (keyinfo->flags & HA_NOSAME) set_if_bigger(outparam->max_unique_length,keyinfo->key_length); } keynames=(char*) key_part; strpos+= (strmov(keynames, (char *) strpos) - keynames)+1; Loading Loading @@ -718,6 +713,12 @@ int openfrm(THD *thd, const char *name, const char *alias, uint db_stat, } } keyinfo->usable_key_parts=usable_parts; // Filesort set_if_bigger(outparam->max_key_length,keyinfo->key_length+ keyinfo->key_parts); outparam->total_key_length+= keyinfo->key_length; if (keyinfo->flags & HA_NOSAME) set_if_bigger(outparam->max_unique_length,keyinfo->key_length); } if (primary_key < MAX_KEY && (outparam->keys_in_use.is_set(primary_key))) Loading