返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

43.27. pg_proc

发布于 2019-09-30 03:12:47 字数 3487 浏览 1181 评论 0 收藏 0

pg_proc 表存储关于函数(或过程)的信息。CREATE FUNCTION 和节33.3包含一些字段含义的更多信息。

该表包含聚集函数和普通函数的数据。如果 proisagg 为真,那么在 pg_aggregate 里应该有一个匹配行。

表43-27. pg_proc 字段

名字类型引用描述
pronamename函数名字
pronamespaceoidpg_namespace.oid包含该函数名字空间的 OID
proowneroidpg_authid.oid函数的所有者
prolangoidpg_language.oid这个函数的实现语言或调用接口
proisaggbool函数是聚集函数
prosecdefbool函数是一个安全定义器(也就是一个"setuid"函数)
proisstrictbool如果任何调用参数是空,那么函数返回空。这时函数实际上连调用都不调用。不是"strict"的函数必须准备处理空输入。
proretsetbool函数返回一个集合(也就是说,指定数据类型的多个数值)
provolatilechar告诉该函数的结果是否只倚赖于它的输入参数,或者还会被外接因素影响。对于"不可变的"(immutable)函数它是 i ,这样的函数对于相同的输入总是产生相同的结果。对于"稳定的"(stable)函数它是 s ,(对于固定输入)其结果在一次扫描里不变。对于"易变"(volatile)函数它是 v ,其结果可能在任何时候变化。v 也用于那些有副作用的函数,因此调用它们无法得到优化。
pronargsint2参数数目
prorettypeoidpg_type.oid返回值的数据类型
proargtypesoidvectorpg_type.oid一个存放函数参数的数据类型的数组。数组里只包括输入参数(包括 INOUT 参数),因此代表该函数的调用签名(接口)。
proallargtypesoid[]pg_type.oid一个包含函数参数的数据类型的数组。数组里包括所有参数的类型(包括 OUTINOUT 参数);不过,如果所有参数都是 IN 参数,那么这个字段就会是空。请注意数组下标是以 1 为起点的,而因为历史原因,proargtypes 的下标起点为 0 。
proargmodeschar[]一个保存函数参数模式的数组,编码如下:i 表示 IN 参数, o 表示 OUT 参数, b 表示 INOUT 参数。如果所有参数都是 IN 参数,那么这个字段为空。请注意,下标对应的是 proallargtypes 的位置,而不是 proargtypes
proargnamestext[]一个保存函数参数的名字的数组。没有名字的参数在数组里设置为空字符串。如果没有一个参数有名字,这个字段将是空。请注意,此数组的下标对应 proallargtypes 而不是 proargtypes
prosrctext这个字段告诉函数处理器如何调用该函数。它实际上对于解释语言来说就是函数的源程序,或者一个链接符号,一个文件名,或者是任何其它的东西,具体取决于语言/调用习惯的实现。
probinbytea关于如何调用该函数的附加信息。同样,其含义也是和语言相关的。
proaclaclitem[]访问权限;参阅 GRANTREVOKE 获取细节。

对于内置和动态加载得编译函数,prosrc 包含函数的 C 语言名字(链接符号)。对于所有其它语言类型,prosrc 包含该函数的源文本。probin 除了用于动态加载的 C 函数之外没有其它用途,这个时候它给出包含给函数的共享库的文件名。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文