<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_function.sgml,v 1.14 2001/09/13 19:40:34 petere Exp $
Postgres 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 of an existing function.
       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable class="parameter">type</replaceable></term>
      <listitem>
       <para>
	The type of function parameters.
       </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>
NOTICE 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 references to an existing C
   function. To execute this command the user must be the
   owner of the function. The input argument types to the
   function must be specified, as only the function with the
   given name and argument types will be removed.
  </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 or access
    methods 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:
-->
