1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

Fix for bug #14445 (analyse.test fails)

This commit is contained in:
hf@deer.(none)
2005-11-01 13:08:14 +04:00
parent 69cd4c1ebf
commit b98c93e0a8
2 changed files with 14 additions and 8 deletions

View File

@ -1036,13 +1036,19 @@ String *field_decimal::std(String *s, ha_rows rows)
s->set((double) 0.0, 1,my_thd_charset);
return s;
}
my_decimal num, std_val, sum2, sum2d;
my_decimal num, tmp, sum2, sum2d;
double std_sqr;
int prec_increment= current_thd->variables.div_precincrement;
int2my_decimal(E_DEC_FATAL_ERROR, rows - nulls, FALSE, &num);
my_decimal_mul(E_DEC_FATAL_ERROR, &sum2, sum+cur_sum, sum+cur_sum);
my_decimal_div(E_DEC_FATAL_ERROR, &std_val, &sum2, &num, 0);
my_decimal_sub(E_DEC_FATAL_ERROR, &sum2, sum_sqr+cur_sum, &std_val);
my_decimal_div(E_DEC_FATAL_ERROR, &std_val, &sum2, &num, 0);
my_decimal2string(E_DEC_FATAL_ERROR, &std_val, 0, 0, '0', s);
my_decimal_div(E_DEC_FATAL_ERROR, &tmp, &sum2, &num, prec_increment);
my_decimal_sub(E_DEC_FATAL_ERROR, &sum2, sum_sqr+cur_sum, &tmp);
my_decimal_div(E_DEC_FATAL_ERROR, &tmp, &sum2, &num, prec_increment);
my_decimal2double(E_DEC_FATAL_ERROR, &tmp, &std_sqr);
s->set(((double) std_sqr <= 0.0 ? 0.0 : sqrt(std_sqr)),
min(item->decimals + prec_increment, NOT_FIXED_DEC), my_thd_charset);
return s;
}