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:
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user