ALTER AGGREGATE — Modifier la définition d'une fonction d'agrégat
ALTER AGGREGATEnom
(signature_agrégat
) RENAME TOnouveau_nom
ALTER AGGREGATEnom
(signature_agrégat
) OWNER TO {nouveau_propriétaire
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER AGGREGATEnom
(signature_agrégat
) SET SCHEMAnouveau_schéma
oùsignature_agrégat
correspond à : * | [mode_arg
] [nom_arg
]type_arg
[ , ... ] | [ [mode_arg
] [nom_arg
]type_arg
[ , ... ] ] ORDER BY [mode_arg
] [nom_arg
]type_arg
[ , ... ]
ALTER AGGREGATE
change la définition d'une fonction
d'agrégat.
Seul le propriétaire de la fonction d'agrégat peut utiliser ALTER
AGGREGATE
. Pour modifier le schéma d'une fonction d'agrégat, il est
nécessaire de posséder le droit CREATE
sur le nouveau
schéma.
Pour modifier le propriétaire, vous devez être capable d'utiliser
SET ROLE
vers le nouveau rôle propriétaire, et
le rôle doit avoir le droit CREATE
sur le schéma de la
fonction d'agrégat.
Ces restrictions assurent que la modification du propriétaire ne
permet pas d'aller au-delà de ce que permet la suppression et la recréation
d'une fonction d'agrégat. Toutefois, un superutilisateur peut modifier le
propriétaire de n'importe quelle fonction d'agrégat.
nom
Le nom (éventuellement qualifié du nom du schéma) de la fonction d'agrégat.
mode_arg
Le mode d'un argument : IN
ou
VARIADIC
. La valeur par défaut est
IN
.
nom_arg
Le nom d'un argument. Notez que ALTER AGGREGATE
ne
fait pas réellement attention aux noms des arguments car seuls les types
de données des arguments sont nécessaires pour déterminer l'identité de la
fonction d'agrégat.
type_arg
Un type de données en entrée sur lequel la fonction d'agrégat opère. Pour
référencer une fonction d'agrégat sans argument, écrivez
*
à la place de la liste des arguments. Pour
référencer une fonction d'agrégat avec ensemble trié, ajoutez
ORDER BY
entre les spécifications des arguments direct
et agrégé.
nouveau_nom
Le nouveau nom de la fonction d'agrégat.
nouveau_propriétaire
Le nouveau propriétaire de la fonction d'agrégat.
nouveau_schema
Le nouveau schéma de la fonction d'agrégat.
La syntaxe recommandée pour référencer un agrégat dont l'ensemble est trié
revient à écrire ORDER BY
entre les spécifications de
l'argument direct et de l'argument agrégé, dans le même style que CREATE AGGREGATE
.
Néanmoins, cela fonctionnera aussi d'omettre ORDER BY
en
plaçant uniquement les spécifications de l'argument direct et de l'argument
agrégé. Dans cette forme abréviée, si VARIADIC "any"
a été
utilisé à la fois dans l'argument direct et l'argument agrégé, écrire
VARIADIC "any"
seulement une fois.
Renommer la fonction d'agrégat mamoyenne
de type
integer
en ma_moyenne
:
ALTER AGGREGATE mamoyenne(integer) RENAME TO ma_moyenne;
Changer le propriétaire de la fonction d'agrégat mamoyenne
de type integer
en joe
:
ALTER AGGREGATE mamoyenne(integer) OWNER TO joe;
Pour déplacer l'agrégat mon_pourcentage
dont l'argument
direct est de type float8
et l'argument agrégé de type
integer
dans le schéma mon_schema
:
ALTER AGGREGATE mamoyenne(integer) SET SCHEMA mon_schema; ALTER AGGREGATE mon_pourcentage(float8 ORDER BY integer) SET SCHEMA mon_schema;
Ceci fonctionne aussi :
ALTER AGGREGATE mon_pourcentage(float8, integer) SET SCHEMA mon_schema;
Il n'y a pas de commande ALTER AGGREGATE
dans le standard
SQL.