ALTER OPERATOR

ALTER OPERATOR — modifica a definição de um operador

Sinopse

ALTER OPERATOR nome ( { tipo_esquerdo | NONE } , tipo_direito )
    OWNER TO {
        novo_dono
      | CURRENT_ROLE
      | CURRENT_USER
      | SESSION_USER
    }

ALTER OPERATOR nome ( { tipo_esquerdo | NONE } , tipo_direito )
    SET SCHEMA novo_esquema

ALTER OPERATOR nome ( { tipo_esquerdo | NONE } , tipo_direito )
    SET ( {  RESTRICT = { estimador_de_seletividade_de_restrição | NONE }
           | JOIN = { estimador_de_seletividade_de_junção | NONE }
           | COMMUTATOR = comutador_do_operador
           | NEGATOR = negador_do_operador
           | HASHES
           | MERGES
          } [, ... ] )

Descrição

O comando ALTER OPERATOR altera a definição de um operador.

É necessário ser o dono do operador para usar o comando ALTER OPERATOR. Para alterar o dono, é necessário ser capaz de executar o comando SET ROLE para a função de banco de dados (role) que será a nova dona, e esta função de banco de dados precisa possuir o privilégio CREATE no esquema do operador. (Estas restrições impõem que alterar o dono não faz nada que não poderia ser feito excluindo e recriando a operador. Entretanto, um superusuário pode alterar o dono de qualquer operador.)

Parâmetros

nome

O nome (opcionalmente qualificado pelo esquema) do operador existente.

tipo_esquerdo

O tipo de dados do operando esquerdo do operador; deve ser escrito NONE se o operador não tiver operando esquerdo.

tipo_direito

O tipo de dados do operando direito do operador.

novo_dono

O novo dono do operador.

novo_esquema

O novo esquema para o operador.

estimador_de_seletividade_de_restrição

O nome da função estimadora de seletividade de restrição para este operador; deve ser escrito NONE para remover o estimador de seletividade existente.

estimador_de_seletividade_de_junção

O nome da função estimadora de seletividade de junção para este operador; deve ser escrito NONE para remover o estimador de seletividade existente.

comutador_do_operador

O comutador deste operador. Só pode ser alterado se o operador não possuir um comutador existente.

negador_do_operador

O negador deste operador. Só pode ser alterado se o operador não tiver um negador existente.

HASHES

Indica que este operador oferece suporte a junção por hash. Só pode ser ativado, não desativado.

MERGES

Indica que este operador oferece suporte a junção por mesclagem. Só pode ser ativado, não desativado.

Notes

Veja Seção 36.14 e Seção 36.15 para obter mais informações.

Como os comutadores vêm em pares que são comutadores entre si, ALTER OPERATOR SET COMMUTATOR também irá definir o comutador do comutador_do_operador como sendo o operador alvo. Da mesma maneira, ALTER OPERATOR SET NEGATOR também irá definir o negador do negador_do_operador como sendo o operador alvo. Portanto, é necessário ser dono do operador comutador ou negador, bem como do operador alvo.

Exemplos

Alterar o dono do operador personalizado a @@ b para o tipo de dados text:

ALTER OPERATOR @@ (text, text) OWNER TO joe;

Alterar as funções de estimativa de seletividade de restrição de junção do operador personalizado a && b para o tipo de dados int[]:

ALTER OPERATOR && (int[], int[]) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);

Marcar o operador && como sendo seu próprio comutador:

ALTER OPERATOR && (int[], int[]) SET (COMMUTATOR = &&);

Conformidade

Não existe o comando ALTER OPERATOR no padrão SQL.

Veja também

CREATE OPERATOR, DROP OPERATOR