ALTER EXTENSION

ALTER EXTENSION — modifica a definição de uma extensão

Sinopse

ALTER EXTENSION nome UPDATE [ TO nova_versão ]
ALTER EXTENSION nome SET SCHEMA novo_esquema
ALTER EXTENSION nome ADD objeto_membro
ALTER EXTENSION nome DROP objeto_membro

onde objeto_membro é:

  ACCESS METHOD nome_do_objeto |
  AGGREGATE nome_da_agregação ( assinatura_da_agregação ) |
  CAST (tipo_de_dados_origem AS tipo_de_dados_destino) |
  COLLATION nome_do_objeto |
  CONVERSION nome_do_objeto |
  DOMAIN nome_do_objeto |
  EVENT TRIGGER nome_do_objeto |
  FOREIGN DATA WRAPPER nome_do_objeto |
  FOREIGN TABLE nome_do_objeto |
  FUNCTION nome_da_função​
      [ ( [ [ modo_do_argumento ]​
      [ nome_do_argumento ]​
      tipo_de_dados_do_argumento [, ...] ] ) ] |
  MATERIALIZED VIEW nome_do_objeto |
  OPERATOR nome_do_operador​
      (tipo_esquerdo,​
      tipo_direito) |
  OPERATOR CLASS nome_do_objeto​
      USING método_de_índice |
  OPERATOR FAMILY nome_do_objeto​
      USING método_de_índice |
  [ PROCEDURAL ] LANGUAGE nome_do_objeto |
  PROCEDURE nome_do_procedimento​
      [ ( [ [ modo_do_argumento ]​
      [ nome_do_argumento ]​
      tipo_de_dados_do_argumento [, ...] ] ) ] |
  ROUTINE nome_da_rotina​
      [ ( [ [ modo_do_argumento ]​
      [ nome_do_argumento ]​
      tipo_de_dados_do_argumento [, ...] ] ) ] |
  SCHEMA nome_do_objeto |
  SEQUENCE nome_do_objeto |
  SERVER nome_do_objeto |
  TABLE nome_do_objeto |
  TEXT SEARCH CONFIGURATION nome_do_objeto |
  TEXT SEARCH DICTIONARY nome_do_objeto |
  TEXT SEARCH PARSER nome_do_objeto |
  TEXT SEARCH TEMPLATE nome_do_objeto |
  TRANSFORM FOR nome_do_tipo_de_dados LANGUAGE nome_da_linguagem |
  TYPE nome_do_objeto |
  VIEW nome_do_objeto

e assinatura_da_agregação é:

* |
[ modo_do_argumento ] [ nome_do_argumento ] tipo_de_dados_do_argumento
[ , ... ]
|
[ [ modo_do_argumento ] [ nome_do_argumento ] tipo_de_dados_do_argumento
[ , ... ] ]
ORDER BY [ modo_do_argumento ] [ nome_do_argumento ] tipo_de_dados_do_argumento [ , ... ]

Descrição

O comando ALTER EXTENSION altera a definição de uma extensão instalada. Existem várias subformas:

UPDATE

Esta forma atualiza a extensão para uma versão mais recente. A extensão deve fornecer um script de atualização adequado (ou série de scripts), que possa atualizar a versão atualmente instalada para a versão solicitada.

SET SCHEMA

Esta forma move os objetos da extensão para outro esquema. A extensão deverá ser relocável para que este comando seja bem-sucedido.

ADD objeto_membro

Esta forma adiciona um objeto existente à extensão. É útil principalmente em scripts de atualização de extensão. O objeto será em seguida tratado como membro da extensão; notadamente, só poderá ser removido removendo a extensão.

DROP objeto_membro

Esta forma remove um objeto como membro da extensão. É útil principalmente em scripts de atualização de extensão. O objeto em si não é removido, apenas dissociado da extensão.

Veja Acondicionamento de objetos relacionados em uma extensão para obter mais informações sobre estas operações.

É necessário ser o dono da extensão para usar o comando ALTER EXTENSION. As formas ADD/DROP requerem ser o dono do objeto adicionado/removido também.

Parâmetros

nome

O nome da extensão instalada.

nova_versão

A nova versão desejada da extensão. Pode ser escrito como identificador, ou literal cadeia de caracteres. Se não for especificado, o comando ALTER EXTENSION UPDATE tentará atualizar para o que for mostrado como a versão padrão no arquivo de controle da extensão.

novo_esquema

O novo esquema para a extensão.

nome_do_objeto
nome_da_agregação
nome_da_função
nome_do_operador
nome_do_procedimento
nome_da_rotina

O nome do objeto a ser adicionado ou removido da extensão. Os nomes de tabelas, agregações, domínios, tabelas estrangeiras, funções, operadores, classes de operador, famílias de operador, procedimentos, rotinas, sequências, objetos de procura de texto, tipos de dados e visões podem ser qualificados pelo esquema.

tipo_de_dados_origem

O nome do tipo de dados de origem da conversão.

tipo_de_dados_destino

O nome do tipo de dados de destino da conversão.

modo_do_argumento

O modo do argumento da função, procedimento, ou agregação: IN, OUT, INOUT, ou VARIADIC. Se omitido, o padrão é IN. Note que o comando ALTER EXTENSION, na verdade, não presta atenção aos argumentos OUT, porque apenas os argumentos de entrada são necessários para determinar a identidade da função. Assim, basta listar os argumentos IN, INOUT, e VARIADIC.

nome_do_argumento

O nome do argumento da função, procedimento ou agregação. Note que o comando ALTER EXTENSION, na verdade, não presta atenção aos nomes dos argumentos, porque apenas os tipos de dados dos argumentos são necessários para determinar a identidade da função.

tipo_de_dados_do_argumento

O tipo de dados do argumento da função, procedimento ou agregação.

tipo_esquerdo
tipo_direito

Os tipos de dados dos argumentos do operador (opcionalmente qualificados pelo esquema). Deve-se escrever NONE para o argumento ausente de um operador de prefixo.

PROCEDURAL

Esta é uma palavra ruído.

nome_do_tipo_de_dados

O nome do tipo de dados da transformação.

nome_da_linguagem

O nome da linguagem da transformação.

Exemplos

Para atualizar a extensão hstore para a versão 2.0:

ALTER EXTENSION hstore UPDATE TO '2.0';

Para alterar o esquema da extensão hstore para utils:

ALTER EXTENSION hstore SET SCHEMA utils;

Para adicionar uma função existente à extensão hstore:

ALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);

Conformidade

O comando ALTER EXTENSION é uma extensão do PostgreSQL.

Veja também

CREATE EXTENSION, DROP EXTENSION