Below is the list of changes that have just been committed into a local
5.0 repository of hf. When hf does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.1961 05/11/01 16:14:26 hf@deer.(none) +3 -0
Additional fix for bug #14445 (analyse.test fails)
sql/sql_analyse.cc
1.65 05/11/01 16:14:13 hf@deer.(none) +14 -3
rounding added
mysql-test/t/disabled.def
1.10 05/11/01 16:14:13 hf@deer.(none) +1 -0
user_var disabled
mysql-test/r/analyse.result
1.25 05/11/01 16:14:13 hf@deer.(none) +3 -3
test result fixed
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: hf
# Host: deer.(none)
# Root: /home/hf/work/mysql-5.0.clean
--- 1.64/sql/sql_analyse.cc Tue Nov 1 13:08:06 2005
+++ 1.65/sql/sql_analyse.cc Tue Nov 1 16:14:13 2005
@@ -466,7 +466,9 @@
void field_decimal::add()
{
+ /*TODO - remove rounding stuff after decimal_div returns proper frac */
my_decimal dec_buf, *dec= item->val_decimal(&dec_buf);
+ my_decimal rounded;
uint length;
TREE_ELEMENT *element;
@@ -476,6 +478,9 @@
return;
}
+ my_decimal_round(E_DEC_FATAL_ERROR, dec, item->decimals, FALSE,&rounded);
+ dec= &rounded;
+
length= my_decimal_string_length(dec);
if (decimal_is_zero(dec))
@@ -1021,10 +1026,16 @@
s->set((double) 0.0, 1,my_thd_charset);
return s;
}
- my_decimal num, avg_val;
+ my_decimal num, avg_val, rounded_avg;
+ int prec_increment= current_thd->variables.div_precincrement;
+
int2my_decimal(E_DEC_FATAL_ERROR, rows - nulls, FALSE, &num);
- my_decimal_div(E_DEC_FATAL_ERROR, &avg_val, sum+cur_sum, &num, 0);
- my_decimal2string(E_DEC_FATAL_ERROR, &avg_val, 0, 0, '0', s);
+ my_decimal_div(E_DEC_FATAL_ERROR, &avg_val, sum+cur_sum, &num, prec_increment);
+ /* TODO remove this after decimal_div returns proper frac */
+ my_decimal_round(E_DEC_FATAL_ERROR, &avg_val,
+ min(sum[cur_sum].frac + prec_increment, DECIMAL_MAX_SCALE),
+ FALSE,&rounded_avg);
+ my_decimal2string(E_DEC_FATAL_ERROR, &rounded_avg, 0, 0, '0', s);
return s;
}
--- 1.9/mysql-test/t/disabled.def Fri Oct 28 23:31:40 2005
+++ 1.10/mysql-test/t/disabled.def Tue Nov 1 16:14:13 2005
@@ -16,3 +16,4 @@
rpl_deadlock : Unstable test case, bug#12429
kill : Unstable test case, bug#9712
archive_gis : The test fails on 32bit Linux
+user_var : Ramil should fix this soon
--- 1.24/mysql-test/r/analyse.result Tue Nov 1 13:08:06 2005
+++ 1.25/mysql-test/r/analyse.result Tue Nov 1 16:14:13 2005
@@ -107,7 +107,7 @@
insert into t1 values(2.2);
select * from t1 procedure analyse();
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
-test.t1.df 1.1 2.2 8 8 0 0 1.650000000 0.55000 ENUM('1.1','2.2') NOT NULL
+test.t1.df 1.1 2.2 13 13 0 0 1.65000 0.55000 ENUM('1.1','2.2') NOT NULL
drop table t1;
create table t1 (d double);
insert into t1 values (100000);
@@ -138,6 +138,6 @@
select product, sum(profit),avg(profit) from t1 group by product with rollup procedure analyse();
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
test.t1.product Computer TV 2 8 0 0 4.2500 NULL ENUM('Computer','Phone','TV') NOT NULL
-sum(profit) 10 6900 11 11 0 0 1946 2867.6719 ENUM('10','275','600','6900') NOT NULL
-avg(profit) 10.000000000 1380.000000000 21 21 0 0 394.687500000 570.20033144 ENUM('10.0000','68.7500','120.0000','1380.0000') NOT NULL
+sum(profit) 10 6900 11 11 0 0 1946.2500 2867.6719 ENUM('10','275','600','6900') NOT NULL
+avg(profit) 10.0000 1380.0000 16 16 0 0 394.68750000 570.20033144 ENUM('10.0000','68.7500','120.0000','1380.0000') NOT NULL
drop table t1,t2;
| Thread |
|---|
| • bk commit into 5.0 tree (hf:1.1961) BUG#14445 | holyfoot | 1 Nov |