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

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

Wiki / 数据类型

anyarray

Indicates that a function accepts any array data type (see Section 36.2.5 ).

当前阅读 PG 18·选择有来源记录的版本

此版本暂无所选语言的定义,以下显示原始英文内容。

Catalog name
pg_catalog.anyarray
Type OID
2277
Type kind
Pseudo-type
Declared length
Variable length (varlena)
Storage strategy
extended
Input function
anyarray_in
Output function
anyarray_out
Documented declaration
anyarray
Manual description
Indicates that a function accepts any array data type (see Section 36.2.5 ).
aliases
未知
casts
未知
coverage
source inventory; exact declared input types for operator classes
manual documentation
dedicated family chapter
manual path
datatype-pseudo.html
ranges
未知
signature
anyarray

版本定义 PG 18

8.21. Pseudo-Types

The PostgreSQL type system contains a number of special-purpose entries that are collectively called pseudo-types. A pseudo-type cannot be used as a column data type, but it can be used to declare a function's argument or result type. Each of the available pseudo-types is useful in situations where a function's behavior does not correspond to simply taking or returning a value of a specific SQL data type. Table 8.27 lists the existing pseudo-types.

Table 8.27. Pseudo-Types

Name Description
any Indicates that a function accepts any input data type.
anyelement Indicates that a function accepts any data type (see Section 36.2.5).
anyarray Indicates that a function accepts any array data type (see Section 36.2.5).
anynonarray Indicates that a function accepts any non-array data type (see Section 36.2.5).
anyenum Indicates that a function accepts any enum data type (see Section 36.2.5 and Section 8.7).
anyrange Indicates that a function accepts any range data type (see Section 36.2.5 and Section 8.17).
anymultirange Indicates that a function accepts any multirange data type (see Section 36.2.5 and Section 8.17).
anycompatible Indicates that a function accepts any data type, with automatic promotion of multiple arguments to a common data type (see Section 36.2.5).
anycompatiblearray Indicates that a function accepts any array data type, with automatic promotion of multiple arguments to a common data type (see Section 36.2.5).
anycompatiblenonarray Indicates that a function accepts any non-array data type, with automatic promotion of multiple arguments to a common data type (see Section 36.2.5).
anycompatiblerange Indicates that a function accepts any range data type, with automatic promotion of multiple arguments to a common data type (see Section 36.2.5 and Section 8.17).
anycompatiblemultirange Indicates that a function accepts any multirange data type, with automatic promotion of multiple arguments to a common data type (see Section 36.2.5 and Section 8.17).
cstring Indicates that a function accepts or returns a null-terminated C string.
internal Indicates that a function accepts or returns a server-internal data type.
language_handler A procedural language call handler is declared to return language_handler.
fdw_handler A foreign-data wrapper handler is declared to return fdw_handler.
table_am_handler A table access method handler is declared to return table_am_handler.
index_am_handler An index access method handler is declared to return index_am_handler.
tsm_handler A tablesample method handler is declared to return tsm_handler.
record Identifies a function taking or returning an unspecified row type.
trigger A trigger function is declared to return trigger.
event_trigger An event trigger function is declared to return event_trigger.
pg_ddl_command Identifies a representation of DDL commands that is available to event triggers.
void Indicates that a function returns no value.
unknown Identifies a not-yet-resolved type, e.g., of an undecorated string literal.

Functions coded in C (whether built-in or dynamically loaded) can be declared to accept or return any of these pseudo-types. It is up to the function author to ensure that the function will behave safely when a pseudo-type is used as an argument type.

Functions coded in procedural languages can use pseudo-types only as allowed by their implementation languages. At present most procedural languages forbid use of a pseudo-type as an argument type, and allow only void and record as a result type (plus trigger or event_trigger when the function is used as a trigger or event trigger). Some also support polymorphic functions using the polymorphic pseudo-types, which are shown above and discussed in detail in Section 36.2.5.

The internal pseudo-type is used to declare functions that are meant only to be called internally by the database system, and not by direct invocation in an SQL query. If a function has at least one internal-type argument then it cannot be called from SQL. To preserve the type safety of this restriction it is important to follow this coding rule: do not create any function that is declared to return internal unless it has at least one internal argument.

比较版本

完整来源事实

catalog

{"array_type_name":"","array_type_oid":"0","descr":"pseudo-type representing a polymorphic array type","oid":"2277","typacl":"_null_","typalign":"d","typanalyze":"-","typarray":"0","typbasetype":"0","typbyval":"f","typcategory":"P","typcollation":"0","typdefault":"_null_","typdefaultbin":"_null_","typdelim":"','","typelem":"0","typinput":"anyarray_in","typisdefined":"t","typispreferred":"f","typlen":"-1","typmodin":"-","typmodout":"-","typname":"anyarray","typnamespace":"pg_catalog","typndims":"0","typnotnull":"f","typoutput":"anyarray_out","typowner":"POSTGRES","typreceive":"anyarray_recv","typrelid":"0","typsend":"anyarray_send","typstorage":"x","typsubscript":"-","typtype":"p","typtypmod":"-1"}

operator classes

map[opcdefault:t opcfamily:btree/array_ops opcintype:anyarray opckeytype:0 opcmethod:btree opcname:array_ops opcnamespace:pg_catalog opcowner:POSTGRES], map[opcdefault:t opcfamily:hash/array_ops opcintype:anyarray opckeytype:0 opcmethod:hash opcname:array_ops opcnamespace:pg_catalog opcowner:POSTGRES], map[opcdefault:t opcfamily:gin/array_ops opcintype:anyarray opckeytype:anyelement opcmethod:gin opcname:array_ops opcnamespace:pg_catalog opcowner:POSTGRES]

operators

map[descr:equal oid:1070 oid_symbol:ARRAY_EQ_OP oprcanhash:t oprcanmerge:t oprcode:array_eq oprcom:=(anyarray,anyarray) oprjoin:eqjoinsel oprkind:b oprleft:anyarray oprname:= oprnamespace:pg_catalog oprnegate:<>(anyarray,anyarray) oprowner:POSTGRES oprrest:eqsel oprresult:bool oprright:anyarray], map[descr:not equal oid:1071 oprcanhash:f oprcanmerge:f oprcode:array_ne oprcom:<>(anyarray,anyarray) oprjoin:neqjoinsel oprkind:b oprleft:anyarray oprname:<> oprnamespace:pg_catalog oprnegate:=(anyarray,anyarray) oprowner:POSTGRES oprrest:neqsel oprresult:bool oprright:anyarray], map[descr:less than oid:1072 oid_symbol:ARRAY_LT_OP oprcanhash:f oprcanmerge:f oprcode:array_lt oprcom:>(anyarray,anyarray) oprjoin:scalarltjoinsel oprkind:b oprleft:anyarray oprname:< oprnamespace:pg_catalog oprnegate:>=(anyarray,anyarray) oprowner:POSTGRES oprrest:scalarltsel oprresult:bool oprright:anyarray], map[descr:greater than oid:1073 oid_symbol:ARRAY_GT_OP oprcanhash:f oprcanmerge:f oprcode:array_gt oprcom:<(anyarray,anyarray) oprjoin:scalargtjoinsel oprkind:b oprleft:anyarray oprname:> oprnamespace:pg_catalog oprnegate:<=(anyarray,anyarray) oprowner:POSTGRES oprrest:scalargtsel oprresult:bool oprright:anyarray], map[descr:less than or equal oid:1074 oprcanhash:f oprcanmerge:f oprcode:array_le oprcom:>=(anyarray,anyarray) oprjoin:scalarlejoinsel oprkind:b oprleft:anyarray oprname:<= oprnamespace:pg_catalog oprnegate:>(anyarray,anyarray) oprowner:POSTGRES oprrest:scalarlesel oprresult:bool oprright:anyarray], map[descr:greater than or equal oid:1075 oprcanhash:f oprcanmerge:f oprcode:array_ge oprcom:<=(anyarray,anyarray) oprjoin:scalargejoinsel oprkind:b oprleft:anyarray oprname:>= oprnamespace:pg_catalog oprnegate:<(anyarray,anyarray) oprowner:POSTGRES oprrest:scalargesel oprresult:bool oprright:anyarray], map[descr:overlaps oid:2750 oid_symbol:OID_ARRAY_OVERLAP_OP oprcanhash:f oprcanmerge:f oprcode:arrayoverlap oprcom:&&(anyarray,anyarray) oprjoin:arraycontjoinsel oprkind:b oprleft:anyarray oprname:&& oprnamespace:pg_catalog oprnegate:0 oprowner:POSTGRES oprrest:arraycontsel oprresult:bool oprright:anyarray], map[descr:contains oid:2751 oid_symbol:OID_ARRAY_CONTAINS_OP oprcanhash:f oprcanmerge:f oprcode:arraycontains oprcom:<@(anyarray,anyarray) oprjoin:arraycontjoinsel oprkind:b oprleft:anyarray oprname:@> oprnamespace:pg_catalog oprnegate:0 oprowner:POSTGRES oprrest:arraycontsel oprresult:bool oprright:anyarray], map[descr:is contained by oid:2752 oid_symbol:OID_ARRAY_CONTAINED_OP oprcanhash:f oprcanmerge:f oprcode:arraycontained oprcom:@>(anyarray,anyarray) oprjoin:arraycontjoinsel oprkind:b oprleft:anyarray oprname:<@ oprnamespace:pg_catalog oprnegate:0 oprowner:POSTGRES oprrest:arraycontsel oprresult:bool oprright:anyarray]

来源引用

完整定义与证据 JSON

定义来源

center · PostgreSQL 18 · 555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f

正文语言: en · 555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f