<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_function.sgml,v 1.9 2000/12/25 23:15:26 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>
   Removes a user-defined C 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>

  <refsect2 id="R2-SQL-DROPFUNCTION-3">
   <refsect2info>
    <date>1998-04-15</date>
   </refsect2info>
   <title>
    Notes
   </title>

   <para>
    Refer to
    <xref linkend="sql-createfunction" endterm="sql-createfunction-title">
    for information on creating aggregate 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>
  </refsect2>
 </refsect1>

 <refsect1 id="R1-SQL-DROPFUNCTION-2">
  <title>
   Usage
  </title>

  <para>
   This command removes the square root function:

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

 <refsect1 id="R1-SQL-DROPFUNCTION-4">
  <title>
   Compatibility
  </title>
  
  <refsect2 id="R2-SQL-DROPFUNCTION-4">
   <refsect2info>
    <date>1999-07-20</date>
   </refsect2info>
   <title>
    SQL92
   </title>

   <para>
    <command>DROP FUNCTION</command>
    is a <productname>Postgres</productname> language extension.
   </para>
  </refsect2>

  <refsect2 id="R2-SQL-DROPFUNCTION-5">
   <refsect2info>
    <date>1998-04-15</date>
   </refsect2info>
   <title>
    SQL/PSM
   </title>
   <para>
    SQL/PSM is a proposed standard to enable function extensibility.
    The SQL/PSM DROP FUNCTION statement has the following syntax:

    <synopsis>
DROP [ SPECIFIC ] FUNCTION <replaceable class="parameter">name</replaceable> { RESTRICT | CASCADE }
    </synopsis>
   </para>
  </refsect2>
 </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:
-->
