历史版本。 PostgreSQL 7.4 已结束支持。 请参阅 当前版本手册.
43.24. pg_proc #
目录 pg_proc 存储关于函数(或过程)的信息。CREATE FUNCTION 的描述和第 33.3 节包含某些列含义的更多信息。
该表同时包含聚合函数和普通函数的数据。如果proisagg为真,在pg_aggregate中应该有一个相匹配的行。
表 43.24. pg_proc 列
| 名称 | 类型 | 引用 | 描述 |
|---|---|---|---|
proname | name | 函数的名字 | |
pronamespace | oid | | 函数所属的名字空间的OID |
proowner | int4 | | 函数的拥有者 |
prolang | oid | | 实现语言或该函数的调用接口 |
proisagg | bool | 该函数是聚合函数 | |
prosecdef | bool | 函数是一个安全性定义者(即,一个“setuid”函数) | |
proisstrict | bool | 当任一调用参数为 NULL 时,函数是否返回空值。在这种情况下,函数实际上根本不会被调用。非“strict”函数必须准备好处理空值输入。 | |
proretset | bool | 函数是否返回一个集合(即,指定数据类型的多个值) | |
provolatile | char | provolatile 说明函数的结果是只依赖于输入参数,还是受外部因素影响。i 表示“不可变”(immutable)函数,对相同输入总是给出相同结果。s 表示“稳定”(stable)函数,其结果(对固定输入)在一次扫描内不会变化。v 表示“易变”(volatile)函数,其结果任何时候都可能变化。(有副作用的函数也用 v,这样对它们的调用就不会被优化掉。) | |
pronargs | int2 | 参数个数 | |
prorettype | oid | | 返回值的数据类型 |
proargtypes | oidvector | | 一个由函数参数的数据类型组成的数组 |
prosrc | text | 这个字段告诉函数处理器如何调用该函数。它可能是针对解释型语言的真实源码、一个链接符号、一个文件名,或任何其他取决于实现语言/调用约定的内容。 | |
probin | bytea | 关于如何调用函数的附加信息。其解释是与语言相关的。 | |
proacl | aclitem[] | 访问权限 |
对于编译型函数(包括内置的和动态装载的),prosrc 包含函数的 C 语言名(链接符号)。对于所有其他语言类型,prosrc 包含函数的源文本。probin 只用于动态装载的 C 函数,此时它给出共享库的名称。