ALTER OPERATOR

ALTER OPERATOR — cambiar la definición de un operador

Synopsis

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    SET SCHEMA new_schema

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    SET ( {  RESTRICT = { res_proc | NONE }
           | JOIN = { join_proc | NONE }
           | COMMUTATOR = com_op
           | NEGATOR = neg_op
           | HASHES
           | MERGES
          } [, ... ] )

Descripción

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).

Parámetros

name

El 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_type

El tipo de datos del operando derecho del operador.

new_owner

El nuevo propietario del operador.

new_schema

El nuevo esquema para el operador.

res_proc

La función estimadora de selectividad de restricción para este operador; escribe NONE para eliminar el estimador de selectividad existente.

join_proc

La función estimadora de selectividad de unión (join) para este operador; escribe NONE para eliminar el estimador de selectividad existente.

com_op

El conmutador de este operador. Solo se puede cambiar si el operador no tiene un conmutador existente.

neg_op

El negador de este operador. Solo se puede cambiar si el operador no tiene un negador existente.

HASHES

Indica que este operador puede admitir una unión de hash (hash join). Solo se puede activar, no desactivar.

MERGES

Indica que este operador puede admitir una unión de ordenación/fusión (merge join). Solo se puede activar, no desactivar.

Notas

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.

Ejemplos

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 = &&);

Compatibilidad

No existe la sentencia ALTER OPERATOR en el estándar SQL.

Véase también

CREATE OPERATOR, DROP OPERATOR