Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
1dc3a62e
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1dc3a62e
编写于
4月 21, 2003
作者:
T
Tom Lane
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
stddev() and variance() should return NULL when there is just one input
value, per recent discussion on pgsql-general.
上级
f9ba0a7f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
18 addition
and
34 deletion
+18
-34
src/backend/utils/adt/float.c
src/backend/utils/adt/float.c
+5
-11
src/backend/utils/adt/numeric.c
src/backend/utils/adt/numeric.c
+13
-23
未找到文件。
src/backend/utils/adt/float.c
浏览文件 @
1dc3a62e
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.8
4 2003/03/11 21:01:33
tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.8
5 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
;
...
...
src/backend/utils/adt/numeric.c
浏览文件 @
1dc3a62e
...
...
@@ -14,7 +14,7 @@
* Copyright (c) 1998-2003, PostgreSQL Global Development Group
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.
59 2003/03/21 01:58:0
4 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/numeric.c,v 1.
60 2003/04/21 00:22:2
4 tgl Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -1964,24 +1964,19 @@ numeric_variance(PG_FUNCTION_ARGS)
if
(
NUMERIC_IS_NAN
(
N
)
||
NUMERIC_IS_NAN
(
sumX
)
||
NUMERIC_IS_NAN
(
sumX2
))
PG_RETURN_NUMERIC
(
make_result
(
&
const_nan
));
/* We define VARIANCE of no values to be NULL, of 1 value to be 0 */
/* N is zero iff no digits (cf. numeric_uminus) */
if
(
N
->
varlen
==
NUMERIC_HDRSZ
)
PG_RETURN_NULL
();
/* Sample variance is undefined when N is 0 or 1, so return NULL */
init_var
(
&
vN
);
set_var_from_num
(
N
,
&
vN
);
init_var
(
&
vNminus1
);
sub_var
(
&
vN
,
&
const_one
,
&
vNminus1
);
if
(
cmp_var
(
&
vNminus1
,
&
const_zero
)
<=
0
)
if
(
cmp_var
(
&
vN
,
&
const_one
)
<=
0
)
{
free_var
(
&
vN
);
free_var
(
&
vNminus1
);
PG_RETURN_NUMERIC
(
make_result
(
&
const_zero
));
PG_RETURN_NULL
();
}
init_var
(
&
vNminus1
);
sub_var
(
&
vN
,
&
const_one
,
&
vNminus1
);
init_var
(
&
vsumX
);
set_var_from_num
(
sumX
,
&
vsumX
);
init_var
(
&
vsumX2
);
...
...
@@ -2045,24 +2040,19 @@ numeric_stddev(PG_FUNCTION_ARGS)
if
(
NUMERIC_IS_NAN
(
N
)
||
NUMERIC_IS_NAN
(
sumX
)
||
NUMERIC_IS_NAN
(
sumX2
))
PG_RETURN_NUMERIC
(
make_result
(
&
const_nan
));
/* We define STDDEV of no values to be NULL, of 1 value to be 0 */
/* N is zero iff no digits (cf. numeric_uminus) */
if
(
N
->
varlen
==
NUMERIC_HDRSZ
)
PG_RETURN_NULL
();
/* Sample stddev is undefined when N is 0 or 1, so return NULL */
init_var
(
&
vN
);
set_var_from_num
(
N
,
&
vN
);
init_var
(
&
vNminus1
);
sub_var
(
&
vN
,
&
const_one
,
&
vNminus1
);
if
(
cmp_var
(
&
vNminus1
,
&
const_zero
)
<=
0
)
if
(
cmp_var
(
&
vN
,
&
const_one
)
<=
0
)
{
free_var
(
&
vN
);
free_var
(
&
vNminus1
);
PG_RETURN_NUMERIC
(
make_result
(
&
const_zero
));
PG_RETURN_NULL
();
}
init_var
(
&
vNminus1
);
sub_var
(
&
vN
,
&
const_one
,
&
vNminus1
);
init_var
(
&
vsumX
);
set_var_from_num
(
sumX
,
&
vsumX
);
init_var
(
&
vsumX2
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录