Loading mysql-test/r/type_float.result +1 −1 Original line number Diff line number Diff line Loading @@ -247,6 +247,6 @@ d show create table t3; Table Create Table t3 CREATE TABLE `t3` ( `d` double(61,9) default NULL `d` double(22,9) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1, t2, t3; sql/item.cc +2 −2 Original line number Diff line number Diff line Loading @@ -3230,12 +3230,12 @@ bool Item_type_holder::join_types(THD *thd, Item *item) } case REAL_RESULT: { decimals= max(decimals, item->decimals); if (decimals != NOT_FIXED_DEC) { int delta1= max_length_orig - decimals_orig; int delta2= item->max_length - item->decimals; max_length= max(delta1, delta2) + decimals; max_length= min(max(delta1, delta2) + decimals, (fld_type == MYSQL_TYPE_FLOAT) ? FLT_DIG+6 : DBL_DIG+7); } else max_length= (fld_type == MYSQL_TYPE_FLOAT) ? FLT_DIG+6 : DBL_DIG+7; Loading Loading
mysql-test/r/type_float.result +1 −1 Original line number Diff line number Diff line Loading @@ -247,6 +247,6 @@ d show create table t3; Table Create Table t3 CREATE TABLE `t3` ( `d` double(61,9) default NULL `d` double(22,9) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1, t2, t3;
sql/item.cc +2 −2 Original line number Diff line number Diff line Loading @@ -3230,12 +3230,12 @@ bool Item_type_holder::join_types(THD *thd, Item *item) } case REAL_RESULT: { decimals= max(decimals, item->decimals); if (decimals != NOT_FIXED_DEC) { int delta1= max_length_orig - decimals_orig; int delta2= item->max_length - item->decimals; max_length= max(delta1, delta2) + decimals; max_length= min(max(delta1, delta2) + decimals, (fld_type == MYSQL_TYPE_FLOAT) ? FLT_DIG+6 : DBL_DIG+7); } else max_length= (fld_type == MYSQL_TYPE_FLOAT) ? FLT_DIG+6 : DBL_DIG+7; Loading