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

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 11 已结束支持。 2023-11-09. 请参阅 当前版本手册.

52.39. pg_proc #

目录 pg_proc 存放有关函数、过程、聚合函数以及窗口函数(统称为例程)的信息。更多信息请参考 CREATE FUNCTION、CREATE PROCEDURE 和第 38.3 节。

如果 prokind 显示该条目用于一个聚合函数,在 pg_aggregate 中应该有一个相匹配的行。

表 52.39. 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 可变参数数组的元素类型;如果函数没有可变参数,则为零
protransformregprocpg_proc.oid对该函数的调用可以由此处的另一个函数简化(参见第 38.10.10 节)
prokindchar  f 表示普通函数,p 表示过程,a 表示聚合函数,w 表示窗口函数
prosecdefbool  函数是否为安全定义者函数(即“setuid”函数)
proleakproofbool  该函数没有副作用。除返回值外,不会泄露任何关于参数的信息。任何可能因参数值而报错的函数都不是 leakproof。
proisstrictbool  任一调用实参为 NULL 时,函数返回 NULL。在这种情况下,实际上根本不会调用该函数。非“严格”函数必须能够处理 NULL 输入。
proretsetbool  函数是否返回一个集合(即,指定数据类型的多个值)
provolatilechar  provolatile 表示函数的结果是否仅依赖输入实参,还是也受外部因素影响。i 表示“不变的”函数,相同输入总是产生相同结果。s 表示“稳定的”函数,对于固定输入,其结果在一次扫描内不变。v 表示“易失的”函数,其结果随时可能变化。(有副作用的函数也应使用 v,以免对它们的调用在优化时被消除。)
proparallelchar  proparallel 表示函数是否可以在并行模式下安全运行。s 表示可以不受限制地在并行模式下安全运行的函数。r 表示可以在并行模式下运行、但仅限并行组领导者执行的函数;并行工作者进程不能调用这些函数。u 表示在并行模式下不安全的函数;此类函数的存在会强制采用串行执行计划。
pronargsint2  输入参数的个数
pronargdefaultsint2  具有默认值的参数个数
prorettypeoidpg_type.oid 返回值的数据类型
proargtypesoidvectorpg_type.oid 一个函数参数的数据类型的数组。这只包括输入参数(含 INOUT 和 VARIADIC 参数),因此也表现了函数的调用签名。
proallargtypesoid[]pg_type.oid 一个函数参数的数据类型的数组。这包括所有参数(含 OUT 和 INOUT 参数)。但是,如果所有参数都是 IN 参数,此字段为 NULL。注意下标是从 1 开始,然而由于历史原因 proargtypes 的下标是从 0 开始。
proargmodeschar[]  一个函数参数的模式的数组。这里包括:i 表示 IN 参数,o 表示 OUT 参数,b 表示 INOUT 参数,v 表示 VARIADIC 参数,t 表示 TABLE 参数。如果所有的参数都是 IN 参数,此字段为 NULL。注意这里的下标对应着 proallargtypes 而不是 proargtypes 中的位置。
proargnamestext[]  一个函数参数的名字的数组。没有名字的参数在数组中设置为空字符串。如果没有一个参数有名字,此字段为 NULL。注意这里的下标对应着 proallargtypes 而不是 proargtypes 中的位置。
proargdefaultspg_node_tree  默认值的表达式树(以 nodeToString() 表示)。这是一个包含 pronargdefaults 个元素的列表,对应最后 N 个输入参数(即最后 N 个 proargtypes 位置)。如果没有参数具有默认值,则此字段为 NULL。
protrftypesoid[] 要应用转换的数据类型 OID。
prosrctext  此字段告诉函数处理器如何调用该函数。它可以是解释型语言函数的实际源代码、链接符号、文件名或其他内容,具体取决于实现语言和调用约定。
probintext  关于如何调用函数的附加信息。其解释是与语言相关的。
proconfigtext[]  函数对于运行时配置变量的本地设置值
proaclaclitem[] 访问权限,详见 GRANT 和 REVOKE

对于编译型函数,无论是内置函数还是动态加载的函数,prosrc 都包含函数的 C 语言名称(链接符号)。对于目前已知的所有其他语言类型,prosrc 包含函数的源文本。不使用 probin,但动态加载的 C 函数除外:此时它给出包含该函数的共享库文件名。

报告文档问题

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