MCPcopy Create free account
hub / github.com/MariaDB/server / avg

Method avg

sql/sql_analyse.cc:1038–1056  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1036
1037
1038String *field_decimal::avg(String *s, ha_rows rows)
1039{
1040 if (!(rows - nulls))
1041 {
1042 s->set_real((double) 0.0, 1,my_thd_charset);
1043 return s;
1044 }
1045 my_decimal num, avg_val, rounded_avg;
1046 int prec_increment= current_thd->variables.div_precincrement;
1047
1048 int2my_decimal(E_DEC_FATAL_ERROR, rows - nulls, FALSE, &num);
1049 my_decimal_div(E_DEC_FATAL_ERROR, &avg_val, sum+cur_sum, &num, prec_increment);
1050 /* TODO remove this after decimal_div returns proper frac */
1051 avg_val.round_to(&rounded_avg,
1052 MY_MIN(sum[cur_sum].frac + prec_increment, DECIMAL_MAX_SCALE),
1053 HALF_UP);
1054 rounded_avg.to_string_native(s, 0, 0, '0');
1055 return s;
1056}
1057
1058
1059String *field_decimal::std(String *s, ha_rows rows)

Callers 1

end_of_recordsMethod · 0.45

Calls 5

int2my_decimalFunction · 0.85
my_decimal_divFunction · 0.85
to_string_nativeMethod · 0.80
set_realMethod · 0.45
round_toMethod · 0.45

Tested by

no test coverage detected