Home Explore Blog CI



postgresql

64th chunk of `doc/src/sgml/datatype.sgml`
73d9bcb26c3970a610ca16a5b46f94a7edf87f2d14536c720000000100000fa2
 </indexterm>

   <indexterm zone="datatype-pseudo">
    <primary>unknown</primary>
   </indexterm>

   <para>
    The <productname>PostgreSQL</productname> type system contains a
    number of special-purpose entries that are collectively called
    <firstterm>pseudo-types</firstterm>.  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
    <acronym>SQL</acronym> data type.  <xref
    linkend="datatype-pseudotypes-table"/> lists the existing
    pseudo-types.
   </para>

    <table id="datatype-pseudotypes-table">
     <title>Pseudo-Types</title>
     <tgroup cols="2">
      <colspec colname="col1" colwidth="2*"/>
      <colspec colname="col2" colwidth="3*"/>
      <thead>
       <row>
        <entry>Name</entry>
        <entry>Description</entry>
       </row>
      </thead>

      <tbody>
       <row>
        <entry><type>any</type></entry>
        <entry>Indicates that a function accepts any input data type.</entry>
       </row>

       <row>
        <entry><type>anyelement</type></entry>
        <entry>Indicates that a function accepts any data type
        (see <xref linkend="extend-types-polymorphic"/>).</entry>
       </row>

       <row>
        <entry><type>anyarray</type></entry>
        <entry>Indicates that a function accepts any array data type
        (see <xref linkend="extend-types-polymorphic"/>).</entry>
       </row>

       <row>
        <entry><type>anynonarray</type></entry>
        <entry>Indicates that a function accepts any non-array data type
        (see <xref linkend="extend-types-polymorphic"/>).</entry>
       </row>

       <row>
        <entry><type>anyenum</type></entry>
        <entry>Indicates that a function accepts any enum data type
        (see <xref linkend="extend-types-polymorphic"/> and
        <xref linkend="datatype-enum"/>).</entry>
       </row>

       <row>
        <entry><type>anyrange</type></entry>
        <entry>Indicates that a function accepts any range data type
        (see <xref linkend="extend-types-polymorphic"/> and
        <xref linkend="rangetypes"/>).</entry>
       </row>

       <row>
        <entry><type>anymultirange</type></entry>
        <entry>Indicates that a function accepts any multirange data type
        (see <xref linkend="extend-types-polymorphic"/> and
        <xref linkend="rangetypes"/>).</entry>
       </row>

       <row>
        <entry><type>anycompatible</type></entry>
        <entry>Indicates that a function accepts any data type,
        with automatic promotion of multiple arguments to a common data type
        (see <xref linkend="extend-types-polymorphic"/>).</entry>
       </row>

       <row>
        <entry><type>anycompatiblearray</type></entry>
        <entry>Indicates that a function accepts any array data type,
        with automatic promotion of multiple arguments to a common data type
        (see <xref linkend="extend-types-polymorphic"/>).</entry>
       </row>

       <row>
        <entry><type>anycompatiblenonarray</type></entry>
        <entry>Indicates that a function accepts any non-array data type,
        with automatic promotion of multiple arguments to a common data type
        (see <xref linkend="extend-types-polymorphic"/>).</entry>
       </row>

       <row>
        <entry><type>anycompatiblerange</type></entry>
        <entry>Indicates that a function accepts any range data type,
        with automatic promotion of multiple arguments to a common data type
        (see <xref linkend="extend-types-polymorphic"/> and
        <xref linkend="rangetypes"/>).</entry>
       </row>

       <row>
        <entry><type>anycompatiblemultirange</type></entry>
        <entry>Indicates that a function accepts any multirange data type,
        with automatic promotion of multiple arguments

Title: PostgreSQL Pseudo-Types
Summary
PostgreSQL features various pseudo-types, including any, anyelement, anyarray, and others, which can be used to declare function argument or result types, allowing functions to accept different data types, with some pseudo-types enabling automatic promotion of multiple arguments to a common data type, as detailed in the pseudo-types table.