On this page
52.39. pg_proc
目录pg_proc
存储有关函数,过程,聚合函数和窗口函数(统称为例程)的信息。有关更多信息,请参见CREATE FUNCTION,CREATE PROCEDURE和Section 38.3。
如果prokind
表示该条目用于聚合函数,则pg_aggregate
中应该有匹配的行。
表 52.39. pg_proc
列
Name | Type | References | Description |
---|---|---|---|
oid |
oid |
行标识符(隐藏属性;必须显式选择) | |
proname |
name |
功能名称 | |
pronamespace |
oid |
pg_namespace.oid |
包含此功能的名称空间的 OID |
proowner |
oid |
pg_authid.oid |
该功能的所有者 |
prolang |
oid |
pg_language.oid |
此功能的实现语言或调用接口 |
procost |
float4 |
估算执行成本(以cpu_operator_cost为单位);如果proretset ,这是返回的每行成本 |
|
prorows |
float4 |
估计的结果行数(如果不是proretset 则为零) |
|
provariadic |
oid |
pg_type.oid |
可变参数数组参数的元素的数据类型;如果函数没有可变参数,则为零 |
protransform |
regproc |
pg_proc.oid |
可以通过其他函数简化对此函数的调用(请参见Section 38.10.10) |
prokind |
char |
f 表示常规功能,p 表示过程,a 表示聚合功能,w 表示窗口功能 |
|
prosecdef |
bool |
函数是安全性定义程序(即“ setuid”函数) | |
proleakproof |
bool |
该功能没有副作用。除了通过返回值以外,没有传递有关自变量的任何信息。根据其参数值可能引发错误的任何函数都不是防泄漏的。 | |
proisstrict |
bool |
如果任何调用参数为 null,则函数返回 null。在这种情况下,实际上根本不会调用该函数。非“严格”函数必须准备处理空 Importing。 | |
proretset |
bool |
函数返回一个集合(即指定数据类型的多个值) | |
provolatile |
char |
provolatile 告诉函数的结果是仅取决于其 Importing 自变量,还是受外部因素影响。 “不可变”功能为i ,它们对于相同的 Importing 总是提供相同的结果。对于“稳定”功能,它为s ,其结果(对于固定 Importing)在扫描中不会改变。 “易失”功能为v ,其结果可能随时更改。 (也将v 用于具有副作用的函数,这样就无法优化对它们的调用.) |
|
proparallel |
char |
proparallel 告知该功能是否可以在并行模式下安全运行。对于可以不受限制地在并行模式下安全运行的功能,它是s 。可以在并行模式下运行的函数为r ,但是它们的执行仅限于并行组领导者;并行工作进程无法调用这些功能。在并行模式下不安全的功能为u ;这种功能的存在会强制执行串行执行计划。 |
|
pronargs |
int2 |
Importing 参数数 | |
pronargdefaults |
int2 |
具有默认值的参数数量 | |
prorettype |
oid |
pg_type.oid |
返回值的数据类型 |
proargtypes |
oidvector |
pg_type.oid |
具有函数参数的数据类型的数组。这仅包括 Importing 自变量(包括INOUT 和VARIADIC 自变量),因此代表函数的调用签名。 |
proallargtypes |
oid[] |
pg_type.oid |
具有函数参数的数据类型的数组。这包括所有参数(包括OUT 和INOUT 参数);但是,如果所有参数均为IN 参数,则此字段为 null。请注意,下标是基于 1 的,而由于历史原因,proargtypes 是从 0 下标的。 |
proargmodes |
char[] |
具有函数参数模式的数组,编码为i 表示IN 参数,o 表示OUT 参数,b 表示INOUT 参数,v 表示VARIADIC 参数,t 表示TABLE 参数。如果所有参数均为IN 参数,则此字段为 null。注意,下标对应于proallargtypes 而不是proargtypes 的位置。 |
|
proargnames |
text[] |
具有函数参数名称的数组。没有名称的参数在数组中设置为空字符串。如果所有参数都没有名称,则此字段为 null。请注意,下标对应于proallargtypes 而不是proargtypes 的位置。 |
|
proargdefaults |
pg_node_tree |
表达式树(以nodeToString() 表示)为默认值。这是一个具有pronargdefaults 个元素的列表,对应于最后* N * * input 个参数(即最后 N * proargtypes 个位置)。如果所有参数都没有默认值,则此字段为 null。 |
|
protrftypes |
oid[] |
要应用转换的数据类型 OID。 | |
prosrc |
text |
这告诉函数处理程序如何调用函数。根据实现语言/调用约定,它可能是解释语言功能的实际源代码,链接符号,文件名或几乎所有其他内容。 | |
probin |
text |
有关如何调用该函数的其他信息。同样,解释是针对特定语言的。 | |
proconfig |
text[] |
运行时配置变量的函数的本地设置 | |
proacl |
aclitem[] |
访问权限;有关详情,请参见GRANT和REVOKE |
对于内置和动态加载的已编译函数,prosrc
包含函数的 C 语言名称(链接符号)。对于所有其他当前已知的语言类型,prosrc
包含函数的源文本。 probin
除了动态加载的 C 函数外没有使用,它为包含该函数的共享库文件提供了名称。