# 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 函数除外,它给出了包含该函数的共享库文件的名称。