<!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_aggregate.sgml,v 1.19 2002/07/12 18:43:12 tgl Exp $
PostgreSQL documentation
-->

<refentry id="SQL-DROPAGGREGATE">
 <refmeta>
  <refentrytitle id="SQL-DROPAGGREGATE-TITLE">DROP AGGREGATE</refentrytitle>
  <refmiscinfo>SQL - Language Statements</refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>
   DROP AGGREGATE
  </refname>
  <refpurpose>
   remove a user-defined aggregate function
  </refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <refsynopsisdivinfo>
   <date>1999-07-20</date>
  </refsynopsisdivinfo>
  <synopsis>
DROP AGGREGATE <replaceable class="PARAMETER">name</replaceable> ( <replaceable class="PARAMETER">type</replaceable> ) [ CASCADE | RESTRICT ]
  </synopsis>

  <refsect2 id="R2-SQL-DROPAGGREGATE-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 aggregate function.
       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><replaceable class="parameter">type</replaceable></term>
      <listitem>
       <para>
	The input data type of the aggregate function,
	or <literal>*</literal> if the function accepts any input type.
	(Refer to the <citetitle>PostgreSQL User's Guide</citetitle> for
	further information about data types.)
	<comment>This should become a cross-reference rather than a
	 hard-coded chapter number</comment>
       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term>CASCADE</term>
      <listitem>
       <para>
        Automatically drop objects that depend on the aggregate.
       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term>RESTRICT</term>
      <listitem>
       <para>
        Refuse to drop the aggregate if there are any dependent objects.
	This is the default.
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </para>
  </refsect2>

  <refsect2 id="R2-SQL-DROPAGGREGATE-2">
   <refsect2info>
    <date>1998-04-15</date>
   </refsect2info>
   <title>
    Outputs
   </title>
   <para>
    <variablelist>
     <varlistentry>
      <term><computeroutput>
DROP AGGREGATE
       </computeroutput></term>
      <listitem>
       <para>
	Message returned if the command is successful.
       </para>
      </listitem>
     </varlistentry>
     <varlistentry>
      <term><computeroutput>
ERROR: RemoveAggregate: aggregate '<replaceable class="parameter">name</replaceable>' for type <replaceable class="parameter">type</replaceable> does not exist
       </computeroutput></term>
      <listitem>
       <para>
	This message occurs if the aggregate function specified does not
	exist in the database.
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </para>
  </refsect2>
 </refsynopsisdiv>

 <refsect1 id="R1-SQL-DROPAGGREGATE-1">
  <refsect1info>
   <date>1998-04-15</date>
  </refsect1info>
  <title>
   Description
  </title>
  <para>
   <command>DROP AGGREGATE</command> will delete an existing
   aggregate definition. To execute this command the current
   user must be the owner of the aggregate.
  </para>

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

   <para>
    Use
    <xref linkend="sql-createaggregate" endterm="sql-createaggregate-title">
    to create aggregate functions.
   </para>
  </refsect2>
 </refsect1>

 <refsect1 id="R1-SQL-DROPAGGREGATE-2">
  <title>
   Usage
  </title>
  <para>
   To remove the <literal>myavg</literal> aggregate for type
   <literal>int4</literal>:
  </para>
  <programlisting>
DROP AGGREGATE myavg(int4);
  </programlisting>
 </refsect1>

 <refsect1 id="R1-SQL-DROPAGGREGATE-3">
  <title>
   Compatibility
  </title>

  <refsect2 id="R2-SQL-DROPAGGREGATE-4">
   <refsect2info>
    <date>1998-04-15</date>
   </refsect2info>
   <title>
    SQL92
   </title>

   <para>
    There is no <command>DROP AGGREGATE</command> statement
    in <acronym>SQL92</acronym>; the statement is a
    <productname>PostgreSQL</productname>
    language extension.
   </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:
-->
