mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
bug #15745 (COUNT(DISTINCT CONCAT(x,y)) returns wrong result
mysql-test/r/distinct.result: result added mysql-test/t/distinct.test: testcase sql/item_sum.cc: MYSQL_TYPE_VARCHAR can't be 'binary' compared even when it is binary
This commit is contained in:
@ -512,3 +512,24 @@ id IFNULL(dsc, '-')
|
|||||||
2 line number two
|
2 line number two
|
||||||
3 line number three
|
3 line number three
|
||||||
drop table t1;
|
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;
|
||||||
|
@ -358,3 +358,27 @@ select distinct id, IFNULL(dsc, '-') from t1;
|
|||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
# End of 4.1 tests
|
# 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;
|
||||||
|
@ -2541,9 +2541,9 @@ bool Item_sum_count_distinct::setup(THD *thd)
|
|||||||
Field *f= *field;
|
Field *f= *field;
|
||||||
enum enum_field_types type= f->type();
|
enum enum_field_types type= f->type();
|
||||||
tree_key_length+= f->pack_length();
|
tree_key_length+= f->pack_length();
|
||||||
if (!f->binary() && (type == MYSQL_TYPE_STRING ||
|
if ((type == MYSQL_TYPE_VARCHAR) ||
|
||||||
type == MYSQL_TYPE_VAR_STRING ||
|
!f->binary() && (type == MYSQL_TYPE_STRING ||
|
||||||
type == MYSQL_TYPE_VARCHAR))
|
type == MYSQL_TYPE_VAR_STRING))
|
||||||
{
|
{
|
||||||
all_binary= FALSE;
|
all_binary= FALSE;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user