
whether or not it is a security definer. Changing a function's strictness is required by SQL2003, and the other capabilities make sense. Also, allow an optional RESTRICT noise word to be specified, for SQL conformance. Some trivial regression tests added and the documentation has been updated.
204 lines
5.9 KiB
Plaintext
204 lines
5.9 KiB
Plaintext
<!--
|
|
$PostgreSQL: pgsql/doc/src/sgml/ref/alter_function.sgml,v 1.6 2005/03/14 00:19:36 neilc Exp $
|
|
PostgreSQL documentation
|
|
-->
|
|
|
|
<refentry id="SQL-ALTERFUNCTION">
|
|
<refmeta>
|
|
<refentrytitle id="SQL-ALTERFUNCTION-TITLE">ALTER FUNCTION</refentrytitle>
|
|
<refmiscinfo>SQL - Language Statements</refmiscinfo>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>ALTER FUNCTION</refname>
|
|
<refpurpose>change the definition of a function</refpurpose>
|
|
</refnamediv>
|
|
|
|
<indexterm zone="sql-alterfunction">
|
|
<primary>ALTER FUNCTION</primary>
|
|
</indexterm>
|
|
|
|
<refsynopsisdiv>
|
|
<synopsis>
|
|
ALTER FUNCTION <replaceable>name</replaceable> ( [ <replaceable class="parameter">type</replaceable> [, ...] ] ) <replaceable class="PARAMETER">action</replaceable> [, ... ] [ RESTRICT ]
|
|
ALTER FUNCTION <replaceable>name</replaceable> ( [ <replaceable class="parameter">type</replaceable> [, ...] ] ) RENAME TO <replaceable>newname</replaceable>
|
|
ALTER FUNCTION <replaceable>name</replaceable> ( [ <replaceable class="parameter">type</replaceable> [, ...] ] ) OWNER TO <replaceable>newowner</replaceable>
|
|
|
|
where <replaceable class="PARAMETER">action</replaceable> is one of:
|
|
|
|
CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
|
|
IMMUTABLE | STABLE | VOLATILE
|
|
[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
|
|
</synopsis>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para>
|
|
<command>ALTER FUNCTION</command> changes the definition of a
|
|
function.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Parameters</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">name</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The name (optionally schema-qualified) of an existing function.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">type</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The data type of an argument of the function.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">newname</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The new name of the function.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><replaceable class="parameter">newowner</replaceable></term>
|
|
<listitem>
|
|
<para>
|
|
The new owner of the function. To change the owner of a
|
|
function, you must be a superuser. Note that if the function is
|
|
marked <literal>SECURITY DEFINER</literal>, it will subsequently
|
|
execute as the new owner.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>CALLED ON NULL INPUT</literal></term>
|
|
<term><literal>RETURNS NULL ON NULL INPUT</literal></term>
|
|
<term><literal>STRICT</literal></term>
|
|
|
|
<listitem>
|
|
<para>
|
|
<literal>CALLED ON NULL INPUT</literal> changes the function so
|
|
that it will be invoked when some or all of its arguments are
|
|
null. <literal>RETURNS NULL ON NULL INPUT</literal> or
|
|
<literal>STRICT</literal> changes the function so that it
|
|
always returns null if any of its arguments are null. See <xref
|
|
linkend="sql-createfunction"> for more information.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>IMMUTABLE</literal></term>
|
|
<term><literal>STABLE</literal></term>
|
|
<term><literal>VOLATILE</literal></term>
|
|
|
|
<listitem>
|
|
<para>
|
|
Change the volatility of the function to the specified
|
|
type. See <xref linkend="sql-createfunction"> for more
|
|
information about function volatility.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal><optional>EXTERNAL</optional> SECURITY INVOKER</literal></term>
|
|
<term><literal><optional>EXTERNAL</optional> SECURITY DEFINER</literal></term>
|
|
|
|
<listitem>
|
|
<para>
|
|
Change whether the function is a security definer or not. The
|
|
key word <literal>EXTERNAL</literal> is ignored for SQL
|
|
conformance. See <xref linkend="sql-createfunction"> for more
|
|
information about this capability.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><literal>RESTRICT</literal></term>
|
|
|
|
<listitem>
|
|
<para>
|
|
Ignored for conformance with the SQL standard.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Examples</title>
|
|
|
|
<para>
|
|
To rename the function <literal>sqrt</literal> for type
|
|
<type>integer</type> to <literal>square_root</literal>:
|
|
<programlisting>
|
|
ALTER FUNCTION sqrt(integer) RENAME TO square_root;
|
|
</programlisting>
|
|
</para>
|
|
|
|
<para>
|
|
To change the owner of the function <literal>sqrt</literal> for type
|
|
<type>integer</type> to <literal>joe</literal>:
|
|
<programlisting>
|
|
ALTER FUNCTION sqrt(integer) OWNER TO joe;
|
|
</programlisting>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Compatibility</title>
|
|
|
|
<para>
|
|
This statement is partially compatible with the <command>ALTER
|
|
FUNCTION</> statement in the SQL standard. The standard allows more
|
|
properties of a function to be modified, but does not provide the
|
|
ability to rename a function, make a function a security definer,
|
|
or change the owner or volatility of a function. The standard also
|
|
requires the <literal>RESTRICT</> key word; it is optional in
|
|
<productname>PostgreSQL</>.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
|
|
<simplelist type="inline">
|
|
<member><xref linkend="sql-createfunction" endterm="sql-createfunction-title"></member>
|
|
<member><xref linkend="sql-dropfunction" endterm="sql-dropfunction-title"></member>
|
|
</simplelist>
|
|
</refsect1>
|
|
</refentry>
|
|
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:nil
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"../reference.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:"/usr/lib/sgml/catalog"
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
-->
|