您的位置:58编程 > PostgreSQL pg_proc

PostgreSQL pg_proc

2023-05-12 17:33 PostgreSQL pg_proc

 PostgreSQL pg_proc

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

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

表 51.38. pg_proc Columns

列类型

描述

oid oid

行标识符

proname name

函数的名字

pronamespace oid (references pg_namespace.oid)

函数所属的名字空间的OID

proowner oid (references pg_authid.oid)

函数的拥有者

prolang oid (references pg_language.oid)

实现语言或该函数的调用接口

procost float4

估计的执行代价(以cpu_operator_cost为单位),如果proretset为真,这是每行返回的代价

prorows float4

估计的结果行数量(如果proretset为假,该值为0)

provariadic oid (references pg_type.oid)

可变数组参数的元素的数据类型,如果函数没有可变参数则为0

prosupport regproc (references pg_proc.oid)

对于该函数可选的计划器支持函数(见第 37.11 节)

prokind char

f表示普通函数,p表示过程,a表示聚集函数,w表示窗口函数

prosecdef bool

函数是一个安全性定义者(即,一个setuid函数)

proleakproof bool

该函数没有副作用。除了通过返回值,没有关于参数的信息被传播。任何会抛出基于其参数值的错误信息的函数都不是泄露验证的。

proisstrict bool

当任意调用函数为空时,函数是否会返回空值。在那种情况下函数实际上根本不会被调用。非strict函数必须准备好处理空值输入。

proretset bool

函数是否返回一个集合(即,指定数据类型的多个值)

provolatile char

provolatile说明函数是仅仅只依赖于它的输入参数,还是会被外部因素影响。 值i表示不变的函数,它对于相同的输入总是输出相同的结果。 值s表示稳定的函数,它的结果(对于固定输入)在一次扫描内不会变化。 值v表示不稳定的函数,它的结果在任何时候都可能变化(使用v页表示函数具有副作用,所以对它们的调用无法得到优化)

proparallel char

proparallel说明该函数在并行模式下是否能安全地运行。 对于能在并行模式下不受限制安全运行的函数,这列是s。 对于可以在并行模式下运行但是只限于由并行分组的领导者执行的函数,这列是r。 对于在并行模式中不安全的函数,这列是u,这种函数的存在会强制一个顺序执行计划。

pronargs int2

输入参数的个数

pronargdefaults int2

具有默认值的参数个数

prorettype oid (references pg_type.oid)

返回值的数据类型

proargtypes oidvector (references pg_type.oid)

一个函数参数的数据类型的数组。这只包括输入参数(含INOUTVARIADIC参数),因此也表现了函数的调用特征。

proallargtypes oid[] (references pg_type.oid)

一个函数参数的数据类型的数组。这包括所有参数(含OUTINOUT参数)。但是,如果所有参数都是IN参数,这个域将为空。 注意下标是从1开始 ,然而由于历史原因proargtypes的下标是从0开始。

proargmodes char[]

一个函数参数的模式的数组。编码为: i表示IN参数 , o表示OUT参数, b表示INOUT参数, v表示 VARIADIC参数, t表示TABLE参数。 如果所有的参数都是IN参数,这个域为空。注意这里的下标对应着proallargtypes而不是proargtypes中的位置。

proargnames text[]

一个函数参数的名字的数组。没有名字的参数在数组中设置为空字符串。如果没有一个参数有名字,这个域为空。 注意这里的下标对应着proallargtypes而不是proargtypes中的位置。

proargdefaults pg_node_tree

默认值的表达式树(按照nodeToString()的表现方式)。 这是一个pronargdefaults元素的列表,对应于最后Ninput参数(即最后Nproargtypes位置)。 如果没有一个参数具有默认值,这个域为空。

protrftypes oid[]

要在其上应用转换的数据类型的 OID。

prosrc text

这个域告诉函数处理者如何调用该函数。它可能是针对解释型语言的真实源码、一个符号链接、一个文件名或任何其他东西,这取决于实现语言/调用规范。

probin text

关于如何调用函数的附加信息。其解释是与语言相关的。

proconfig text[]

函数对于运行时配置变量的本地设置值

proacl aclitem[]

访问权限,详见第 5.7 节


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


阅读全文
以上是58编程为你收集整理的 PostgreSQL pg_proc全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
  •  PostgreSQL pg_tablespace

    PostgreSQL pg_tablespace

    目录pg_tablespace存储关于可用表空间的信息。表可以被放置在特定表空间中以实现磁盘布局的管理。与大部分其他系统目录不同,pg_...

  •  PostgreSQL pg_type

    PostgreSQL pg_type

    目录pg_type存储有关数据类型的信息。基类和枚举类型(标度类型)使用CREATE TYPE创建,而域使用CREATE DOMAIN创建。数据库中的...

  •  PostgreSQL pg_group

    PostgreSQL pg_group

    视图pg_group为向后兼容而存在:它模拟了存在于PostgreSQL 8.1之前版本中的一个目录。它显式所有角色的名称和未被标记rolcanlogi...

  •  PostgreSQL pg_publication_tables

    PostgreSQL pg_publication_tables

    视图pg_publication_tables提供publication与其所包含的表之间的映射信息。和底层的目录pg_publication_rel不同,这个视图展开了...

  •  PostgreSQL pg_user_mappings

    PostgreSQL pg_user_mappings

    视图pg_user_mappings提供有关用户映射的信息。这是pg_user_mapping的一个公共可读视图,它对无权使用的用户省去了选项域。表51....

  •  PostgreSQL 消息格式

    PostgreSQL 消息格式

    本节描述各种消息的详细格式。每种消息都标记来指示它是由前端(F)、后端(B)或者两者(FB)发送的。 请注意,尽管每条消息在...

  •  PostgreSQL 编写一个自定义扫描提供者

    PostgreSQL 编写一个自定义扫描提供者

    目录58.1. 创建自定义扫描路径58.1.1. 自定义扫描路径回调58.2. 创建自定义扫描计划58.2.1. 自定义扫描计划回调58.3. 执行自定义...

  • vimscript教程 Vimscript编程参考
  •  GoFrame 日志组件-Context

    GoFrame 日志组件-Context

    从​v2​版本开始,​glog​组件将​ctx​上下文变量作为日志打印的必需参数。自定义CtxKeys日志组件支持自定义的键值打印,通过...

  • goframe框架 GoFrame 配置管理-YAML格式

    goframe框架 GoFrame 配置管理-YAML格式

    一、简介​YAML​语言(发音/ˈjæməl/)的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。它的基本语法规...

© 2024 58编程 58biancheng.com 版权所有 联系我们
桂ICP备12005667号-32 Powered by CMS