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

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

51.39. pg_proc #

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

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

表 51.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对该函数的调用可以由此处的另一个函数简化(参见第 37.9.10 节)
proisaggbool 该函数是聚合函数
proiswindowbool 该函数是窗口函数
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 函数除外:此时它给出包含该函数的共享库文件名。

报告文档问题

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