Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
f4473440
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,发现更多精彩内容 >>
提交
f4473440
编写于
10月 01, 1998
作者:
T
Tom Lane
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Simplify pg_result by using new libpq PQresultErrorMessage;
fix some memory leaks in pg_select.
上级
6428074e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
23 deletion
+20
-23
src/interfaces/libpgtcl/pgtclCmds.c
src/interfaces/libpgtcl/pgtclCmds.c
+20
-23
未找到文件。
src/interfaces/libpgtcl/pgtclCmds.c
浏览文件 @
f4473440
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.3
5 1998/09/21 01:02:01 momjian
Exp $
* $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.3
6 1998/10/01 01:45:38 tgl
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -508,7 +508,6 @@ int
Pg_result
(
ClientData
cData
,
Tcl_Interp
*
interp
,
int
argc
,
char
*
argv
[])
{
PGresult
*
result
;
PGconn
*
conn
;
char
*
opt
;
int
i
;
int
tupno
;
...
...
@@ -538,24 +537,8 @@ Pg_result(ClientData cData, Tcl_Interp * interp, int argc, char *argv[])
}
else
if
(
strcmp
(
opt
,
"-error"
)
==
0
)
{
switch
(
PQresultStatus
(
result
))
{
case
PGRES_EMPTY_QUERY
:
case
PGRES_COMMAND_OK
:
case
PGRES_TUPLES_OK
:
case
PGRES_COPY_OUT
:
case
PGRES_COPY_IN
:
Tcl_ResetResult
(
interp
);
break
;
default:
if
(
PgGetConnByResultId
(
interp
,
argv
[
1
])
!=
TCL_OK
)
return
TCL_ERROR
;
conn
=
PgGetConnectionId
(
interp
,
interp
->
result
,
(
Pg_ConnectionId
**
)
NULL
);
if
(
conn
==
(
PGconn
*
)
NULL
)
return
TCL_ERROR
;
Tcl_SetResult
(
interp
,
PQerrorMessage
(
conn
),
TCL_VOLATILE
);
break
;
}
Tcl_SetResult
(
interp
,
(
char
*
)
PQresultErrorMessage
(
result
),
TCL_STATIC
);
return
TCL_OK
;
}
else
if
(
strcmp
(
opt
,
"-conn"
)
==
0
)
...
...
@@ -1270,7 +1253,7 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
if
((
result
=
PQexec
(
conn
,
argv
[
2
]))
==
0
)
{
/* error occurred
dur
ing the query */
/* error occurred
send
ing the query */
Tcl_SetResult
(
interp
,
PQerrorMessage
(
conn
),
TCL_VOLATILE
);
return
TCL_ERROR
;
}
...
...
@@ -1278,9 +1261,19 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
/* Transfer any notify events from libpq to Tcl event queue. */
PgNotifyTransferEvents
(
connid
);
if
(
PQresultStatus
(
result
)
!=
PGRES_TUPLES_OK
)
{
/* query failed, or it wasn't SELECT */
Tcl_SetResult
(
interp
,
(
char
*
)
PQresultErrorMessage
(
result
),
TCL_VOLATILE
);
PQclear
(
result
);
return
TCL_ERROR
;
}
if
((
info
=
(
struct
info_s
*
)
ckalloc
(
sizeof
(
*
info
)
*
(
ncols
=
PQnfields
(
result
))))
==
NULL
)
{
Tcl_AppendResult
(
interp
,
"Not enough memory"
,
0
);
PQclear
(
result
);
return
TCL_ERROR
;
}
...
...
@@ -1311,7 +1304,10 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
if
((
r
=
Tcl_Eval
(
interp
,
argv
[
4
]))
!=
TCL_OK
&&
r
!=
TCL_CONTINUE
)
{
if
(
r
==
TCL_BREAK
)
{
PQclear
(
result
);
return
TCL_OK
;
}
if
(
r
==
TCL_ERROR
)
{
...
...
@@ -1322,13 +1318,14 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
Tcl_AddErrorInfo
(
interp
,
msg
);
}
PQclear
(
result
);
return
r
;
}
}
ckfree
((
void
*
)
info
);
Tcl_UnsetVar
(
interp
,
argv
[
3
],
0
);
Tcl_AppendResult
(
interp
,
""
,
0
);
PQclear
(
result
);
return
TCL_OK
;
}
...
...
@@ -1352,7 +1349,7 @@ Pg_have_listener (Pg_ConnectionId *connid, const char * relname)
if
(
interp
==
NULL
)
continue
;
/* ignore deleted interpreter */
entry
=
Tcl_FindHashEntry
(
&
notifies
->
notify_hash
,
relname
);
entry
=
Tcl_FindHashEntry
(
&
notifies
->
notify_hash
,
(
char
*
)
relname
);
if
(
entry
==
NULL
)
continue
;
/* no pg_listen in this interpreter */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录