diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2003-04-21 00:22:24 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2003-04-21 00:22:24 +0000 |
commit | 1dc3a62ec7c9bd3f602689b289a1126fca12fead (patch) | |
tree | e69ab5da51f8abf37e0db14ea74c045d5cb63fb2 /src/backend/utils/adt/float.c | |
parent | f9ba0a7fe56398e89fe349476d9e437c3197ea28 (diff) | |
download | postgresql-1dc3a62ec7c9bd3f602689b289a1126fca12fead.tar.gz postgresql-1dc3a62ec7c9bd3f602689b289a1126fca12fead.zip |
stddev() and variance() should return NULL when there is just one input
value, per recent discussion on pgsql-general.
Diffstat (limited to 'src/backend/utils/adt/float.c')
-rw-r--r-- | src/backend/utils/adt/float.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c index 4220b4775a9..95206174eff 100644 --- a/src/backend/utils/adt/float.c +++ b/src/backend/utils/adt/float.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.84 2003/03/11 21:01:33 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.85 2003/04/21 00:22:24 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1649,12 +1649,9 @@ float8_variance(PG_FUNCTION_ARGS) sumX = transvalues[1]; sumX2 = transvalues[2]; - /* We define VARIANCE of no values to be NULL, of 1 value to be 0 */ - if (N == 0.0) - PG_RETURN_NULL(); - + /* Sample variance is undefined when N is 0 or 1, so return NULL */ if (N <= 1.0) - PG_RETURN_FLOAT8(0.0); + PG_RETURN_NULL(); numerator = N * sumX2 - sumX * sumX; @@ -1680,12 +1677,9 @@ float8_stddev(PG_FUNCTION_ARGS) sumX = transvalues[1]; sumX2 = transvalues[2]; - /* We define STDDEV of no values to be NULL, of 1 value to be 0 */ - if (N == 0.0) - PG_RETURN_NULL(); - + /* Sample stddev is undefined when N is 0 or 1, so return NULL */ if (N <= 1.0) - PG_RETURN_FLOAT8(0.0); + PG_RETURN_NULL(); numerator = N * sumX2 - sumX * sumX; |