ALTER OPERATOR — cambiar la definición de un operador
ALTER OPERATORname( {left_type| NONE } ,right_type) OWNER TO {new_owner| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER OPERATORname( {left_type| NONE } ,right_type) SET SCHEMAnew_schemaALTER OPERATORname( {left_type| NONE } ,right_type) SET ( { RESTRICT = {res_proc| NONE } | JOIN = {join_proc| NONE } | COMMUTATOR =com_op| NEGATOR =neg_op| HASHES | MERGES } [, ... ] )
ALTER OPERATOR cambia la definición de
un operador.
Debes ser el propietario del operador para usar ALTER OPERATOR.
Para cambiar el propietario, debes ser capaz de hacer SET ROLE al
nuevo rol propietario, y ese rol debe tener el privilegio CREATE
en el esquema del operador.
(Estas restricciones garantizan que cambiar el propietario no permita hacer
nada que no pudieras hacer eliminando y volviendo a crear el operador.
Sin embargo, un superusuario puede cambiar la propiedad de cualquier operador de todos modos).
nameEl nombre (opcionalmente calificado por esquema) de un operador existente.
left_type
El tipo de datos del operando izquierdo del operador; escribe
NONE si el operador no tiene operando izquierdo.
right_typeEl tipo de datos del operando derecho del operador.
new_ownerEl nuevo propietario del operador.
new_schemaEl nuevo esquema para el operador.
res_procLa función estimadora de selectividad de restricción para este operador; escribe NONE para eliminar el estimador de selectividad existente.
join_procLa función estimadora de selectividad de unión (join) para este operador; escribe NONE para eliminar el estimador de selectividad existente.
com_opEl conmutador de este operador. Solo se puede cambiar si el operador no tiene un conmutador existente.
neg_opEl negador de este operador. Solo se puede cambiar si el operador no tiene un negador existente.
HASHESIndica que este operador puede admitir una unión de hash (hash join). Solo se puede activar, no desactivar.
MERGESIndica que este operador puede admitir una unión de ordenación/fusión (merge join). Solo se puede activar, no desactivar.
Consulta Section 36.14 y Section 36.15 para obtener más información.
Dado que los conmutadores vienen en pares que son conmutadores entre sí,
ALTER OPERATOR SET COMMUTATOR también establecerá el
conmutador de com_op para
que sea el operador objetivo. Del mismo modo, ALTER OPERATOR SET
NEGATOR también establecerá el negador de
la neg_op para que sea el
operador objetivo. Por lo tanto, debes ser propietario del operador conmutador o
negador, así como del operador objetivo.
Cambiar el propietario de un operador personalizado a @@ b para el tipo text:
ALTER OPERATOR @@ (text, text) OWNER TO joe;
Cambiar las funciones estimadoras de selectividad de restricción y de unión de un
operador personalizado a && b para el
tipo int[]:
ALTER OPERATOR && (int[], int[]) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);
Marcar el operador && como su propio
conmutador:
ALTER OPERATOR && (int[], int[]) SET (COMMUTATOR = &&);
No existe la sentencia ALTER OPERATOR en
el estándar SQL.