|
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>36.41. routines</title><link rel="stylesheet" type="text/css" href="stylesheet.css" /><link rev="made" href="pgsql-docs@lists.postgresql.org" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="prev" href="infoschema-routine-privileges.html" title="36.40. routine_privileges" /><link rel="next" href="infoschema-schemata.html" title="36.42. schemata" /></head><body><div xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="5" align="center">36.41. <code xmlns="http://www.w3.org/1999/xhtml" class="literal">routines</code></th></tr><tr><td width="10%" align="left"><a accesskey="p" href="infoschema-routine-privileges.html" title="36.40. routine_privileges">Prev</a> </td><td width="10%" align="left"><a accesskey="u" href="information-schema.html" title="Chapter 36. The Information Schema">Up</a></td><th width="60%" align="center">Chapter 36. The Information Schema</th><td width="10%" align="right"><a accesskey="h" href="index.html" title="PostgreSQL 12.4 Documentation">Home</a></td><td width="10%" align="right"> <a accesskey="n" href="infoschema-schemata.html" title="36.42. schemata">Next</a></td></tr></table><hr></hr></div><div class="sect1" id="INFOSCHEMA-ROUTINES"><div class="titlepage"><div><div><h2 class="title" style="clear: both">36.41. <code class="literal">routines</code></h2></div></div></div><p>
- The view <code class="literal">routines</code> contains all functions and procedures in the
- current database. Only those functions and procedures are shown that the current
- user has access to (by way of being the owner or having some
- privilege).
- </p><div class="table" id="id-1.7.6.45.3"><p class="title"><strong>Table 36.39. <code class="literal">routines</code> Columns</strong></p><div class="table-contents"><table class="table" summary="routines Columns" border="1"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Name</th><th>Data Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">specific_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Name of the database containing the function (always the current database)</td></tr><tr><td><code class="literal">specific_schema</code></td><td><code class="type">sql_identifier</code></td><td>Name of the schema containing the function</td></tr><tr><td><code class="literal">specific_name</code></td><td><code class="type">sql_identifier</code></td><td>
- The <span class="quote">“<span class="quote">specific name</span>”</span> of the function. This is a
- name that uniquely identifies the function in the schema, even
- if the real name of the function is overloaded. The format of
- the specific name is not defined, it should only be used to
- compare it to other instances of specific routine names.
- </td></tr><tr><td><code class="literal">routine_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Name of the database containing the function (always the current database)</td></tr><tr><td><code class="literal">routine_schema</code></td><td><code class="type">sql_identifier</code></td><td>Name of the schema containing the function</td></tr><tr><td><code class="literal">routine_name</code></td><td><code class="type">sql_identifier</code></td><td>Name of the function (might be duplicated in case of overloading)</td></tr><tr><td><code class="literal">routine_type</code></td><td><code class="type">character_data</code></td><td>
- <code class="literal">FUNCTION</code> for a
- function, <code class="literal">PROCEDURE</code> for a procedure
- </td></tr><tr><td><code class="literal">module_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">module_schema</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">module_name</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">udt_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">udt_schema</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">udt_name</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">data_type</code></td><td><code class="type">character_data</code></td><td>
- Return data type of the function, if it is a built-in type, or
- <code class="literal">ARRAY</code> if it is some array (in that case, see
- the view <code class="literal">element_types</code>), else
- <code class="literal">USER-DEFINED</code> (in that case, the type is
- identified in <code class="literal">type_udt_name</code> and associated
- columns). Null for a procedure.
- </td></tr><tr><td><code class="literal">character_maximum_length</code></td><td><code class="type">cardinal_number</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">character_octet_length</code></td><td><code class="type">cardinal_number</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">character_set_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">character_set_schema</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">character_set_name</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">collation_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">collation_schema</code></td><td><code class="type">sql_identifier</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">collation_name</code></td><td><code class="type">sql_identifier</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">numeric_precision</code></td><td><code class="type">cardinal_number</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">numeric_precision_radix</code></td><td><code class="type">cardinal_number</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">numeric_scale</code></td><td><code class="type">cardinal_number</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">datetime_precision</code></td><td><code class="type">cardinal_number</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">interval_type</code></td><td><code class="type">character_data</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">interval_precision</code></td><td><code class="type">cardinal_number</code></td><td>Always null, since this information is not applied to return data types in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">type_udt_catalog</code></td><td><code class="type">sql_identifier</code></td><td>
- Name of the database that the return data type of the function
- is defined in (always the current database). Null for a procedure.
- </td></tr><tr><td><code class="literal">type_udt_schema</code></td><td><code class="type">sql_identifier</code></td><td>
- Name of the schema that the return data type of the function is
- defined in. Null for a procedure.
- </td></tr><tr><td><code class="literal">type_udt_name</code></td><td><code class="type">sql_identifier</code></td><td>
- Name of the return data type of the function. Null for a procedure.
- </td></tr><tr><td><code class="literal">scope_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">scope_schema</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">scope_name</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">maximum_cardinality</code></td><td><code class="type">cardinal_number</code></td><td>Always null, because arrays always have unlimited maximum cardinality in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">dtd_identifier</code></td><td><code class="type">sql_identifier</code></td><td>
- An identifier of the data type descriptor of the return data
- type of this function, unique among the data type descriptors
- pertaining to the function. This is mainly useful for joining
- with other instances of such identifiers. (The specific format
- of the identifier is not defined and not guaranteed to remain
- the same in future versions.)
- </td></tr><tr><td><code class="literal">routine_body</code></td><td><code class="type">character_data</code></td><td>
- If the function is an SQL function, then
- <code class="literal">SQL</code>, else <code class="literal">EXTERNAL</code>.
- </td></tr><tr><td><code class="literal">routine_definition</code></td><td><code class="type">character_data</code></td><td>
- The source text of the function (null if the function is not
- owned by a currently enabled role). (According to the SQL
- standard, this column is only applicable if
- <code class="literal">routine_body</code> is <code class="literal">SQL</code>, but
- in <span class="productname">PostgreSQL</span> it will contain
- whatever source text was specified when the function was
- created.)
- </td></tr><tr><td><code class="literal">external_name</code></td><td><code class="type">character_data</code></td><td>
- If this function is a C function, then the external name (link
- symbol) of the function; else null. (This works out to be the
- same value that is shown in
- <code class="literal">routine_definition</code>.)
- </td></tr><tr><td><code class="literal">external_language</code></td><td><code class="type">character_data</code></td><td>The language the function is written in</td></tr><tr><td><code class="literal">parameter_style</code></td><td><code class="type">character_data</code></td><td>
- Always <code class="literal">GENERAL</code> (The SQL standard defines
- other parameter styles, which are not available in <span class="productname">PostgreSQL</span>.)
- </td></tr><tr><td><code class="literal">is_deterministic</code></td><td><code class="type">yes_or_no</code></td><td>
- If the function is declared immutable (called deterministic in
- the SQL standard), then <code class="literal">YES</code>, else
- <code class="literal">NO</code>. (You cannot query the other volatility
- levels available in <span class="productname">PostgreSQL</span> through the information schema.)
- </td></tr><tr><td><code class="literal">sql_data_access</code></td><td><code class="type">character_data</code></td><td>
- Always <code class="literal">MODIFIES</code>, meaning that the function
- possibly modifies SQL data. This information is not useful for
- <span class="productname">PostgreSQL</span>.
- </td></tr><tr><td><code class="literal">is_null_call</code></td><td><code class="type">yes_or_no</code></td><td>
- If the function automatically returns null if any of its
- arguments are null, then <code class="literal">YES</code>, else
- <code class="literal">NO</code>. Null for a procedure.
- </td></tr><tr><td><code class="literal">sql_path</code></td><td><code class="type">character_data</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">schema_level_routine</code></td><td><code class="type">yes_or_no</code></td><td>
- Always <code class="literal">YES</code> (The opposite would be a method
- of a user-defined type, which is a feature not available in
- <span class="productname">PostgreSQL</span>.)
- </td></tr><tr><td><code class="literal">max_dynamic_result_sets</code></td><td><code class="type">cardinal_number</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">is_user_defined_cast</code></td><td><code class="type">yes_or_no</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">is_implicitly_invocable</code></td><td><code class="type">yes_or_no</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">security_type</code></td><td><code class="type">character_data</code></td><td>
- If the function runs with the privileges of the current user,
- then <code class="literal">INVOKER</code>, if the function runs with the
- privileges of the user who defined it, then
- <code class="literal">DEFINER</code>.
- </td></tr><tr><td><code class="literal">to_sql_specific_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">to_sql_specific_schema</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">to_sql_specific_name</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">as_locator</code></td><td><code class="type">yes_or_no</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">created</code></td><td><code class="type">time_stamp</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">last_altered</code></td><td><code class="type">time_stamp</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">new_savepoint_level</code></td><td><code class="type">yes_or_no</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">is_udt_dependent</code></td><td><code class="type">yes_or_no</code></td><td>
- Currently always <code class="literal">NO</code>. The alternative
- <code class="literal">YES</code> applies to a feature not available in
- <span class="productname">PostgreSQL</span>.
- </td></tr><tr><td><code class="literal">result_cast_from_data_type</code></td><td><code class="type">character_data</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_as_locator</code></td><td><code class="type">yes_or_no</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_char_max_length</code></td><td><code class="type">cardinal_number</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_char_octet_length</code></td><td><code class="type">character_data</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_char_set_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_char_set_schema</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_char_set_name</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_collation_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_collation_schema</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_collation_name</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_numeric_precision</code></td><td><code class="type">cardinal_number</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_numeric_precision_radix</code></td><td><code class="type">cardinal_number</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_numeric_scale</code></td><td><code class="type">cardinal_number</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_datetime_precision</code></td><td><code class="type">character_data</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_interval_type</code></td><td><code class="type">character_data</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_interval_precision</code></td><td><code class="type">cardinal_number</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_type_udt_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_type_udt_schema</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_type_udt_name</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_scope_catalog</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_scope_schema</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_scope_name</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_maximum_cardinality</code></td><td><code class="type">cardinal_number</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr><tr><td><code class="literal">result_cast_dtd_identifier</code></td><td><code class="type">sql_identifier</code></td><td>Applies to a feature not available in <span class="productname">PostgreSQL</span></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="infoschema-routine-privileges.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="information-schema.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="infoschema-schemata.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">36.40. <code class="literal">routine_privileges</code> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 36.42. <code class="literal">schemata</code></td></tr></table></div></body></html>
|