Home Explore Blog CI



postgresql

3rd chunk of `doc/src/sgml/ref/alter_aggregate.sgml`
52d1a4d7bc6a1754cb825b61dc801ff7efbddb6500bffe990000000100000c4c
    An input data type on which the aggregate function operates.
      To reference a zero-argument aggregate function, write <literal>*</literal>
      in place of the list of argument specifications.
      To reference an ordered-set aggregate function, write
      <literal>ORDER BY</literal> between the direct and aggregated argument
      specifications.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">new_name</replaceable></term>
    <listitem>
     <para>
      The new name of the aggregate function.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">new_owner</replaceable></term>
    <listitem>
     <para>
      The new owner of the aggregate function.
     </para>
    </listitem>
   </varlistentry>

   <varlistentry>
    <term><replaceable class="parameter">new_schema</replaceable></term>
    <listitem>
     <para>
      The new schema for the aggregate function.
     </para>
    </listitem>
   </varlistentry>
  </variablelist>
 </refsect1>

 <refsect1>
  <title>Notes</title>

   <para>
    The recommended syntax for referencing an ordered-set aggregate
    is to write <literal>ORDER BY</literal> between the direct and aggregated
    argument specifications, in the same style as in
    <link linkend="sql-createaggregate"><command>CREATE AGGREGATE</command></link>.  However, it will also work to
    omit <literal>ORDER BY</literal> and just run the direct and aggregated
    argument specifications into a single list.  In this abbreviated form,
    if <literal>VARIADIC "any"</literal> was used in both the direct and
    aggregated argument lists, write <literal>VARIADIC "any"</literal> only once.
   </para>
 </refsect1>

 <refsect1>
  <title>Examples</title>

  <para>
   To rename the aggregate function <literal>myavg</literal> for type
   <type>integer</type> to <literal>my_average</literal>:
<programlisting>
ALTER AGGREGATE myavg(integer) RENAME TO my_average;
</programlisting>
  </para>

  <para>
   To change the owner of the aggregate function <literal>myavg</literal> for type
   <type>integer</type> to <literal>joe</literal>:
<programlisting>
ALTER AGGREGATE myavg(integer) OWNER TO joe;
</programlisting>
  </para>

  <para>
   To move the ordered-set aggregate <literal>mypercentile</literal> with
   direct argument of type <type>float8</type> and aggregated argument
   of type <type>integer</type> into schema <literal>myschema</literal>:
<programlisting>
ALTER AGGREGATE mypercentile(float8 ORDER BY integer) SET SCHEMA myschema;
</programlisting>
   This will work too:
<programlisting>
ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;
</programlisting></para>
 </refsect1>

 <refsect1>
  <title>Compatibility</title>

  <para>
   There is no <command>ALTER AGGREGATE</command> statement in the SQL
   standard.
  </para>
 </refsect1>

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

  <simplelist type="inline">
   <member><xref linkend="sql-createaggregate"/></member>
   <member><xref linkend="sql-dropaggregate"/></member>
  </simplelist>
 </refsect1>
</refentry>

Title: ALTER AGGREGATE: Parameters, Notes, Examples, Compatibility, and Related Commands
Summary
This section covers the remaining parameters for ALTER AGGREGATE: 'new_name', 'new_owner', and 'new_schema'. It also provides notes on ordered-set aggregates, examples of renaming, changing ownership, and moving an aggregate to a different schema. Finally, it mentions that ALTER AGGREGATE is not part of the SQL standard and lists related commands like CREATE AGGREGATE and DROP AGGREGATE.