# 52.38.pg_proc

目录pg_proc存储有关函数、过程、聚合函数和窗口函数(统称为例程)的信息。看创建函数,创建过程, 和第 38.3 节了解更多信息。

如果亲善表示该条目是针对聚合函数的,应该有匹配的行pg_aggregate.

表 52.38.pg_proc

列类型

描述
样的 样的

行标识符
名字 姓名

函数名称
前命名空间 样的(参考pg_namespace.样的)

包含此函数的命名空间的 OID
亲主 样的(参考pg_authid.样的)

函数所有者
普朗 样的(参考pg_language.样的)

该函数的实现语言或调用接口
成本 浮动4

估计执行成本(以中央处理器_操作员_成本);如果预置,这是每行返回的成本
踮起脚尖 浮动4

估计的结果行数(如果不是,则为零预置)
杂乱无章的 样的(参考pg_type.样的)

可变参数数组参数元素的数据类型,如果函数没有可变参数,则为零
支持 正则程序(参考pg_proc.样的)

此功能的规划器支持功能(请参阅第 38.11 节),如果没有则为零
亲善 字符

f对于正常功能,p对于一个程序,一种对于聚合函数,或w对于窗函数
程序定义 布尔

函数是一个安全定义器(即“setuid”函数)
防漏 布尔

该功能没有副作用。除了通过返回值外,没有传递有关参数的信息。任何可能根据其参数值引发错误的函数都不是防泄漏的。
严格的 布尔

如果任何调用参数为 null,则函数返回 null。在这种情况下,该函数实际上根本不会被调用。非“严格”的函数必须准备好处理空输入。
预置 布尔

函数返回一个集合(即指定数据类型的多个值)
易挥发的 字符

易挥发的告诉函数的结果是仅取决于其输入参数,还是受外部因素的影响。它是一世对于“不可变”函数,它们总是为相同的输入提供相同的结果。它是s对于“稳定”函数,其结果(对于固定输入)在扫描内不会改变。它是v对于“易失性”函数,其结果可能随时更改。(采用v也适用于具有副作用的函数,因此对它们的调用无法得到优化。)
平行 字符

平行告诉函数是否可以在并行模式下安全运行。它是s用于在并行模式下安全运行且不受限制的功能。它是r对于可以在并行模式下运行的函数,但它们的执行仅限于并行组长;并行工作进程无法调用这些函数。它是对于在并行模式下不安全的功能;这种函数的存在会强制执行串行执行计划。
前锋 整数2

输入参数的数量
pronargdefaults 整数2

具有默认值的参数数量
预置型 样的(参考pg_type.样的)

返回值的数据类型
参数类型 类向量(参考pg_type.样的)

函数参数的数据类型数组。这仅包括输入参数(包括进出杂音arguments),因此表示函数的调用签名。
前体类型 类[](参考pg_type.样的)

函数参数的数据类型数组。这包括所有论点(包括出去进出论据);然而,如果所有的论点都是参数,该字段将为空。请注意,下标是从 1 开始的,而出于历史原因参数类型从 0 开始下标。
参数模式 字符[]

函数参数的模式数组,编码为一世为了论据,为了出去论据,b为了进出论据,v为了杂音论据,为了桌子论据。如果所有的论点都是参数,该字段将为空。请注意,下标对应于前体类型不是参数类型.
参数名称 文本[]

函数参数名称的数组。没有名称的参数被设置为数组中的空字符串。如果所有参数都没有名称,则此字段将为空。请注意,下标对应于前体类型不是参数类型.
proargdefaults pg_node_tree

表达式树(在节点字符串()表示)为默认值。这是一个列表pronargdefaults元素,对应于最后一个*ñ* 输入论点(即,最后*ñ* 参数类型职位)。如果所有参数都没有默认值,则该字段将为空。
原型类型 类[](参考pg_type.样的)

要应用转换的参数/结果数据类型的数组(来自函数的转换条款)。如果没有,则为空。
prorc 文本

这告诉函数处理程序如何调用函数。它可能是解释语言的函数的实际源代码、链接符号、文件名或其他任何东西,具体取决于实现语言/调用约定。
探针 文本

有关如何调用函数的附加信息。同样,解释是特定于语言的。
前体 pg_node_tree

预解析的 SQL 函数体。当主体以 SQL 标准表示法而不是字符串文字给出时,这用于 SQL 语言函数。在其他情况下为空。
配置 文本[]

运行时配置变量的函数本地设置
程序 访问[]

访问权限;看第 5.7 节详情

对于已编译的函数,无论是内置的还是动态加载的,prorc包含函数的 C 语言名称(链接符号)。对于 SQL 语言函数,prorc如果指定为字符串文字,则包含函数的源文本;但如果函数体以 SQL 标准样式指定,prorc未使用(通常是空字符串)并且前体包含预解析的定义。对于所有其他当前已知的语言类型,prorc包含函数的源文本。探针为空,但动态加载的 C 函数除外,它给出了包含该函数的共享库文件的名称。