↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本。 PostgreSQL 9.5 已结束支持。 2021-02-11. 请参阅 当前版本手册.

49.37. pg_proc #

目录pg_proc存放有关函数(或过程)的信息。更多信息请参见CREATE FUNCTION和第 35.3 节。

该表同时包含聚合函数和普通函数的数据。如果proisagg为真,在pg_aggregate中应该有一个相匹配的行。

表 49.37. pg_proc 列

名称类型引用 描述
oidoid 行标识符(隐藏属性,必须显式选择)
pronamename  函数的名字
pronamespaceoidpg_namespace.oid 函数所属的名字空间的OID
proowneroidpg_authid.oid 函数的拥有者
prolangoidpg_language.oid 实现语言或该函数的调用接口
procostfloat4  估计的执行代价(以cpu_operator_cost为单位),如果proretset为真,这是每行返回的代价
prorowsfloat4  估计的结果行数量(如果proretset为假,该值为0)
provariadicoidpg_type.oid 可变数组参数的元素的数据类型,如果函数没有可变参数则为0
protransformregprocpg_proc.oid对该函数的调用可以由此处的另一个函数简化(参见第 35.9.11 节)
proisaggbool 该函数是聚合函数
proiswindowbool 该函数是窗口函数
prosecdefbool  函数是一个安全性定义者(即,一个“setuid”函数)
proleakproofbool  该函数没有副作用。除返回值外,不会泄露任何关于参数的信息。任何可能因参数值而报错的函数都不是 leakproof。
proisstrictbool  当任一调用参数为 NULL 时,函数是否返回空值。在这种情况下,函数实际上根本不会被调用。非“strict”函数必须准备好处理空值输入。
proretsetbool  函数是否返回一个集合(即,指定数据类型的多个值)
provolatilechar  provolatile说明函数是仅仅只依赖于它的输入参数,还是会被外部因素影响。值i表示“不变的”函数,它对于相同的输入总是输出相同的结果。值s表示“稳定的”函数,它的结果(对于固定输入)在一次扫描内不会变化。值v表示“不稳定的”函数,它的结果在任何时候都可能变化(使用v也表示函数具有副作用,因此对它们的调用无法得到优化)
pronargsint2  输入参数的个数
pronargdefaultsint2  具有默认值的参数个数
prorettypeoidpg_type.oid 返回值的数据类型
proargtypesoidvectorpg_type.oid 一个函数参数的数据类型的数组。这只包括输入参数(含INOUT和VARIADIC参数),因此也表现了函数的调用签名。
proallargtypesoid[]pg_type.oid 一个函数参数的数据类型的数组。这包括所有参数(含OUT和INOUT参数)。但是,如果所有参数都是IN参数,这个域将为空。注意下标是从1开始,然而由于历史原因proargtypes的下标是从0开始。
proargmodeschar[]  一个函数参数的模式的数组。这里包括:i表示IN参数,o表示OUT参数,b表示INOUT参数,v表示VARIADIC参数,t表示TABLE参数。如果所有的参数都是IN参数,这个域为空。注意这里的下标对应着proallargtypes而不是proargtypes中的位置。
proargnamestext[]  一个函数参数的名字的数组。没有名字的参数在数组中设置为空字符串。如果没有一个参数有名字,这个域为空。注意这里的下标对应着proallargtypes而不是proargtypes中的位置。
proargdefaultspg_node_tree  默认值的表达式树(按照nodeToString()的表现方式)。这是一个pronargdefaults元素的列表,对应于最后N个input参数(即最后N个proargtypes位置)。如果没有一个参数具有默认值,这个域为空。
protrftypesoid[] 要应用转换的数据类型 OID。
prosrctext  这个字段告诉函数处理器如何调用该函数。它可能是针对解释型语言的真实源码、一个链接符号、一个文件名,或任何其他取决于实现语言/调用约定的内容。
probintext  关于如何调用函数的附加信息。其解释是与语言相关的。
proconfigtext[]  函数对于运行时配置变量的本地设置值
proaclaclitem[] 访问权限,详见GRANT和REVOKE

对于编译好的函数,包括内置函数和动态装载函数,prosrc包含函数的 C 语言名字(链接符号)。所有其他已知的语言类型,prosrc包含函数的源码文本。除了对于动态载入的C函数之外,probin不使用,对于动态载入的C函数,它给定了包含该函数的共享库文件的名称。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.