Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
afeb8c48
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,体验更适合开发者的 AI 搜索 >>
提交
afeb8c48
编写于
1月 04, 2001
作者:
T
Tom Lane
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Clean up some unnecessary fragility in EXECUTE command.
上级
f9d6ffc5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
11 deletion
+16
-11
src/pl/plpgsql/src/pl_exec.c
src/pl/plpgsql/src/pl_exec.c
+16
-11
未找到文件。
src/pl/plpgsql/src/pl_exec.c
浏览文件 @
afeb8c48
...
...
@@ -3,7 +3,7 @@
* procedural language
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.3
3 2000/12/01 20:43:59
tgl Exp $
* $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.3
4 2001/01/04 02:38:02
tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
...
...
@@ -1951,6 +1951,7 @@ exec_stmt_dynexecute(PLpgSQL_execstate * estate,
HeapTuple
typetup
;
Form_pg_type
typeStruct
;
FmgrInfo
finfo_output
;
int
exec_res
;
/* ----------
* First we evaluate the string expression after the
...
...
@@ -1960,7 +1961,7 @@ exec_stmt_dynexecute(PLpgSQL_execstate * estate,
*/
query
=
exec_eval_expr
(
estate
,
stmt
->
query
,
&
isnull
,
&
restype
);
if
(
isnull
)
elog
(
ERROR
,
"cannot EXECUTE NULL
-
query"
);
elog
(
ERROR
,
"cannot EXECUTE NULL
query"
);
/* ----------
* Get the C-String representation.
...
...
@@ -1986,26 +1987,30 @@ exec_stmt_dynexecute(PLpgSQL_execstate * estate,
/* ----------
* Call SPI_exec() without preparing a saved plan.
* The returncode can be any OK except for OK_SELECT.
* The returncode can be any standard OK. Note that
* while a SELECT is allowed, its results will be discarded.
* ----------
*/
switch
(
SPI_exec
(
querystr
,
0
))
exec_res
=
SPI_exec
(
querystr
,
0
);
switch
(
exec_res
)
{
case
SPI_OK_
UTILITY
:
case
SPI_OK_
SELECT
:
case
SPI_OK_SELINTO
:
case
SPI_OK_INSERT
:
case
SPI_OK_UPDATE
:
case
SPI_OK_DELETE
:
case
SPI_OK_UTILITY
:
break
;
case
SPI_OK_SELECT
:
elog
(
ERROR
,
"unexpected SELECT operation in EXECUTE of query '%s'"
,
querystr
);
case
0
:
/* Also allow a zero return, which implies the querystring
* contained no commands.
*/
break
;
default:
elog
(
ERROR
,
"unexpected error
in EXECUTE for
query '%s'"
,
querystr
);
elog
(
ERROR
,
"unexpected error
%d in EXECUTE of
query '%s'"
,
exec_res
,
querystr
);
break
;
}
...
...
@@ -2095,7 +2100,7 @@ exec_stmt_dynfors(PLpgSQL_execstate * estate, PLpgSQL_stmt_dynfors * stmt)
* ----------
*/
if
(
SPI_exec
(
querystr
,
0
)
!=
SPI_OK_SELECT
)
elog
(
ERROR
,
"FOR ... EXECUTE query '%s' was no SELECT"
,
querystr
);
elog
(
ERROR
,
"FOR ... EXECUTE query '%s' was no
t
SELECT"
,
querystr
);
pfree
(
querystr
);
n
=
SPI_processed
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录