/
githubmirror
/
postgres
Обзор
Документация
Войти
/
githubmirror
/
postgres
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
doc/src/sgml/ref/alter_aggregate.sgml
203 строки
6 KB
Robert Haas
More documentation update for GRANT ... WITH SET OPTION.
16 янв 2023, 18:35
16 янв 2023, 18:35
3cdf750
Код
Авторство
О чём код?
<!-- doc/src/sgml/ref/alter_aggregate.sgml PostgreSQL documentation --> <refentry id="sql-alteraggregate"> <indexterm zone="sql-alteraggregate"> <primary>ALTER AGGREGATE</primary> </indexterm> <refmeta> <refentrytitle>ALTER AGGREGATE</refentrytitle> <manvolnum>7</manvolnum> <refmiscinfo>SQL - Language Statements</refmiscinfo> </refmeta> <refnamediv> <refname>ALTER AGGREGATE</refname> <refpurpose>change the definition of an aggregate function</refpurpose> </refnamediv> <refsynopsisdiv> <synopsis> ALTER AGGREGATE <replaceable>name</replaceable> ( <replaceable>aggregate_signature</replaceable> ) RENAME TO <replaceable>new_name</replaceable> ALTER AGGREGATE <replaceable>name</replaceable> ( <replaceable>aggregate_signature</replaceable> ) OWNER TO { <replaceable>new_owner</replaceable> | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER AGGREGATE <replaceable>name</replaceable> ( <replaceable>aggregate_signature</replaceable> ) SET SCHEMA <replaceable>new_schema</replaceable> <phrase>where <replaceable>aggregate_signature</replaceable> is:</phrase> * | [ <replaceable>argmode</replaceable> ] [ <replaceable>argname</replaceable> ] <replaceable>argtype</replaceable> [ , ... ] | [ [ <replaceable>argmode</replaceable> ] [ <replaceable>argname</replaceable> ] <replaceable>argtype</replaceable> [ , ... ] ] ORDER BY [ <replaceable>argmode</replaceable> ] [ <replaceable>argname</replaceable> ] <replaceable>argtype</replaceable> [ , ... ] </synopsis> </refsynopsisdiv> <refsect1> <title>Description</title> <para> <command>ALTER AGGREGATE</command> changes the definition of an aggregate function. </para> <para> You must own the aggregate function to use <command>ALTER AGGREGATE</command>. To change the schema of an aggregate function, you must also have <literal>CREATE</literal> privilege on the new schema. To alter the owner, you must be able to <literal>SET ROLE</literal> to the new owning role, and that role must have <literal>CREATE</literal> privilege on the aggregate function's schema. (These restrictions enforce that altering the owner doesn't do anything you couldn't do by dropping and recreating the aggregate function. However, a superuser can alter ownership of any aggregate function anyway.) </para> </refsect1> <refsect1> <title>Parameters</title> <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">argmode</replaceable></term> <listitem> <para> The mode of an argument: <literal>IN</literal> or <literal>VARIADIC</literal>. If omitted, the default is <literal>IN</literal>. </para> </listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">argname</replaceable></term> <listitem> <para> The name of an argument. Note that <command>ALTER AGGREGATE</command> does not actually pay any attention to argument names, since only the argument data types are needed to determine the aggregate function's identity. </para> </listitem> </varlistentry> <varlistentry> <term><replaceable class="parameter">argtype</replaceable></term> <listitem> <para> 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>