Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
e2480165
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,发现更多精彩内容 >>
提交
e2480165
编写于
1月 11, 2005
作者:
T
Tom Lane
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
plperl was not being quite paranoid enough about detecting 'undef' values
returned by Perl. Per report from Nicolas Addington.
上级
6ff40870
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
9 deletion
+9
-9
src/pl/plperl/plperl.c
src/pl/plperl/plperl.c
+9
-9
未找到文件。
src/pl/plperl/plperl.c
浏览文件 @
e2480165
...
...
@@ -33,7 +33,7 @@
* ENHANCEMENTS, OR MODIFICATIONS.
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.6
5 2004/11/29 20:11:0
5 tgl Exp $
* $PostgreSQL: pgsql/src/pl/plperl/plperl.c,v 1.6
6 2005/01/11 06:08:4
5 tgl Exp $
*
**********************************************************************/
...
...
@@ -295,7 +295,7 @@ plperl_build_tuple_result(HV *perlhash, AttInMetadata *attinmeta)
(
errcode
(
ERRCODE_UNDEFINED_COLUMN
),
errmsg
(
"Perl hash contains nonexistent column
\"
%s
\"
"
,
key
)));
if
(
SvTYPE
(
val
)
!=
SVt_NULL
)
if
(
Sv
OK
(
val
)
&&
Sv
TYPE
(
val
)
!=
SVt_NULL
)
values
[
attn
-
1
]
=
SvPV
(
val
,
PL_na
);
}
hv_iterinit
(
perlhash
);
...
...
@@ -446,7 +446,7 @@ plperl_modify_tuple(HV *hvTD, TriggerData *tdata, HeapTuple otup)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_UNDEFINED_COLUMN
),
errmsg
(
"$_TD->{new} does not exist"
)));
if
(
SvTYPE
(
*
svp
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
*
svp
))
!=
SVt_PVHV
)
if
(
!
SvOK
(
*
svp
)
||
SvTYPE
(
*
svp
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
*
svp
))
!=
SVt_PVHV
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_DATATYPE_MISMATCH
),
errmsg
(
"$_TD->{new} is not a hash reference"
)));
...
...
@@ -467,7 +467,7 @@ plperl_modify_tuple(HV *hvTD, TriggerData *tdata, HeapTuple otup)
(
errcode
(
ERRCODE_UNDEFINED_COLUMN
),
errmsg
(
"Perl hash contains nonexistent column
\"
%s
\"
"
,
key
)));
if
(
SvTYPE
(
val
)
!=
SVt_NULL
)
if
(
Sv
OK
(
val
)
&&
Sv
TYPE
(
val
)
!=
SVt_NULL
)
{
Oid
typinput
;
Oid
typioparam
;
...
...
@@ -873,7 +873,7 @@ plperl_func_handler(PG_FUNCTION_ARGS)
TupleDesc
tupdesc
;
AttInMetadata
*
attinmeta
;
if
(
SvTYPE
(
perlret
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
perlret
))
!=
SVt_PVAV
)
if
(
!
SvOK
(
perlret
)
||
SvTYPE
(
perlret
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
perlret
))
!=
SVt_PVAV
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_DATATYPE_MISMATCH
),
errmsg
(
"set-returning Perl function must return reference to array"
)));
...
...
@@ -911,7 +911,7 @@ plperl_func_handler(PG_FUNCTION_ARGS)
svp
=
av_fetch
(
ret_av
,
funcctx
->
call_cntr
,
FALSE
);
Assert
(
svp
!=
NULL
);
if
(
SvTYPE
(
*
svp
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
*
svp
))
!=
SVt_PVHV
)
if
(
!
SvOK
(
*
svp
)
||
SvTYPE
(
*
svp
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
*
svp
))
!=
SVt_PVHV
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_DATATYPE_MISMATCH
),
errmsg
(
"elements of Perl result array must be reference to hash"
)));
...
...
@@ -933,7 +933,7 @@ plperl_func_handler(PG_FUNCTION_ARGS)
AV
*
ret_av
;
FuncCallContext
*
funcctx
;
if
(
SvTYPE
(
perlret
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
perlret
))
!=
SVt_PVAV
)
if
(
!
SvOK
(
perlret
)
||
SvTYPE
(
perlret
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
perlret
))
!=
SVt_PVAV
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_DATATYPE_MISMATCH
),
errmsg
(
"set-returning Perl function must return reference to array"
)));
...
...
@@ -957,7 +957,7 @@ plperl_func_handler(PG_FUNCTION_ARGS)
svp
=
av_fetch
(
ret_av
,
funcctx
->
call_cntr
,
FALSE
);
Assert
(
svp
!=
NULL
);
if
(
SvTYPE
(
*
svp
)
!=
SVt_NULL
)
if
(
Sv
OK
(
*
svp
)
&&
Sv
TYPE
(
*
svp
)
!=
SVt_NULL
)
{
char
*
val
=
SvPV
(
*
svp
,
PL_na
);
...
...
@@ -988,7 +988,7 @@ plperl_func_handler(PG_FUNCTION_ARGS)
AttInMetadata
*
attinmeta
;
HeapTuple
tup
;
if
(
SvTYPE
(
perlret
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
perlret
))
!=
SVt_PVHV
)
if
(
!
SvOK
(
perlret
)
||
SvTYPE
(
perlret
)
!=
SVt_RV
||
SvTYPE
(
SvRV
(
perlret
))
!=
SVt_PVHV
)
ereport
(
ERROR
,
(
errcode
(
ERRCODE_DATATYPE_MISMATCH
),
errmsg
(
"composite-returning Perl function must return reference to hash"
)));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录