Commit a56921bb authored by unknown's avatar unknown
Browse files

fix for bug #4082: Integer lengths cause truncation with DISTINCT CONCAT and InnoDB

parent a67043db
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -413,7 +413,7 @@ explain t2;
Field	Type	Null	Key	Default	Extra
a	int(11)	YES		NULL	
b	bigint(11)			0	
c	bigint(10)			0	
c	bigint(11)			0	
d	date	YES		NULL	
e	char(1)				
f	datetime	YES		NULL	
@@ -432,11 +432,11 @@ Table Create Table
t2	CREATE TABLE `t2` (
  `ifnull(a,a)` tinyint(4) default NULL,
  `ifnull(b,b)` smallint(6) default NULL,
  `ifnull(c,c)` mediumint(9) default NULL,
  `ifnull(c,c)` mediumint(8) default NULL,
  `ifnull(d,d)` int(11) default NULL,
  `ifnull(e,e)` bigint(20) default NULL,
  `ifnull(f,f)` float(3,2) default NULL,
  `ifnull(g,g)` double(4,3) default NULL,
  `ifnull(f,f)` float(24,2) default NULL,
  `ifnull(g,g)` double(53,3) default NULL,
  `ifnull(h,h)` decimal(5,4) default NULL,
  `ifnull(i,i)` year(4) default NULL,
  `ifnull(j,j)` date default NULL,
+6 −0
Original line number Diff line number Diff line
@@ -1637,3 +1637,9 @@ ERROR 42S21: Duplicate column name 'c1'
alter table t1 add key (c1,c1,c2);
ERROR 42S21: Duplicate column name 'c1'
drop table t1;
create table t1(a int(1) , b int(1)) engine=innodb;
insert into t1 values ('1111', '3333');
select distinct concat(a, b) from t1;
concat(a, b)
11113333
drop table t1;
+1 −1
Original line number Diff line number Diff line
@@ -92,7 +92,7 @@ show create table t2;
Table	Create Table
t2	CREATE TABLE `t2` (
  `col1` double default NULL,
  `col2` double(22,5) default NULL,
  `col2` double(53,5) default NULL,
  `col3` double default NULL,
  `col4` double default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
+9 −0
Original line number Diff line number Diff line
@@ -1168,3 +1168,12 @@ alter table t1 add key (c1,c2,c1);
--error 1060
alter table t1 add key (c1,c1,c2);
drop table t1;

#
# Bug #4082: integer truncation
#

create table t1(a int(1) , b int(1)) engine=innodb;
insert into t1 values ('1111', '3333');
select distinct concat(a, b) from t1;
drop table t1;
+1 −1
Original line number Diff line number Diff line
@@ -554,7 +554,7 @@ void Item_field::set_field(Field *field_par)
{
  field=result_field=field_par;			// for easy coding with fields
  maybe_null=field->maybe_null();
  max_length=field_par->field_length;
  max_length=field_par->max_length();
  decimals= field->decimals();
  table_name=field_par->table_name;
  field_name=field_par->field_name;