anyelement
表示一个函数可以接受任意数据类型(参见 第 36.2.5 节 )。
当前查看 PostgreSQL 18.6。
PG10–20 核心源码清单。类型转换与操作符类列出源码显式声明的关系;缺少记录不能排除通过其他机制进行转换或使用索引。
定义
表示一个函数可以接受任意数据类型(参见 第 36.2.5 节 )。
anyelement
- 目录名称
- pg_catalog.anyelement
- 类型 OID
- 2283
- 类型种类
- Pseudo-type
- 声明长度
- 4 字节
- 存储策略
- plain
- 输入函数
- anyelement_in
- 输出函数
- anyelement_out
- 手册中的声明
- anyelement
- 手册说明
- 表示一个函数可以接受任意数据类型(参见 第 36.2.5 节 )。
中文手册
阅读来源定义
8.21. 伪类型
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 。包含头文件默认值;依赖构建的常量保留符号形式,不作为服务器运行时实测。
oid2283descrpseudo-type representing a polymorphic base typetypacl_null_typlen4typelem0typnameanyelementtypsend-typtypeptypalignityparray0typbyvalttypdelim','typinputanyelement_intypmodin-typndims0typownerPOSTGREStyprelid0typmodout-typoutputanyelement_outtyptypmod-1typanalyze-typdefault_null_typnotnullftypreceive-typstorageptypbasetype0typcategoryPtypcollation0typisdefinedttypnamespacepg_catalogtypsubscript-typdefaultbin_null_array_type_oid0typispreferredfarray_type_name
运算符重载 4
每种操作数签名均为独立重载。实现函数和返回类型来自同一源码构建。
| 运算符 | 左操作数 | 右操作数 | 返回类型 | 含义 | 实现函数 |
|---|---|---|---|---|---|
@> | anyrange | anyelement | bool | 包含 | range_contains_elem |
<@ | anyelement | anyrange | bool | 被包含于 | elem_contained_by_range |
@> | anymultirange | anyelement | bool | 包含 | multirange_contains_elem |
<@ | anyelement | anymultirange | bool | 被包含于 | elem_contained_by_multirange |
版本比较
PostgreSQL 17.11 → 18.6。属性比较不包含构建标识和说明正文;原始目录字段与源描述保留原文。
这两个样本的系统目录和结构化属性没有变化。
这些构建的文档也有差异,请查看对应版本的手册定义。
文档与源码
- 构建
- 18.6 · https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
相关条目
全部数据类型 · 下载此版本 JSON · 最早收录的样本不代表该类型的实际引入版本。