<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_function.sgml,v 1.19 2002/04/23 02:07:16 tgl Exp $
PostgreSQL documentation
-->

<refentry id="SQL-DROPFUNCTION">
 <refmeta>
  <refentrytitle id="SQL-DROPFUNCTION-TITLE">DROP FUNCTION</refentrytitle>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>
   DROP FUNCTION
  </refname>
  <refpurpose>
   remove a user-defined function
  </refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <refsynopsisdivinfo>
   <date>1999-07-20</date>
  </refsynopsisdivinfo>
  <synopsis>
DROP FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceable class="parameter">type</replaceable> [, ...] ] )
  </synopsis>

  <refsect2 id="R2-SQL-DROPFUNCTION-1">
   <refsect2info>
    <date>1998-04-15</date>
   </refsect2info>
   <title>
    Inputs
   </title>
   <para>
    <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 type of a parameter of the function.
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </para>
  </refsect2>

  <refsect2 id="R2-SQL-DROPFUNCTION-2">
   <refsect2info>
    <date>1998-04-15</date>
   </refsect2info>
   <title>
    Outputs
   </title>
   <para>

    <variablelist>
     <varlistentry>
      <term><computeroutput>
DROP
       </computeroutput></term>
      <listitem>
       <para>
	Message returned if the command completes successfully.
       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><computeroutput>
WARNING:  RemoveFunction: Function "<replaceable class="parameter">name</replaceable>" ("<replaceable class="parameter">types</replaceable>") does not exist
       </computeroutput></term>
      <listitem>
       <para>
	This message is given if the function specified does not
	exist in the current database.
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </para>
  </refsect2>
 </refsynopsisdiv>

 <refsect1 id="R1-SQL-DROPFUNCTION-1">
  <refsect1info>
   <date>1998-04-15</date>
  </refsect1info>
  <title>
   Description
  </title>
  <para>
   DROP FUNCTION will remove the definition of an existing
   function. To execute this command the user must be the
   owner of the function. The input argument types to the
   function must be specified, since several different functions
   may exist with the same name and different argument lists.
  </para>
 </refsect1>

 <refsect1 id="SQL-DROPFUNCTION-notes">
  <title>Notes</title>

   <para>
    Refer to
    <xref linkend="sql-createfunction">
    for information on creating functions.
   </para>

   <para>
    No checks are made to ensure that types, operators, access
    methods, or triggers that rely on the function have been removed first.
   </para>
 </refsect1>

 <refsect1 id="SQL-DROPFUNCTION-examples">
  <title>Examples</title>

  <para>
   This command removes the square root function:

<programlisting>
DROP FUNCTION sqrt(integer);
</programlisting>
  </para>
 </refsect1>

 <refsect1 id="SQL-DROPFUNCTION-compatibility">
  <title>Compatibility</title>
  
  <para>
   A <command>DROP FUNCTION</command> statement is defined in SQL99.  One of its syntax forms is:

<synopsis>
DROP FUNCTION <replaceable class="parameter">name</replaceable> (<replaceable>arg</>, ...) { RESTRICT | CASCADE }
</synopsis>

   where <literal>CASCADE</> specifies dropping all objects that
   depend on the function and <literal>RESTRICT</literal> refuses to
   drop the function if dependent objects exist.
  </para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <simplelist type="inline">
   <member><xref linkend="sql-createfunction"></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:
-->
