Home Explore Blog CI



postgresql

73th chunk of `doc/src/sgml/catalogs.sgml`
bf51880cc3891e99aca4f9872b99a850db9b9af97d63da1d0000000100000fa0
 <literal>IN</literal> arguments, this field will be null.
       Note that subscripting is 1-based, whereas for historical reasons
       <structfield>proargtypes</structfield> is subscripted from 0.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>proargmodes</structfield> <type>char[]</type>
      </para>
      <para>
       An array of the modes of the function arguments, encoded as
       <literal>i</literal> for <literal>IN</literal> arguments,
       <literal>o</literal> for <literal>OUT</literal> arguments,
       <literal>b</literal> for <literal>INOUT</literal> arguments,
       <literal>v</literal> for <literal>VARIADIC</literal> arguments,
       <literal>t</literal> for <literal>TABLE</literal> arguments.
       If all the arguments are <literal>IN</literal> arguments,
       this field will be null.
       Note that subscripts correspond to positions of
       <structfield>proallargtypes</structfield> not <structfield>proargtypes</structfield>.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>proargnames</structfield> <type>text[]</type>
      </para>
      <para>
       An array of the names of the function arguments.
       Arguments without a name are set to empty strings in the array.
       If none of the arguments have a name, this field will be null.
       Note that subscripts correspond to positions of
       <structfield>proallargtypes</structfield> not <structfield>proargtypes</structfield>.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>proargdefaults</structfield> <type>pg_node_tree</type>
      </para>
      <para>
       Expression trees (in <function>nodeToString()</function> representation)
       for default values.  This is a list with
       <structfield>pronargdefaults</structfield> elements, corresponding to the last
       <replaceable>N</replaceable> <emphasis>input</emphasis> arguments (i.e., the last
       <replaceable>N</replaceable> <structfield>proargtypes</structfield> positions).
       If none of the arguments have defaults, this field will be null.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>protrftypes</structfield> <type>oid[]</type>
       (references <link linkend="catalog-pg-type"><structname>pg_type</structname></link>.<structfield>oid</structfield>)
      </para>
      <para>
       An array of the argument/result data type(s) for which to apply
       transforms (from the function's <literal>TRANSFORM</literal>
       clause).  Null if none.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>prosrc</structfield> <type>text</type>
      </para>
      <para>
       This tells the function handler how to invoke the function.  It
       might be the actual source code of the function for interpreted
       languages, a link symbol, a file name, or just about anything
       else, depending on the implementation language/call convention.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>probin</structfield> <type>text</type>
      </para>
      <para>
       Additional information about how to invoke the function.
       Again, the interpretation is language-specific.
      </para></entry>
     </row>

     <row>
      <entry role="catalog_table_entry"><para role="column_definition">
       <structfield>prosqlbody</structfield> <type>pg_node_tree</type>
      </para>
      <para>
       Pre-parsed SQL function body.  This is used for SQL-language
       functions when the body is given in SQL-standard notation
       rather than as a string literal.

Title: pg_proc Catalog Columns (Continued): Argument Modes, Names, Defaults, Transforms, and Source
Summary
This section further describes the columns in the `pg_proc` catalog. It details `proargmodes` (argument modes array: IN, OUT, INOUT, VARIADIC, TABLE), `proargnames` (array of argument names), `proargdefaults` (expression trees for default argument values), `protrftypes` (argument/result data types for transforms), `prosrc` (function handler invocation details, like source code), `probin` (additional invocation information), and `prosqlbody` (pre-parsed SQL function body).