From 5e45211a64149b3c659b90ff2de6fa982a5a93ed Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 14:17:33 +0200 Subject: Adding upstream version 15.5. Signed-off-by: Daniel Baumann --- doc/src/sgml/html/datatype-pseudo.html | 59 ++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 doc/src/sgml/html/datatype-pseudo.html (limited to 'doc/src/sgml/html/datatype-pseudo.html') diff --git a/doc/src/sgml/html/datatype-pseudo.html b/doc/src/sgml/html/datatype-pseudo.html new file mode 100644 index 0000000..6c24833 --- /dev/null +++ b/doc/src/sgml/html/datatype-pseudo.html @@ -0,0 +1,59 @@ + +8.21. Pseudo-Types

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

NameDescription
anyIndicates that a function accepts any input data type.
anyelementIndicates that a function accepts any data type + (see Section 38.2.5).
anyarrayIndicates that a function accepts any array data type + (see Section 38.2.5).
anynonarrayIndicates that a function accepts any non-array data type + (see Section 38.2.5).
anyenumIndicates that a function accepts any enum data type + (see Section 38.2.5 and + Section 8.7).
anyrangeIndicates that a function accepts any range data type + (see Section 38.2.5 and + Section 8.17).
anymultirangeIndicates that a function accepts any multirange data type + (see Section 38.2.5 and + Section 8.17).
anycompatibleIndicates that a function accepts any data type, + with automatic promotion of multiple arguments to a common data type + (see Section 38.2.5).
anycompatiblearrayIndicates that a function accepts any array data type, + with automatic promotion of multiple arguments to a common data type + (see Section 38.2.5).
anycompatiblenonarrayIndicates that a function accepts any non-array data type, + with automatic promotion of multiple arguments to a common data type + (see Section 38.2.5).
anycompatiblerangeIndicates that a function accepts any range data type, + with automatic promotion of multiple arguments to a common data type + (see Section 38.2.5 and + Section 8.17).
anycompatiblemultirangeIndicates that a function accepts any multirange data type, + with automatic promotion of multiple arguments to a common data type + (see Section 38.2.5 and + Section 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 return language_handler.
fdw_handlerA foreign-data wrapper handler is declared to return fdw_handler.
table_am_handlerA table access method handler is declared to return table_am_handler.
index_am_handlerAn index access method handler is declared to return index_am_handler.
tsm_handlerA tablesample method handler is declared to return tsm_handler.
recordIdentifies a function taking or returning an unspecified row type.
triggerA trigger function is declared to return trigger.
event_triggerAn event trigger function is declared to return event_trigger.
pg_ddl_commandIdentifies a representation of DDL commands that is available to event triggers.
voidIndicates that a function returns no value.
unknownIdentifies 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 38.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. +

\ No newline at end of file -- cgit v1.2.3