Thread: numeric stddev_pop and var_pop are wrong

numeric stddev_pop and var_pop are wrong

From
Tom Lane
Date:
When applied to "numeric" input, stddev_pop produces the same result as
stddev_samp, and var_pop produces the same result as var_samp.  This
is because whoever wrote numeric_stddev_internal() forgot that the
divisor is different for the sample case.  This mistake is in fact
visible in the regression test outputs for the function, so those
outputs weren't checked very carefully :-(

            regards, tom lane

Re: numeric stddev_pop and var_pop are wrong

From
Neil Conway
Date:
On Mon, 2007-09-07 at 10:39 -0400, Tom Lane wrote:
> When applied to "numeric" input, stddev_pop produces the same result as
> stddev_samp, and var_pop produces the same result as var_samp.  This
> is because whoever wrote numeric_stddev_internal() forgot that the
> divisor is different for the sample case.  This mistake is in fact
> visible in the regression test outputs for the function, so those
> outputs weren't checked very carefully :-(

My fault, I'm afraid -- how embarrassing! I certainly tested the
function for numeric inputs while developing it. I can only guess that I
wrote it and tested it, then refactored and broke it, and blindly copied
the resulting regression outputs => expected...

Sorry,

Neil