↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 数据类型 / 伪类型

language_handler

表示过程语言调用处理器被声明为返回 language_handler 。

当前查看 PostgreSQL 18.6。

PG10–20 核心源码清单。类型转换与操作符类列出源码显式声明的关系;缺少记录不能排除通过其他机制进行转换或使用索引。

定义

表示过程语言调用处理器被声明为返回 language_handler 。

language_handler
目录名称
pg_catalog.language_handler
类型 OID
2280
类型种类
Pseudo-type
声明长度
4 字节
存储策略
plain
输入函数
language_handler_in
输出函数
language_handler_out
手册中的声明
language_handler
手册说明
表示过程语言调用处理器被声明为返回 language_handler 。

中文手册

阅读完整手册章节

阅读来源定义

8.21. 伪类型

PostgreSQL 的类型系统中包含一些特殊用途的条目,统称为伪类型。伪类型不能作为列数据类型使用,但可以用于声明函数的参数类型或结果类型。每一种伪类型都适用于这样的场景:函数的行为并不对应于简单地接受或返回某个特定 SQL 数据类型的值。表 8.27列出了现有的伪类型。

表 8.27. 伪类型

名字 说明
any 表示一个函数可以接受任意输入数据类型。
anyelement 表示一个函数可以接受任意数据类型(参见第 36.2.5 节)。
anyarray 表示一个函数可以接受任意数组数据类型(参见第 36.2.5 节)。
anynonarray 表示一个函数可以接受任意非数组数据类型(参见第 36.2.5 节)。
anyenum 表示一个函数可以接受任意枚举数据类型(参见第 36.2.5 节和第 8.7 节)。
anyrange 表示一个函数可以接受任意范围数据类型(参见第 36.2.5 节和第 8.17 节)。
anymultirange 表示一个函数可以接受任意多范围数据类型(参见第 36.2.5 节和第 8.17 节)。
anycompatible 表示一个函数可以接受任意数据类型,并自动将多个参数提升为公共数据类型(参见第 36.2.5 节)。
anycompatiblearray 表示一个函数可以接受任意数组数据类型,并自动将多个参数提升为公共数据类型(参见第 36.2.5 节)。
anycompatiblenonarray 表示一个函数可以接受任意非数组数据类型,并自动将多个参数提升为公共数据类型(参见第 36.2.5 节)。
anycompatiblerange 表示一个函数可以接受任意范围数据类型,并自动将多个参数提升为公共数据类型(参见第 36.2.5 节和第 8.17 节)。
anycompatiblemultirange 表示一个函数可以接受任意多范围数据类型,并自动将多个参数提升为公共数据类型(参见第 36.2.5 节和第 8.17 节)。
cstring 表示一个函数接受或返回一个以空字符结尾的 C 字符串。
内部 表示一个函数接受或返回一个服务器内部数据类型。
language_handler 表示过程语言调用处理器被声明为返回 language_handler。
fdw_handler 表示外部数据包装器处理器被声明为返回 fdw_handler。
table_am_handler 表示表访问方法处理器被声明为返回 table_am_handler。
index_am_handler 表示索引访问方法处理器被声明为返回 index_am_handler。
tsm_handler 表示表采样方法处理器被声明为返回 tsm_handler。
record 标识一个接受或返回未指定行类型的函数。
trigger 触发器函数声明返回 trigger 类型。
event_trigger 事件触发器函数声明返回 event_trigger 类型。
pg_ddl_command 标识一种可供事件触发器使用的 DDL 命令表示形式。
void 表示一个函数不返回值。
unknown(未知) 标识一种尚未解析出的类型,例如未修饰的字符串字面值的类型。

用 C 编写的函数(无论是内置的还是动态装载的)都可以声明为接受或返回这些伪类型中的任意一种。函数作者必须自行确保,当伪类型被用作参数类型时,该函数的行为仍然安全。

用过程语言编写的函数,只有在其实现语言允许的情况下才能使用伪类型。目前,大多数过程语言都禁止把伪类型用作参数类型,而只允许把 void 和 record 用作结果类型(如果函数被用作触发器或事件触发器,则也允许 trigger 或 event_trigger 作为结果类型)。有些语言还支持借助上面列出的多态伪类型来实现多态函数;详见第 36.2.5 节。

伪类型 internal 用于声明仅供数据库系统内部调用、而不能在 SQL 查询中直接调用的函数。只要函数至少有一个 internal 类型参数,就不能从 SQL 调用。为保持此限制的类型安全性,必须遵循以下编码规则:除非函数至少有一个 internal 参数,否则不要创建声明为返回 internal 的函数。

系统目录属性

此构建的源码初始化值。字段含义参见 pg_type 。包含头文件默认值;依赖构建的常量保留符号形式,不作为服务器运行时实测。

oid
2280
descr
pseudo-type for the result of a language handler function
typacl
_null_
typlen
4
typelem
0
typname
language_handler
typsend
-
typtype
p
typalign
i
typarray
0
typbyval
t
typdelim
','
typinput
language_handler_in
typmodin
-
typndims
0
typowner
POSTGRES
typrelid
0
typmodout
-
typoutput
language_handler_out
typtypmod
-1
typanalyze
-
typdefault
_null_
typnotnull
f
typreceive
-
typstorage
p
typbasetype
0
typcategory
P
typcollation
0
typisdefined
t
typnamespace
pg_catalog
typsubscript
-
typdefaultbin
_null_
array_type_oid
0
typispreferred
f
array_type_name

版本比较

PostgreSQL 17.11 → 18.6。属性比较不包含构建标识和说明正文;原始目录字段与源描述保留原文。

这两个样本的系统目录和结构化属性没有变化。

这些构建的文档也有差异,请查看对应版本的手册定义。

文档与源码

构建
18.6 · https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

相关条目

全部数据类型 · 下载此版本 JSON · 最早收录的样本不代表该类型的实际引入版本。