Movatterモバイル変換


[0]ホーム

URL:



Facebook
Postgres Pro
Facebook
Downloads

8.20. Pseudo-Types

ThePostgreSQL type system contains a number of special-purpose entries that are collectively calledpseudo-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 specificSQL data type.Table 8-25 lists the existing pseudo-types.

Table 8-25. Pseudo-Types

NameDescription
anyIndicates that a function accepts any input data type.
anyelementIndicates that a function accepts any data type (seeSection 35.2.5).
anyarrayIndicates that a function accepts any array data type (seeSection 35.2.5).
anynonarrayIndicates that a function accepts any non-array data type (seeSection 35.2.5).
anyenumIndicates that a function accepts any enum data type (seeSection 35.2.5 andSection 8.7).
anyrangeIndicates that a function accepts any range data type (seeSection 35.2.5 andSection 8.17).
cstringIndicates that a function accepts or returns a null-terminated C string.
internalIndicates that a function accepts or returns a server-internal data type.
language_handlerA procedural language call handler is declared to returnlanguage_handler.
fdw_handlerA foreign-data wrapper handler is declared to returnfdw_handler.
recordIdentifies a function returning an unspecified row type.
triggerA trigger function is declared to returntrigger.
voidIndicates that a function returns no value.
opaqueAn obsolete type name that formerly served all the above purposes.

Functions coded in C (whether built-in or dynamically loaded) can be declared to accept or return any of these pseudo data 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 the procedural languages all forbid use of a pseudo-type as argument type, and allow onlyvoid andrecord as a result type (plustrigger when the function is used as a trigger). Some also support polymorphic functions using the typesanyelement,anyarray,anynonarray,anyenum, andanyrange.

Theinternal 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 anSQL query. If a function has at least oneinternal-type argument then it cannot be called fromSQL. 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 returninternal unless it has at least oneinternal argument.


PrevHomeNext
pg_lsn TypeUpFunctions and Operators
Go to PostgreSQL 9.4
By continuing to browse this website, you agree to the use of cookies. Go toPrivacy Policy.

[8]ページ先頭

©2009-2025 Movatter.jp