Loading mysql-test/r/distinct.result +21 −0 Original line number Diff line number Diff line Loading @@ -512,3 +512,24 @@ id IFNULL(dsc, '-') 2 line number two 3 line number three drop table t1; CREATE TABLE t1 ( ID int(11) NOT NULL auto_increment, x varchar(20) default NULL, y decimal(10,0) default NULL, PRIMARY KEY (ID), KEY (y) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO t1 VALUES (1,'ba','-1'), (2,'ba','1150'), (306,'ba','-1'), (307,'ba','1150'), (611,'ba','-1'), (612,'ba','1150'); select count(distinct x,y) from t1; count(distinct x,y) 2 select count(distinct concat(x,y)) from t1; count(distinct concat(x,y)) 2 drop table t1; mysql-test/t/distinct.test +24 −0 Original line number Diff line number Diff line Loading @@ -358,3 +358,27 @@ select distinct id, IFNULL(dsc, '-') from t1; drop table t1; # End of 4.1 tests # # Bug #15745 ( COUNT(DISTINCT CONCAT(x,y)) returns wrong result) # CREATE TABLE t1 ( ID int(11) NOT NULL auto_increment, x varchar(20) default NULL, y decimal(10,0) default NULL, PRIMARY KEY (ID), KEY (y) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO t1 VALUES (1,'ba','-1'), (2,'ba','1150'), (306,'ba','-1'), (307,'ba','1150'), (611,'ba','-1'), (612,'ba','1150'); select count(distinct x,y) from t1; select count(distinct concat(x,y)) from t1; drop table t1; sql/item_sum.cc +3 −3 Original line number Diff line number Diff line Loading @@ -2541,9 +2541,9 @@ bool Item_sum_count_distinct::setup(THD *thd) Field *f= *field; enum enum_field_types type= f->type(); tree_key_length+= f->pack_length(); if (!f->binary() && (type == MYSQL_TYPE_STRING || type == MYSQL_TYPE_VAR_STRING || type == MYSQL_TYPE_VARCHAR)) if ((type == MYSQL_TYPE_VARCHAR) || !f->binary() && (type == MYSQL_TYPE_STRING || type == MYSQL_TYPE_VAR_STRING)) { all_binary= FALSE; break; Loading Loading
mysql-test/r/distinct.result +21 −0 Original line number Diff line number Diff line Loading @@ -512,3 +512,24 @@ id IFNULL(dsc, '-') 2 line number two 3 line number three drop table t1; CREATE TABLE t1 ( ID int(11) NOT NULL auto_increment, x varchar(20) default NULL, y decimal(10,0) default NULL, PRIMARY KEY (ID), KEY (y) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO t1 VALUES (1,'ba','-1'), (2,'ba','1150'), (306,'ba','-1'), (307,'ba','1150'), (611,'ba','-1'), (612,'ba','1150'); select count(distinct x,y) from t1; count(distinct x,y) 2 select count(distinct concat(x,y)) from t1; count(distinct concat(x,y)) 2 drop table t1;
mysql-test/t/distinct.test +24 −0 Original line number Diff line number Diff line Loading @@ -358,3 +358,27 @@ select distinct id, IFNULL(dsc, '-') from t1; drop table t1; # End of 4.1 tests # # Bug #15745 ( COUNT(DISTINCT CONCAT(x,y)) returns wrong result) # CREATE TABLE t1 ( ID int(11) NOT NULL auto_increment, x varchar(20) default NULL, y decimal(10,0) default NULL, PRIMARY KEY (ID), KEY (y) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; INSERT INTO t1 VALUES (1,'ba','-1'), (2,'ba','1150'), (306,'ba','-1'), (307,'ba','1150'), (611,'ba','-1'), (612,'ba','1150'); select count(distinct x,y) from t1; select count(distinct concat(x,y)) from t1; drop table t1;
sql/item_sum.cc +3 −3 Original line number Diff line number Diff line Loading @@ -2541,9 +2541,9 @@ bool Item_sum_count_distinct::setup(THD *thd) Field *f= *field; enum enum_field_types type= f->type(); tree_key_length+= f->pack_length(); if (!f->binary() && (type == MYSQL_TYPE_STRING || type == MYSQL_TYPE_VAR_STRING || type == MYSQL_TYPE_VARCHAR)) if ((type == MYSQL_TYPE_VARCHAR) || !f->binary() && (type == MYSQL_TYPE_STRING || type == MYSQL_TYPE_VAR_STRING)) { all_binary= FALSE; break; Loading