ALTER EXTENSION

ALTER EXTENSION — cambiar la definición de una extensión

Synopsis

ALTER EXTENSION name UPDATE [ TO new_version ]
ALTER EXTENSION name SET SCHEMA new_schema
ALTER EXTENSION name ADD member_object
ALTER EXTENSION name DROP member_object

donde member_object es:

  ACCESS METHOD object_name |
  AGGREGATE aggregate_name ( aggregate_signature ) |
  CAST (source_type AS target_type) |
  COLLATION object_name |
  CONVERSION object_name |
  DOMAIN object_name |
  EVENT TRIGGER object_name |
  FOREIGN DATA WRAPPER object_name |
  FOREIGN TABLE object_name |
  FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  MATERIALIZED VIEW object_name |
  OPERATOR operator_name (left_type, right_type) |
  OPERATOR CLASS object_name USING index_method |
  OPERATOR FAMILY object_name USING index_method |
  [ PROCEDURAL ] LANGUAGE object_name |
  PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  SCHEMA object_name |
  SEQUENCE object_name |
  SERVER object_name |
  TABLE object_name |
  TEXT SEARCH CONFIGURATION object_name |
  TEXT SEARCH DICTIONARY object_name |
  TEXT SEARCH PARSER object_name |
  TEXT SEARCH TEMPLATE object_name |
  TRANSFORM FOR type_name LANGUAGE lang_name |
  TYPE object_name |
  VIEW object_name

y aggregate_signature es:

* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

Descripción

ALTER EXTENSION cambia la definición de una extensión instalada. Existen varias variantes:

UPDATE

Esta forma actualiza la extensión a una versión más nueva. La extensión debe proporcionar un script de actualización adecuado (o una serie de scripts) que pueda modificar la versión instalada actualmente a la versión solicitada.

SET SCHEMA

Esta forma mueve los objetos de la extensión a otro esquema. La extensión debe ser relocalizable (relocatable) para que este comando tenga éxito.

ADD member_object

Esta forma agrega un objeto existente a la extensión. Esto es útil principalmente en los scripts de actualización de extensiones. El objeto se tratará posteriormente como un miembro de la extensión; en particular, solo se puede eliminar eliminando la extensión.

DROP member_object

Esta forma elimina un objeto miembro de la extensión. Esto es útil principalmente en los scripts de actualización de extensiones. El objeto no se elimina, solo se desasocia de la extensión.

Consulta la Section 36.17 para obtener más información sobre estas operaciones.

Debes ser el propietario de la extensión para usar ALTER EXTENSION. Las variantes ADD/DROP también requieren la propiedad del objeto agregado/eliminado.

Parámetros

name

El nombre de una extensión instalada.

new_version

La nueva versión deseada de la extensión. Esto se puede escribir como un identificador o como un literal de cadena. Si no se especifica, ALTER EXTENSION UPDATE intenta actualizar a la versión que se muestra como predeterminada en el archivo de control de la extensión.

new_schema

El nuevo esquema para la extensión.

object_name
aggregate_name
function_name
operator_name
procedure_name
routine_name

El nombre de un objeto que se va a agregar o eliminar de la extensión. Los nombres de tablas, agregados, dominios, tablas foráneas, funciones, operadores, clases de operadores, familias de operadores, procedimientos, rutinas, secuencias, objetos de búsqueda de texto, tipos y vistas pueden estar calificados por esquema.

source_type

El nombre del tipo de datos origen del moldeado (cast).

target_type

El nombre del tipo de datos destino del moldeado (cast).

argmode

El modo de un argumento de función, procedimiento o agregado: IN, OUT, INOUT o VARIADIC. Si se omite, el valor predeterminado es IN. Ten en cuenta que ALTER EXTENSION en realidad no presta atención a los argumentos OUT, ya que solo se necesitan los argumentos de entrada para determinar la identidad de la función. Por lo tanto, es suficiente listar los argumentos IN, INOUT y VARIADIC.

argname

El nombre de un argumento de función, procedimiento o agregado. Ten en cuenta que ALTER EXTENSION en realidad no presta atención a los nombres de los argumentos, ya que solo se necesitan los tipos de datos de los argumentos para determinar la identidad de la función.

argtype

El tipo de datos de un argumento de función, procedimiento o agregado.

left_type
right_type

El tipo o tipos de datos de los argumentos del operador (opcionalmente calificados por esquema). Escribe NONE para el argumento faltante de un operador de prefijo.

PROCEDURAL

Esta es una palabra de ruido sin efecto.

type_name

El nombre del tipo de datos de la transformación (transform).

lang_name

El nombre del lenguaje de la transformación (transform).

Ejemplos

Para actualizar la extensión hstore a la versión 2.0:

ALTER EXTENSION hstore UPDATE TO '2.0';

Para cambiar el esquema de la extensión hstore a utils:

ALTER EXTENSION hstore SET SCHEMA utils;

Para agregar una función existente a la extensión hstore:

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

Compatibilidad

ALTER EXTENSION es una extensión de PostgreSQL.

Véase también

CREATE EXTENSION, DROP EXTENSION