Appendix F. Módulos y extensiones adicionales suministrados

Table of Contents

F.1. amcheck — herramientas para verificar la consistencia de tablas e índices
F.1.1. Funciones
F.1.2. Verificación opcional heapallindexed
F.1.3. Uso efectivo de amcheck
F.1.4. Reparación de la corrupción
F.2. auth_delay — pausar tras un fallo de autenticación
F.2.1. Parámetros de configuración
F.2.2. Autor
F.3. auto_explain — registrar planes de ejecución de consultas lentas
F.3.1. Parámetros de configuración
F.3.2. Ejemplo
F.3.3. Autor
F.4. basebackup_to_shell — módulo pg_basebackup de ejemplo tipo «shell»
F.4.1. Parámetros de configuración
F.4.2. Autor
F.5. basic_archive — un módulo de archivado de WAL de ejemplo
F.5.1. Parámetros de configuración
F.5.2. Notas
F.5.3. Autor
F.6. bloom — método de acceso de índice basado en filtros de Bloom
F.6.1. Parámetros
F.6.2. Ejemplos
F.6.3. Interfaz de clases de operadores
F.6.4. Limitaciones
F.6.5. Autores
F.7. btree_gin — clases de operadores GIN con comportamiento de árbol B
F.7.1. Ejemplo de uso
F.7.2. Autores
F.8. btree_gist — clases de operadores GiST con comportamiento de árbol B
F.8.1. Ejemplo de uso
F.8.2. Autores
F.9. citext — un tipo de cadena de caracteres insensible a mayúsculas y minúsculas
F.9.1. Justificación
F.9.2. Cómo usarlo
F.9.3. Comportamiento de la comparación de cadenas
F.9.4. Limitaciones
F.9.5. Autor
F.10. cube — un tipo de datos para cubos multidimensionales
F.10.1. Sintaxis
F.10.2. Precisión
F.10.3. Uso
F.10.4. Valores por defecto
F.10.5. Notas
F.10.6. Créditos
F.11. dblink — conectarse a otras bases de datos PostgreSQL
dblink_connect — abre una conexión persistente a una base de datos remota
dblink_connect_u — abre una conexión persistente e insegura a una base de datos remota
dblink_disconnect — cierra una conexión persistente a una base de datos remota
dblink — ejecuta una consulta en una base de datos remota
dblink_exec — ejecuta un comando en una base de datos remota
dblink_open — abre un cursor en una base de datos remota
dblink_fetch — devuelve filas de un cursor abierto en una base de datos remota
dblink_close — cierra un cursor en una base de datos remota
dblink_get_connections — devuelve los nombres de todas las conexiones nombradas abiertas de dblink
dblink_error_message — obtiene el último mensaje de error en la conexión nombrada
dblink_send_query — envía una consulta asíncrona a una base de datos remota
dblink_is_busy — comprueba si la conexión está ocupada con una consulta asíncrona
dblink_get_notify — recupera notificaciones asíncronas en una conexión
dblink_get_result — obtiene el resultado de una consulta asíncrona
dblink_cancel_query — cancela cualquier consulta activa en la conexión nombrada
dblink_get_pkey — devuelve las posiciones y nombres de los campos de la clave primaria de una relación
dblink_build_sql_insert — construye una sentencia INSERT utilizando una tupla local, reemplazando los valores de los campos de la clave primaria con valores alternativos suministrados
dblink_build_sql_delete — construye una sentencia DELETE utilizando los valores suministrados para los valores de los campos de la clave primaria
dblink_build_sql_update — construye una sentencia UPDATE utilizando una tupla local, reemplazando los valores de los campos de la clave primaria con valores alternativos suministrados
F.12. dict_int — ejemplo de diccionario de búsqueda de texto completo para enteros
F.12.1. Configuración
F.12.2. Uso
F.13. dict_xsyn — ejemplo de diccionario de búsqueda de texto completo de sinónimos
F.13.1. Configuración
F.13.2. Uso
F.14. earthdistance — calcular distancias de círculo máximo
F.14.1. Distancias terrestres basadas en Cube
F.14.2. Distancias terrestres basadas en puntos
F.15. file_fdw — acceso a archivos de datos en el sistema de archivos del servidor
F.16. fuzzystrmatch — determina la similitud y distancia entre cadenas
F.16.1. Soundex
F.16.2. Soundex Daitch-Mokotoff
F.16.3. Levenshtein
F.16.4. Metaphone
F.16.5. Double Metaphone
F.17. hstore — tipo de datos clave/valor hstore
F.17.1. Representación externa de hstore
F.17.2. Operadores y funciones de hstore
F.17.3. Índices
F.17.4. Ejemplos
F.17.5. Estadísticas
F.17.6. Compatibilidad
F.17.7. Transformaciones
F.17.8. Autores
F.18. intagg — agregador y enumerador de enteros
F.18.1. Funciones
F.18.2. Ejemplos de uso
F.19. intarray — manipular arrays de enteros
F.19.1. Funciones y operadores de intarray
F.19.2. Soporte de índices
F.19.3. Ejemplo
F.19.4. Prueba de rendimiento (Benchmark)
F.19.5. Autores
F.20. isn — tipos de datos para números estándar internacionales (ISBN, EAN, UPC, etc.)
F.20.1. Tipos de datos
F.20.2. Conversiones de tipos (Casts)
F.20.3. Funciones y operadores
F.20.4. Parámetros de configuración
F.20.5. Ejemplos
F.20.6. Bibliografía
F.20.7. Autor
F.21. lo — gestionar objetos grandes (large objects)
F.21.1. Justificación
F.21.2. Cómo usarlo
F.21.3. Limitaciones
F.21.4. Autor
F.22. ltree — tipo de datos jerárquico similar a un árbol
F.22.1. Definiciones
F.22.2. Operadores y funciones
F.22.3. Índices
F.22.4. Ejemplo
F.22.5. Transformaciones (Transforms)
F.22.6. Autores
F.23. pageinspect — inspección de bajo nivel de páginas de bases de datos
F.23.1. Funciones generales
F.23.2. Funciones de Heap
F.23.3. Funciones de B-Tree
F.23.4. Funciones BRIN
F.23.5. Funciones GIN
F.23.6. Funciones GiST
F.23.7. Funciones Hash
F.24. passwordcheck — verificar la seguridad de las contraseñas
F.24.1. Parámetros de configuración
F.25. pg_buffercache — inspeccionar el estado de la caché de búfer de PostgreSQL
F.25.1. La vista pg_buffercache
F.25.2. La vista pg_buffercache_numa
F.25.3. La función pg_buffercache_summary()
F.25.4. La función pg_buffercache_usage_counts()
F.25.5. La función pg_buffercache_evict()
F.25.6. La función pg_buffercache_evict_relation()
F.25.7. La función pg_buffercache_evict_all()
F.25.8. Ejemplo de salida
F.25.9. Autores
F.26. pgcrypto — funciones criptográficas
F.26.1. Funciones generales de hashing
F.26.2. Funciones de hash para contraseñas
F.26.3. Funciones de encriptación PGP
F.26.4. Funciones de encriptación en bruto (Raw)
F.26.5. Funciones de datos aleatorios
F.26.6. Funciones de soporte para OpenSSL
F.26.7. Parámetros de configuración
F.26.8. Notas
F.26.9. Autor
F.27. pg_freespacemap — examinar el mapa de espacio libre
F.27.1. Funciones
F.27.2. Ejemplo de salida
F.27.3. Autor
F.28. pg_logicalinspect — inspección de componentes de decodificación lógica
F.28.1. Funciones
F.28.2. Autor
F.29. pg_overexplain — permitir a EXPLAIN volcar aún más detalles
F.29.1. EXPLAIN (DEBUG)
F.29.2. EXPLAIN (RANGE_TABLE)
F.29.3. Autor
F.30. pg_prewarm — precargar datos de relaciones en los cachés de búfer
F.30.1. Funciones
F.30.2. Parámetros de configuración
F.30.3. Autor
F.31. pgrowlocks — mostrar información de bloqueo de filas de una tabla
F.31.1. Resumen
F.31.2. Ejemplo de salida
F.31.3. Autor
F.32. pg_stat_statements — registrar estadísticas de planificación y ejecución de SQL
F.32.1. La vista pg_stat_statements
F.32.2. La vista pg_stat_statements_info
F.32.3. Funciones
F.32.4. Parámetros de configuración
F.32.5. Ejemplo de salida
F.32.6. Autores
F.33. pgstattuple — obtener estadísticas a nivel de tupla
F.33.1. Funciones
F.33.2. Autores
F.34. pg_surgery — realizar cirugía de bajo nivel en los datos de una relación
F.34.1. Funciones
F.34.2. Autores
F.35. pg_trgm — soporte para la similitud de texto mediante coincidencia de trigramas
F.35.1. Conceptos de trigramas (o trigrafos)
F.35.2. Funciones y operadores
F.35.3. Parámetros GUC
F.35.4. Soporte para índices
F.35.5. Integración con búsquedas de texto
F.35.6. Referencias
F.35.7. Autores
F.36. pg_visibility — información y utilidades del mapa de visibilidad
F.36.1. Funciones
F.36.2. Autor
F.37. pg_walinspect — inspección de WAL a bajo nivel
F.37.1. Funciones generales
F.37.2. Autor
F.38. postgres_fdw — acceder a datos almacenados en servidores externos de PostgreSQL
F.38.1. Opciones de FDW de postgres_fdw
F.38.2. Funciones
F.38.3. Gestión de conexiones
F.38.4. Gestión de transacciones
F.38.5. Optimización de consultas remotas
F.38.6. Entorno de ejecución de consultas remotas
F.38.7. Compatibilidad entre versiones
F.38.8. Eventos de espera
F.38.9. Parámetros de configuración
F.38.10. Ejemplos
F.38.11. Autor
F.39. seg — un tipo de datos para segmentos de línea o intervalos de coma flotante
F.39.1. Motivación
F.39.2. Sintaxis
F.39.3. Precisión
F.39.4. Uso
F.39.5. Notas
F.39.6. Créditos
F.40. sepgsql — Módulo de seguridad de control de acceso obligatorio (MAC) basado en etiquetas de SELinux
F.40.1. Visión general
F.40.2. Instalación
F.40.3. Pruebas de regresión
F.40.4. Parámetros GUC
F.40.5. Características
F.40.6. Funciones de Sepgsql
F.40.7. Limitaciones
F.40.8. Recursos externos
F.40.9. Autor
F.41. spi — Características y ejemplos de la Interfaz de Programación del Servidor (SPI)
F.41.1. refint — Funciones para implementar integridad referencial
F.41.2. autoinc — Funciones para campos autoincrementales
F.41.3. insert_username — Funciones para rastrear quién cambió una tabla
F.41.4. moddatetime — Funciones para rastrear el momento de la última modificación
F.42. sslinfo — obtener información de SSL del cliente
F.42.1. Funciones proporcionadas
F.42.2. Autor
F.43. tablefunc — funciones que devuelven tablas (crosstab y otras)
F.43.1. Funciones proporcionadas
F.43.2. Autor
F.44. tcn — una función de trigger para notificar a los oyentes (listeners) sobre cambios en el contenido de una tabla
F.45. test_decoding — módulo de prueba/ejemplo basado en SQL para la decodificación lógica de WAL
F.46. tsm_system_rows — el método de muestreo SYSTEM_ROWS para TABLESAMPLE
F.46.1. Ejemplos
F.47. tsm_system_time — el método de muestreo SYSTEM_TIME para TABLESAMPLE
F.47.1. Ejemplos
F.48. unaccent — un diccionario de búsqueda de texto que elimina diacríticos (acentos)
F.48.1. Configuración
F.48.2. Uso
F.48.3. Funciones
F.49. uuid-ossp — un generador de UUID
F.49.1. Funciones de uuid-ossp
F.49.2. Compilación de uuid-ossp
F.49.3. Autor
F.50. xml2 — consultas XPath y funcionalidad XSLT
F.50.1. Aviso de obsolescencia
F.50.2. Descripción de funciones
F.50.3. xpath_table
F.50.4. Funciones XSLT
F.50.5. Autor

Este apéndice y el siguiente contienen información sobre los componentes opcionales que se encuentran en el directorio contrib de la distribución de PostgreSQL. Estos incluyen herramientas de portabilidad, utilidades de análisis y características de complementos (plug-ins) que no forman parte del núcleo del sistema de PostgreSQL. Están separados principalmente porque se dirigen a un público limitado o son demasiado experimentales para formar parte del árbol de fuentes principal. Esto no impide su utilidad.

Este apéndice cubre las extensiones y otras bibliotecas de módulos de complementos del servidor que se encuentran en contrib. La Appendix G cubre los programas de utilidad.

Al compilar desde la distribución de fuentes, estos componentes opcionales no se compilan automáticamente, a menos que compiles el objetivo «world» (consulta la Step 2). Puedes compilar e instalar todos ellos ejecutando:

make
make install

en el directorio contrib de un árbol de fuentes configurado; o para compilar e instalar solo un módulo seleccionado, haz lo mismo en el subdirectorio de ese módulo. Muchos de los módulos tienen pruebas de regresión, que se pueden ejecutar ejecutando:

make check

antes de la instalación o

make installcheck

una vez que tengas un servidor de PostgreSQL en funcionamiento.

Si estás utilizando una versión empaquetada de PostgreSQL, estos componentes suelen estar disponibles como un subpaquete separado, como postgresql-contrib.

Muchos componentes suministran nuevas funciones, operadores o tipos definidos por el usuario, empaquetados como extensiones. Para hacer uso de una de estas extensiones, después de haber instalado el código, debes registrar los nuevos objetos SQL en el sistema de base de datos. Esto se hace ejecutando un comando CREATE EXTENSION. En una base de datos nueva, simplemente puedes hacer:

CREATE EXTENSION extension_name;

Este comando registra los nuevos objetos SQL únicamente en la base de datos actual, por lo que debes ejecutarlo en cada base de datos en la que desees que estén disponibles las utilidades de la extensión. Alternativamente, ejecútalo en la base de datos template1 para que la extensión se copie de forma predeterminada en las bases de datos creadas posteriormente.

Para todas las extensiones, el comando CREATE EXTENSION debe ser ejecutado por un superusuario de la base de datos, a menos que la extensión se considere trusted (de confianza). Las extensiones de confianza pueden ser ejecutadas por cualquier usuario que tenga el privilegio CREATE en la base de datos actual. Las extensiones que son de confianza se identifican como tales en las secciones que siguen. Generalmente, las extensiones de confianza son aquellas que no pueden proporcionar acceso a funcionalidades fuera de la base de datos.

Las siguientes extensiones son de confianza en una instalación predeterminada:

btree_ginfuzzystrmatchltreetcn
btree_gisthstorepgcryptotsm_system_rows
citextintarraypg_trgmtsm_system_time
cubeisnsegunaccent
dict_intlotablefuncuuid-ossp

Muchas extensiones te permiten instalar sus objetos en el esquema de tu elección. Para hacer eso, añade SCHEMA schema_name al comando CREATE EXTENSION. De forma predeterminada, los objetos se colocarán en tu esquema de destino de creación actual, el cual a su vez tiene como valor predeterminado public.

Ten en cuenta, sin embargo, que algunos de estos componentes no son extensiones en este sentido, sino que se cargan en el servidor de alguna otra manera, por ejemplo, mediante shared_preload_libraries. Consulta la documentación de cada componente para obtener más detalles.