Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
24a05f5b
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,发现更多精彩内容 >>
提交
24a05f5b
编写于
8月 31, 1998
作者:
B
Bruce Momjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix for regproc
上级
50676b40
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
30 addition
and
19 deletion
+30
-19
src/backend/optimizer/util/clauses.c
src/backend/optimizer/util/clauses.c
+3
-2
src/backend/utils/adt/regproc.c
src/backend/utils/adt/regproc.c
+25
-15
src/include/utils/builtins.h
src/include/utils/builtins.h
+2
-2
未找到文件。
src/backend/optimizer/util/clauses.c
浏览文件 @
24a05f5b
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.2
1 1998/08/31 07:19:56
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/clauses.c,v 1.2
2 1998/08/31 07:55:47
momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
...
...
@@ -199,7 +199,8 @@ bool
or_clause
(
Node
*
clause
)
{
return
clause
!=
NULL
&&
nodeTag
(
clause
)
==
T_Expr
&&
((
Expr
*
)
clause
)
->
opType
==
OR_EXPR
);
nodeTag
(
clause
)
==
T_Expr
&&
((
Expr
*
)
clause
)
->
opType
==
OR_EXPR
;
}
/*
...
...
src/backend/utils/adt/regproc.c
浏览文件 @
24a05f5b
...
...
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.2
3 1998/08/31 07:35:44
momjian Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.2
4 1998/08/31 07:55:48
momjian Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -35,12 +35,12 @@
* proid of NULL signifies unknown
*/
int32
regprocin
(
char
*
pro_
oid_name
)
regprocin
(
char
*
pro_
name_and_oid
)
{
HeapTuple
proctup
;
HeapTuple
proctup
=
NULL
;
RegProcedure
result
=
(
Oid
)
0
;
if
(
pro_
oid_name
==
NULL
)
if
(
pro_
name_and_oid
==
NULL
)
return
(
0
);
...
...
@@ -48,15 +48,25 @@ regprocin(char *pro_oid_name)
{
/*
* we need to use the oid because there can be multiple entries
* with the same name
, i.e. 1323_int4eq
* with the same name
. We accept 1323_int4eq and 1323.
*/
proctup
=
SearchSysCacheTuple
(
PROOID
,
/* atoi stops at the _ */
ObjectIdGetDatum
(
atoi
(
pro_oid_name
)),
0
,
0
,
0
);
if
(
strrchr
(
pro_name_and_oid
,
'_'
)
!=
NULL
)
{
proctup
=
SearchSysCacheTuple
(
PROOID
,
ObjectIdGetDatum
(
atoi
(
strrchr
(
pro_name_and_oid
,
'_'
)
+
1
)),
0
,
0
,
0
);
}
else
if
(
atoi
(
pro_name_and_oid
)
!=
InvalidOid
)
{
proctup
=
SearchSysCacheTuple
(
PROOID
,
/* atoi stops at the _ */
ObjectIdGetDatum
(
atoi
(
pro_name_and_oid
)),
0
,
0
,
0
);
}
if
(
HeapTupleIsValid
(
proctup
))
result
=
(
RegProcedure
)
proctup
->
t_oid
;
else
result
=
(
RegProcedure
)
0
;
else
elog
(
ERROR
,
"regprocin: no such procedure %s"
,
pro_name_and_oid
)
;
}
else
{
...
...
@@ -76,7 +86,7 @@ regprocin(char *pro_oid_name)
(
bits16
)
0
,
(
AttrNumber
)
1
,
(
RegProcedure
)
F_NAMEEQ
,
(
Datum
)
pro_
oid_name
);
(
Datum
)
pro_
name_and_oid
);
procscan
=
heap_beginscan
(
proc
,
0
,
SnapshotNow
,
1
,
&
key
);
if
(
!
HeapScanIsValid
(
procscan
))
...
...
@@ -94,7 +104,7 @@ regprocin(char *pro_oid_name)
RelationGetTupleDescriptor
(
proc
),
&
isnull
);
if
(
isnull
)
elog
(
FATAL
,
"regprocin: null procedure %s"
,
pro_
oid_name
);
elog
(
FATAL
,
"regprocin: null procedure %s"
,
pro_
name_and_oid
);
}
else
result
=
(
RegProcedure
)
0
;
...
...
@@ -104,13 +114,13 @@ regprocin(char *pro_oid_name)
}
#ifdef EBUG
elog
(
DEBUG
,
"regprocin: no such procedure %s"
,
pro_
oid_name
);
elog
(
DEBUG
,
"regprocin: no such procedure %s"
,
pro_
name_and_oid
);
#endif
/* defined(EBUG) */
return
(
int32
)
result
;
}
/*
* regprocout - converts proid to "pro_
oid_name
"
* regprocout - converts proid to "pro_
name_and_oid
"
*/
char
*
regprocout
(
RegProcedure
proid
)
...
...
@@ -131,7 +141,7 @@ regprocout(RegProcedure proid)
char
*
s
;
s
=
((
Form_pg_proc
)
GETSTRUCT
(
proctup
))
->
proname
.
data
;
snprintf
(
result
,
NAMEDATALEN
,
"%
d_%s"
,
proid
,
s
);
snprintf
(
result
,
NAMEDATALEN
,
"%
s_%d"
,
s
,
proid
);
}
else
{
...
...
src/include/utils/builtins.h
浏览文件 @
24a05f5b
...
...
@@ -6,7 +6,7 @@
*
* Copyright (c) 1994, Regents of the University of California
*
* $Id: builtins.h,v 1.4
8 1998/08/29 04:09:29
momjian Exp $
* $Id: builtins.h,v 1.4
9 1998/08/31 07:55:50
momjian Exp $
*
* NOTES
* This should normally only be included by fmgr.h.
...
...
@@ -356,7 +356,7 @@ extern bool texticregexne(struct varlena * s, struct varlena * p);
/* regproc.c */
extern
int32
regprocin
(
char
*
pro
name
);
extern
int32
regprocin
(
char
*
pro
_name_and_oid
);
extern
char
*
regprocout
(
RegProcedure
proid
);
extern
text
*
oid8types
(
Oid
(
*
oidArray
)[]);
extern
Oid
regproctooid
(
RegProcedure
rp
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录