Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
1e4c4f9e
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,发现更多精彩内容 >>
提交
1e4c4f9e
编写于
8月 13, 2002
作者:
P
Peter Eisentraut
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove obsolete uses of lanispl. Only used in pg_dump now, but can be
removed altogether if pg_dump doesn't need it anymore.
上级
ccf15026
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
25 addition
and
51 deletion
+25
-51
doc/src/sgml/catalogs.sgml
doc/src/sgml/catalogs.sgml
+5
-3
src/backend/commands/proclang.c
src/backend/commands/proclang.c
+6
-10
src/backend/commands/trigger.c
src/backend/commands/trigger.c
+1
-18
src/backend/utils/fmgr/fmgr.c
src/backend/utils/fmgr/fmgr.c
+13
-20
未找到文件。
doc/src/sgml/catalogs.sgml
浏览文件 @
1e4c4f9e
<!--
Documentation of the system catalogs, directed toward PostgreSQL developers
$Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.5
2 2002/08/05 02:30:46 tgl
Exp $
$Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.5
3 2002/08/13 17:22:08 petere
Exp $
-->
<chapter id="catalogs">
...
...
@@ -1991,8 +1991,10 @@
<entry></entry>
<entry>
This is false for internal languages (such as SQL) and true for
dynamically loaded language handler modules. It essentially
means that, if it is true, the language may be dropped.
user-defined languages. Currently,
<application>pg_dump</application> still uses this to determine
which languages need to be dumped, but this may be replaced by
a different mechanism sometime.
</entry>
</row>
...
...
src/backend/commands/proclang.c
浏览文件 @
1e4c4f9e
...
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.
39 2002/08/05 03:29:17 tgl
Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.
40 2002/08/13 17:22:08 petere
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -56,7 +56,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
* Check permission
*/
if
(
!
superuser
())
elog
(
ERROR
,
"Only users with
Postgres
superuser privilege are "
elog
(
ERROR
,
"Only users with superuser privilege are "
"permitted to create procedural languages"
);
/*
...
...
@@ -77,10 +77,10 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
MemSet
(
typev
,
0
,
sizeof
(
typev
));
procOid
=
LookupFuncName
(
stmt
->
plhandler
,
0
,
typev
);
if
(
!
OidIsValid
(
procOid
))
elog
(
ERROR
,
"
PL handler
function %s() doesn't exist"
,
elog
(
ERROR
,
"function %s() doesn't exist"
,
NameListToString
(
stmt
->
plhandler
));
if
(
get_func_rettype
(
procOid
)
!=
InvalidOid
)
elog
(
ERROR
,
"
PL handler
function %s() does not return type
\"
opaque
\"
"
,
elog
(
ERROR
,
"function %s() does not return type
\"
opaque
\"
"
,
NameListToString
(
stmt
->
plhandler
));
/* validate the validator function */
...
...
@@ -89,7 +89,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt)
typev
[
0
]
=
OIDOID
;
valProcOid
=
LookupFuncName
(
stmt
->
plvalidator
,
1
,
typev
);
if
(
!
OidIsValid
(
valProcOid
))
elog
(
ERROR
,
"
PL validator
function %s(oid) doesn't exist"
,
elog
(
ERROR
,
"function %s(oid) doesn't exist"
,
NameListToString
(
stmt
->
plvalidator
));
}
else
...
...
@@ -162,7 +162,7 @@ DropProceduralLanguage(DropPLangStmt *stmt)
* Check permission
*/
if
(
!
superuser
())
elog
(
ERROR
,
"Only users with
Postgres
superuser privilege are "
elog
(
ERROR
,
"Only users with superuser privilege are "
"permitted to drop procedural languages"
);
/*
...
...
@@ -177,10 +177,6 @@ DropProceduralLanguage(DropPLangStmt *stmt)
if
(
!
HeapTupleIsValid
(
langTup
))
elog
(
ERROR
,
"Language %s doesn't exist"
,
languageName
);
if
(
!
((
Form_pg_language
)
GETSTRUCT
(
langTup
))
->
lanispl
)
elog
(
ERROR
,
"Language %s isn't a created procedural language"
,
languageName
);
object
.
classId
=
get_system_catalog_relid
(
LanguageRelationName
);
object
.
objectId
=
HeapTupleGetOid
(
langTup
);
object
.
objectSubId
=
0
;
...
...
src/backend/commands/trigger.c
浏览文件 @
1e4c4f9e
...
...
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.12
4 2002/08/05 03:29:17 tgl
Exp $
* $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.12
5 2002/08/13 17:22:08 petere
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -74,7 +74,6 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
HeapTuple
tuple
;
Oid
fargtypes
[
FUNC_MAX_ARGS
];
Oid
funcoid
;
Oid
funclang
;
Oid
trigoid
;
int
found
=
0
;
int
i
;
...
...
@@ -207,24 +206,8 @@ CreateTrigger(CreateTrigStmt *stmt, bool forConstraint)
if
(((
Form_pg_proc
)
GETSTRUCT
(
tuple
))
->
prorettype
!=
0
)
elog
(
ERROR
,
"CreateTrigger: function %s() must return OPAQUE"
,
NameListToString
(
stmt
->
funcname
));
funclang
=
((
Form_pg_proc
)
GETSTRUCT
(
tuple
))
->
prolang
;
ReleaseSysCache
(
tuple
);
if
(
funclang
!=
ClanguageId
&&
funclang
!=
INTERNALlanguageId
)
{
HeapTuple
langTup
;
langTup
=
SearchSysCache
(
LANGOID
,
ObjectIdGetDatum
(
funclang
),
0
,
0
,
0
);
if
(
!
HeapTupleIsValid
(
langTup
))
elog
(
ERROR
,
"CreateTrigger: cache lookup for language %u failed"
,
funclang
);
if
(((
Form_pg_language
)
GETSTRUCT
(
langTup
))
->
lanispl
==
false
)
elog
(
ERROR
,
"CreateTrigger: only internal, C and PL functions are supported"
);
ReleaseSysCache
(
langTup
);
}
/*
* Build the new pg_trigger tuple.
*/
...
...
src/backend/utils/fmgr/fmgr.c
浏览文件 @
1e4c4f9e
...
...
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.6
0 2002/06/20 20:29:39 momjian
Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.6
1 2002/08/13 17:22:08 petere
Exp $
*
*-------------------------------------------------------------------------
*/
...
...
@@ -324,6 +324,7 @@ fmgr_info_other_lang(Oid functionId, FmgrInfo *finfo, HeapTuple procedureTuple)
Oid
language
=
procedureStruct
->
prolang
;
HeapTuple
languageTuple
;
Form_pg_language
languageStruct
;
FmgrInfo
plfinfo
;
languageTuple
=
SearchSysCache
(
LANGOID
,
ObjectIdGetDatum
(
language
),
...
...
@@ -332,27 +333,19 @@ fmgr_info_other_lang(Oid functionId, FmgrInfo *finfo, HeapTuple procedureTuple)
elog
(
ERROR
,
"fmgr_info: cache lookup for language %u failed"
,
language
);
languageStruct
=
(
Form_pg_language
)
GETSTRUCT
(
languageTuple
);
if
(
languageStruct
->
lanispl
)
{
FmgrInfo
plfinfo
;
fmgr_info
(
languageStruct
->
lanplcallfoid
,
&
plfinfo
);
finfo
->
fn_addr
=
plfinfo
.
fn_addr
;
fmgr_info
(
languageStruct
->
lanplcallfoid
,
&
plfinfo
);
finfo
->
fn_addr
=
plfinfo
.
fn_addr
;
/*
* If lookup of the PL handler function produced nonnull fn_extra,
* complain --- it must be an oldstyle function! We no longer
* support oldstyle PL handlers.
*/
if
(
plfinfo
.
fn_extra
!=
NULL
)
elog
(
ERROR
,
"fmgr_info: language %u has old-style handler"
,
language
);
/*
* If lookup of the PL handler function produced nonnull fn_extra,
* complain --- it must be an oldstyle function! We no longer
* support oldstyle PL handlers.
*/
if
(
plfinfo
.
fn_extra
!=
NULL
)
elog
(
ERROR
,
"fmgr_info: language %u has old-style handler"
,
language
);
}
else
{
elog
(
ERROR
,
"fmgr_info: function %u: unsupported language %u"
,
functionId
,
language
);
}
ReleaseSysCache
(
languageTuple
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录