Puedes extender PostgreSQL agrupando objetos SQL en un paquete y usándolos como una unidad. Esta página contiene información sobre cómo configurar las extensiones de PostgreSQL compatibles con Cloud SQL.
Utilice extensiones de PostgreSQL
Solo puedes instalar las extensiones compatibles con Cloud SQL. Para obtener más información, consulta las extensiones de PostgreSQL compatibles con Cloud SQL .
Instalar una extensión
Antes de usar una extensión, instálala:
- En la herramienta psql, ejecute el comando CREATE EXTENSION .
Requisito de privilegios de superusuario
En Cloud SQL, solo los usuarios con el rol cloudsqlsuperuser
pueden crear extensiones. Al crear una instancia de PostgreSQL, se crea automáticamente el usuario postgres
predeterminado (aunque debe configurar su contraseña). El usuario postgres
predeterminado forma parte del rol cloudsqlsuperuser
. Para obtener más información, consulte Acerca de los usuarios de PostgreSQL .
Conexiones entre bases de datos
Las instancias de destino para las conexiones deben estar en la misma red VPC que la instancia de conexión.
Para las instancias de clúster, no puede elegir la opción Requerir certificados de cliente confiables en laGoogle Cloud Consola. Además, para conectarse a bases de datos dentro de la misma instancia, no puede configurar el host como localhost ni como 127.0.0.1
. En su lugar, debe usar la dirección IP que se muestra para su instancia en la Google Cloud consola.
Solicitar soporte para una nueva extensión
No puedes crear tus propias extensiones en Cloud SQL.
Para solicitar asistencia para una extensión, haga clic en +1 en el problema abierto o cree uno nuevo. Para ver una lista de problemas abiertos de Cloud SQL e información sobre cómo crearlos, consulte Buscar o crear problemas y solicitudes de funciones por producto .
Extensiones de PostgreSQL compatibles con Cloud SQL
Para obtener información sobre el uso de una extensión específica, consulte el enlace de la documentación en una de las tablas siguientes.
La compatibilidad de Cloud SQL con las extensiones de PostgreSQL se puede dividir en estas categorías:
PostGIS
La extensión PostGIS es compatible con Cloud SQL para PostgreSQL para todas las versiones principales.
La siguiente tabla contiene las versiones de la extensión PostGIS para cada versión de Cloud SQL para PostgreSQL:
Versión de Cloud SQL para PostgreSQL | Extensión PostGIS |
PostgreSQL 9.6 | 3.2.5 |
PostgreSQL 10 | 3.2.5 |
PostgreSQL 11 | 3.2.5 |
PostgreSQL 12 | 3.4.4 |
PostgreSQL 13 | 3.5.2 |
PostgreSQL 14 | 3.5.2 |
PostgreSQL 15 | 3.5.2 |
PostgreSQL 16 | 3.5.2 |
PostgreSQL 17 | 3.5.2 |
Para una versión principal específica de PostgreSQL, en el comando CREATE EXTENSION , puede especificar una versión de extensión de PostGIS utilizando la cláusula VERSION
.
La extensión PostGIS incluye lo siguiente:
-
postgis
-
postgis_raster
-
postgis_sfcgal
-
postgis_tiger_geocoder
-
postgis_topology
-
address_standardizer
-
address_standardizer_data_us
Para obtener más información, consulte Instalación de PostGIS .
Además, Cloud SQL para PostgreSQL incluye la versión 3.6.2 de la extensión pgRouting
, que amplía PostGIS. Esta extensión mejora el procesamiento pgRouting
mediante el enrutamiento y el análisis de redes.
Puede actualizar PostGIS y sus extensiones relacionadas a la última versión manualmente. Para obtener más información sobre cómo actualizar sus extensiones de PostGIS, consulte Actualización de PostGIS .
Extensiones de tipos de datos
Extensión | Descripción |
btree_gin | Proporciona clases de operador GIN de muestra que implementan un comportamiento equivalente al árbol B. PostgreSQL 9.6 usa la versión 1.0. PostgreSQL 10 usa la versión 1.2. PostgreSQL 11 y posteriores usan la versión 1.3. |
btree_gist | Proporciona clases de operadores de índice GiST que implementan un comportamiento equivalente al del árbol B. PostgreSQL 9.6 usa la versión 1.2. PostgreSQL 10, 11, 12 y 13 usan la versión 1.5. PostgreSQL 14 usa la versión 1.6. PostgreSQL 15 y posteriores usan la versión 1.7. |
comprobar contraseña | Implementa un tipo de datos chkpass que está diseñado para almacenar contraseñas cifradas.PostgreSQL 9.6 y 10 usan la versión 1.0. No es compatible con otras versiones. |
cita textual | Proporciona un tipo de cadena de caracteres citext que no distingue entre mayúsculas y minúsculas.PostgreSQL 9.6 usa la versión 1.3. PostgreSQL 10 usa la versión 1.4. PostgreSQL 11 usa la versión 1.5. PostgreSQL 12 y posteriores usan la versión 1.6. |
cubo | Implementa un tipo de datos cube para representar cubos multidimensionales.PostgreSQL 9.6 y 10 utilizan la versión 1.2. PostgreSQL 11 utiliza la versión 1.3. PostgreSQL 12 y 13 utilizan la versión 1.4. PostgreSQL 14 y posteriores utilizan la versión 1.5. |
hstore | Implementa el tipo de datos hstore para almacenar conjuntos de pares clave/valor dentro de un solo valor de PostgreSQL.PostgreSQL 9.6 y 10 utilizan la versión 1.4. PostgreSQL 11 utiliza la versión 1.5. PostgreSQL 12 utiliza la versión 1.6. PostgreSQL 13 utiliza la versión 1.7. PostgreSQL 14 y posteriores utilizan la versión 1.8. |
ip4r | Proporciona tipos de datos para direcciones IPv4/v6 y rangos de direcciones, además de soporte para índices. Cloud SQL para PostgreSQL usa la versión 2.4.2. |
no es | Proporciona tipos de datos para algunos estándares internacionales de numeración de productos. PostgreSQL 9.6 y 10 utilizan la versión 1.1. PostgreSQL 11 y posteriores utilizan la versión 1.2. |
lo | Soporte para la gestión de objetos grandes (también llamados LO o BLOB). Cloud SQL para PostgreSQL usa la versión 1.1. |
ltree | Implementa un tipo de datos ltree para representar etiquetas de datos almacenados en una estructura jerárquica similar a un árbol.PostgreSQL 9.6, 10, 11 y 12 utilizan la versión 1.1. PostgreSQL 13, 14, 15 y 16 utilizan la versión 1.2. PostgreSQL 17 utiliza la versión 1.3. |
postgresql-hll | Se introduce un nuevo tipo de dato, hll , que es una estructura de datos HyperLogLog. Consulte también postgresql-hll en este documento.Cloud SQL para PostgreSQL usa la versión 2.18. |
prefijo | Proporciona coincidencia de prefijos y soporte de índices. Cloud SQL para PostgreSQL usa la versión 1.2.0. |
Extensiones de lenguaje
Extensión | Descripción |
plpgsql | Un lenguaje procedimental cargable para crear funciones, procedimientos y disparadores. También puede usarse para la ejecución directa de código en bloques DO. Cloud SQL para PostgreSQL usa la versión 1.0. |
plv8 | Proporciona un lenguaje de procedimiento para habilitar JavaScript. Cloud SQL para PostgreSQL utiliza la versión 3.2.2, que a su vez utiliza el motor JavaScript V8 versión 11.5. |
Extensiones varias
Extensión | Descripción |
amcheck | Proporciona funciones para verificar la consistencia lógica de la estructura de las relaciones, lo que permite que la aplicación pg_amcheck compruebe si hay daños. |
auto_explicación | Permite el registro automático de planes de ejecución de sentencias lentas para la resolución de problemas, entre otras funciones. Proporciona una forma automatizada de ejecutar la función EXPLAIN . Consulte también auto_explain en este documento. |
autoinc | Proporciona funciones para incrementar campos automáticamente. Este disparador almacena el siguiente valor de una secuencia en un campo entero. Cloud SQL para PostgreSQL usa la versión 1.0. |
floración | Proporciona un método para acceder a índices basados en filtros Bloom. Un filtro Bloom es una estructura de datos que optimiza el espacio y permite comprobar si un elemento pertenece a un conjunto. Cloud SQL para PostgreSQL usa la versión 1.0. |
enlace de base de datos | Proporciona funciones para conectarse a bases de datos PostgreSQL desde una sesión de base de datos. Consulte también dblink en este documento. Cloud SQL para PostgreSQL usa la versión 1.2. |
decodificadores | Un decodificador lógico PostgreSQL que entrega datos de salida como buffers de protocolo, adaptado para Debezium. |
dict_int | Una plantilla de diccionario complementaria para la búsqueda de texto completo que controla la indexación de números enteros. Cloud SQL para PostgreSQL usa la versión 1.0. |
distancia terrestre | Proporciona dos enfoques para calcular distancias de círculo máximo en la superficie de la Tierra. Cloud SQL para PostgreSQL usa la versión 1.1. |
coincidencia de cadena difusa | Proporciona varias funciones para determinar similitudes y distancias entre cadenas. PostgreSQL 9.6, 10, 11, 12, 13, 14 y 15 utilizan la versión 1.1. PostgreSQL 16 y posteriores utilizan la versión 1.2. |
integración de google_ml | Genera incrustaciones vectoriales para traducir indicaciones de texto en vectores numéricos utilizando un modelo de lenguaje grande (LLM). PostgreSQL 12 y versiones posteriores utilizan la versión 1.4.2. No es compatible con otras versiones. |
insertar_nombre_de_usuario | Proporciona funciones para almacenar el nombre del usuario actual en un campo de texto. Puede usar esto para rastrear quién modificó por última vez una fila en una tabla de base de datos. Cloud SQL para PostgreSQL usa la versión 1.0. |
etiqueta | Proporciona un agregador de enteros y un enumerador. Cloud SQL para PostgreSQL usa la versión 1.1. |
interray | Proporciona un conjunto de funciones y operadores para manipular matrices de números enteros libres de valores nulos y realizar búsquedas indexadas en ellas. PostgreSQL 9.6, 10, 11 y 12 utilizan la versión 1.2. PostgreSQL 13 utiliza la versión 1.3. PostgreSQL 14 y posteriores utilizan la versión 1.5. |
fecha y hora de modificación | Proporciona funciones para almacenar la hora actual en un campo timestamp . Puede usarlo para registrar la última modificación de una fila en una tabla de base de datos.Cloud SQL para PostgreSQL usa la versión 1.0. |
oracle_fdw | Proporciona un contenedor de datos externo (fdw) para acceder a bases de datos Oracle de forma fácil y eficiente. Cloud SQL para PostgreSQL usa la versión 1.2. |
orafce | Proporciona funciones y operadores que emulan un subconjunto de funciones y paquetes de una base de datos Oracle. Úselas para migrar aplicaciones Oracle a PostgreSQL. PostgreSQL 9.6 y 10 utilizan la versión 3.25. PostgreSQL 11 y posteriores utilizan la versión 4.13. |
inspección de página | Inspecciona el contenido de las páginas de la base de datos a bajo nivel. Consulte también pageinspect en este documento. PostgreSQL 9.6 usa la versión 1.5. PostgreSQL 10 usa la versión 1.6. PostgreSQL 11 y 12 usan la versión 1.7. PostgreSQL 13 y 14 usan la versión 1.8. PostgreSQL 15 usa la versión 1.11. PostgreSQL 16 y posteriores usan la versión 1.12. |
pgAudit | Recopila datos de auditoría.
Los valores posibles para los archivos de registro de auditoría en todas las versiones de pgAudit son Para obtener más información sobre el uso de esta extensión con Cloud SQL, consulte Auditoría para PostgreSQL usando pgAudit . |
pg_background | Le permite ejecutar comandos arbitrarios en un trabajador en segundo plano. Cloud SQL para PostgreSQL usa la versión 1.2. |
pg_bigm | Permite la búsqueda de texto completo y un índice de dos-gramas (bigrama) para una búsqueda más rápida. Véase también pg_bigm en este documento. |
caché de búfer pg | Proporciona un medio para examinar lo que sucede en la memoria caché del búfer compartido en tiempo real. PostgreSQL 9.6 usa la versión 1.2. PostgreSQL 10, 11, 12, 13, 14 y 15 usan la versión 1.3. PostgreSQL 16 usa la versión 1.4. PostgreSQL 17 usa la versión 1.5. |
pg_cron | Proporciona un programador de tareas basado en cron. Esta extensión permite usar la sintaxis cron para programar comandos PostgreSQL directamente desde la base de datos. Para más información sobre la extensión, consulte pg_cron en este documento. Las versiones 10 y posteriores de PostgreSQL utilizan la versión 1.6.4. |
pgcrypto | Proporciona funciones criptográficas para PostgreSQL. Cloud SQL para PostgreSQL usa la versión 1.3. |
pglogical | Proporciona replicación lógica para PostgreSQL. Consulte Configuración de la replicación lógica y la decodificación . Cloud SQL para PostgreSQL usa la versión 2.4.5. |
pgfincore | Un conjunto de funciones para administrar páginas en la memoria caché del disco del sistema operativo desde PostgreSQL. Consulte también pgfincore en este documento. Cloud SQL para PostgreSQL usa la versión 1.3.1. |
pg_freespacemap | Examina el mapa de espacio libre (FSM). Véase también pg_freespacemap en este documento. Cloud SQL para PostgreSQL usa la versión 1.2. |
plan de sugerencias de pg | Permite mejorar los planes de ejecución de PostgreSQL mediante sugerencias, que son descripciones simples en comentarios SQL. Consulte también pg_hint_plan en este documento. |
salida pg | La replicación lógica utiliza este complemento para la captura de datos modificados. pgoutput es un complemento predeterminado y, por lo tanto, es compatible con todas las versiones de Cloud SQL para PostgreSQL. |
pg_ivm | Le permite actualizar las vistas materializadas en las que solo se calculan y aplican cambios incrementales en las vistas en lugar de volver a calcular el contenido desde cero. Las versiones 13 y posteriores de PostgreSQL admiten la versión 1.9. |
pg_partman | Permite crear y administrar conjuntos de particiones de tablas basadas en tiempo y en serie. Consulte también pg_partman en este documento. Las versiones 14 y posteriores de PostgreSQL admiten la versión 5.2.4, mientras que las versiones de PostgreSQL anteriores a la 14 solo admiten hasta la versión 4.7.4. |
pg_precalentar | Proporciona una forma conveniente de cargar datos de relación en el caché del búfer del sistema operativo o en el caché del búfer de PostgreSQL. PostgreSQL 9.6 y 10 utilizan la versión 1.1. PostgreSQL 11 y posteriores utilizan la versión 1.2. |
pg_proctab | Permite usar pg_top con Cloud SQL para PostgreSQL y generar informes desde la tabla de procesos del sistema operativo. Consulte también pg_proctab en este documento. |
pg_repack | Permite eliminar la saturación de tablas e índices. Opcionalmente, permite realizar un CLUSTER en línea (ordenar tablas por índice de clúster). Consulte también pg_repack en este documento. Cloud SQL para PostgreSQL usa la versión 1.5.0. |
bloqueos de crecimiento | Proporciona información de bloqueo de filas para la tabla especificada. Cloud SQL para PostgreSQL usa la versión 1.2. |
pgstattuple | Proporciona varias funciones para obtener estadísticas a nivel de tupla. PostgreSQL 9.6 usa la versión 1.4. Todas las demás versiones usan la versión 1.5. |
similitud_pg | Proporciona soporte para consultas de similitud en PostgreSQL. Cloud SQL para PostgreSQL usa la versión 1.0. |
pg_squeeze | Elimina el espacio no utilizado de una tabla y, opcionalmente, utiliza un índice para ordenar registros o filas (tuplas) de la tabla. Para más información sobre esta extensión, consulte pg_squeeze en este documento. Las versiones 11 y posteriores de PostgreSQL utilizan la versión 1.5. |
declaraciones pg_stat | Proporciona un medio para realizar un seguimiento de las estadísticas de ejecución de todas las declaraciones SQL ejecutadas. PostgreSQL 9.6 usa la versión 1.4. PostgreSQL 10 y 11 usan la versión 1.6. PostgreSQL 12 usa la 1.7. PostgreSQL 13 usa la 1.8. PostgreSQL 14 usa la 1.9. PostgreSQL 15 y 16 usan la 1.10. PostgreSQL 17 usa la 1.11. |
pgTAP | Proporciona un marco de pruebas unitarias para PostgreSQL, escrito en PL/pgSQL y PL/SQL. Cloud SQL para PostgreSQL usa la versión 1.3.0. |
pg_trgm | Proporciona funciones y operadores para determinar la similitud de texto alfanumérico según la coincidencia de trigramas, así como clases de operadores de índice que admiten la búsqueda rápida de cadenas similares. PostgreSQL 9.6 y 10 usan la versión 1.3. PostgreSQL 11 y 12 usan la versión 1.4. PostgreSQL 13 usa la versión 1.5. PostgreSQL 14 y posteriores usan la versión 1.6. |
pgtt | Crea y administra tablas temporales globales de estilo DB2 o Oracle en una base de datos PostgreSQL. |
vector de página | Una extensión de código abierto para almacenar y buscar incrustaciones vectoriales en bases de datos PostgreSQL. |
pg_visibilidad | Permite examinar el mapa de visibilidad (VM) y la información de visibilidad a nivel de página de una tabla. Consulte también pg_visibility en este documento. Cloud SQL para PostgreSQL usa la versión 1.2. |
pg_wait_sampling | Recopila estadísticas de muestreo de eventos de espera y proporciona datos de eventos de espera para los procesos en los servidores. Cloud SQL para PostgreSQL usa la versión 1.1.5. |
PL/Proxy | Manejador de lenguaje procedural que permite llamadas a procedimientos remotos entre bases de datos PostgreSQL, con fragmentación opcional. Consulte también PL/Proxy en este documento. Cloud SQL para PostgreSQL usa la versión 2.11.0. |
postgres_fdw | Permite la creación de contenedores de datos externos dentro de las instancias o entre ellas. Consulte también postgres_fdw en este documento. PostgreSQL 9.6, 10, 11, 12 y 13 utilizan la versión 1.0. PostgreSQL 14 y posteriores utilizan la versión 1.1. |
anonimizador postgresql | Enmascara o reemplaza información de identificación personal (PII) o datos confidenciales de una base de datos PostgreSQL. Para más información, consulte la sección postgresql_anonymizer . Cloud SQL para PostgreSQL usa la versión 1.0.0. |
postgresql_hll | Proporciona una estructura de datos HyperLogLog ( Cloud SQL para PostgreSQL usa la versión 2.18. |
kit de reparación | Una colección de software de quimioinformática y aprendizaje automático. Puedes usar esta extensión para comparar, manipular e identificar estructuras moleculares. Cloud SQL para PostgreSQL usa la versión 4.6.1. |
refinar | Incluye funciones para comprobar las restricciones de claves foráneas, la tabla de referencia y la tabla referenciada. Esta extensión también muestra la Interfaz de Programación del Servidor (SPI) . Cloud SQL para PostgreSQL utiliza la versión 1.0. |
sslinfo | Proporciona información sobre el certificado SSL que proporcionó el cliente actual cuando se conectó a la instancia. Cloud SQL para PostgreSQL usa la versión 1.2. |
función de tabla | Incluye varias funciones que devuelven tablas (múltiples filas). Cloud SQL para PostgreSQL usa la versión 1.0. |
tcn | Proporciona una función de activación que notifica a los oyentes sobre los cambios en el contenido de las tablas de la base de datos. Cloud SQL para PostgreSQL usa la versión 1.0. |
tds_fdw | Proporciona un contenedor de datos externo (fdw) para acceder a bases de datos, como Microsoft SQL Server y Sybase, que utilizan el protocolo Tabular Data Stream (TDS). Cloud SQL para PostgreSQL utiliza la versión 2.0.4. |
tablas temporales | Proporciona compatibilidad con tablas temporales. Una tabla temporal registra el periodo de validez de una fila desde la perspectiva de la base de datos. Cloud SQL para PostgreSQL usa la versión 1.2.2. |
filas del sistema tsm | Proporciona el método de muestreo de tabla SYSTEM_ROWS, que se puede utilizar en la cláusula TABLESAMPLE de un comando SELECT. Cloud SQL para PostgreSQL usa la versión 1.0. |
tiempo del sistema tsm | Proporciona el método de muestreo de tabla SYSTEM_TIME, que se puede utilizar en la cláusula TABLESAMPLE de un comando SELECT. Cloud SQL para PostgreSQL usa la versión 1.0. |
sin acento | Un diccionario de búsqueda de texto que elimina los acentos (signos diacríticos) de los lexemas. Cloud SQL para PostgreSQL usa la versión 1.1. |
uuid-ossp | Proporciona funciones para generar identificadores universalmente únicos (UUID) utilizando uno de varios algoritmos estándar. Cloud SQL para PostgreSQL usa la versión 1.1. |
Más sobre algunas extensiones de PostgreSQL
Esta sección describe más información sobre algunas de las extensiones de PostgreSQL compatibles en las tablas anteriores.
auto_explicación
Para empezar a usar esta extensión en una instancia, on
el indicador cloudsql.enable_auto_explain
. Para obtener información sobre la configuración de indicadores y revisar los indicadores compatibles con esta extensión, consulte Configurar indicadores de base de datos .
Para ver los datos de registro y los eventos asociados con los registros de los planes de ejecución que habilita esta extensión, consulte la documentación de Cloud Logging .
Como alternativa, para un usuario que tiene el rol cloudsqlsuperuser
(solamente), puede usar el comando load
para cargar esta extensión para una sesión.
enlace de base de datos
Desde una sesión de base de datos, puede utilizar esta extensión para conectarse a bases de datos PostgreSQL y ejecutar consultas.
Actualmente, esta extensión funciona para dos instancias de IP privada de Cloud SQL dentro de la misma red de VPC o para bases de datos cruzadas dentro de la misma instancia.
Para obtener información adicional, consulte dblink en la documentación de PostgreSQL.
Utilice dblink para conectarse con una contraseña
Para conectarse a bases de datos o a la misma instancia que otro usuario, debe especificar una contraseña. A modo de ejemplo (pero no para producción), a continuación se muestra un fragmento de código:
SELECT * FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select id, name from table' \
) AS t(id int, name text);
Alternativamente, para configurar solo una conexión, aquí hay un fragmento de código para fines de ejemplo (no para fines de producción):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
Utilice dblink para conectarse sin contraseña
Para conectarse a la misma instancia con el mismo usuario, puede hacerlo sin contraseña. Por ejemplo:
Establezca la siguiente bandera de base de datos para habilitar conexiones locales sin contraseña
cloudsql.allow_passwordless_local_connections
Conectarse sin especificar un host, lo que implica conectarse a la misma instancia. A continuación, un ejemplo:
SELECT * FROM dblink('dbname=finance user=alice', 'select income from revenue') AS revenue(income integer);
El resultado podría ser similar al siguiente:
income -------- 1000 (1 row)
Para conectarse a bases de datos dentro de la misma instancia, no puede configurar el host como localhost ni como 127.0.0.1
. En su lugar, debe usar la dirección IP que se muestra para su instancia en el Google Cloud consola.
Consulte también postgres_fdw y PL/Proxy en este documento.
inspección de página
Esta extensión inspecciona el contenido de las páginas de la base de datos a bajo nivel. Para más información, consulte pageinspect en la documentación de PostgreSQL.
pg_bigm
Esta extensión permite la búsqueda de texto completo y permite un índice de dos gramos (bigramas) para una búsqueda de texto completo más rápida.
Para empezar a usar esta extensión en una instancia, on
el indicador cloudsql.enable_pg_bigm
. También se admiten los siguientes indicadores:
-
pg_bigm.enable_recheck
-
pg_bigm.gin_key_limit
-
pg_bigm.similarity_limit
Para obtener información sobre cómo configurar indicadores y revisar los indicadores admitidos para esta extensión, consulte Configurar indicadores de base de datos .
pg_cron
Para empezar a usar pg_cron en una instancia, on
el indicador cloudsql.enable_pg_cron
. Para obtener información sobre la configuración de indicadores y revisar los indicadores compatibles con esta extensión, consulte Configurar indicadores de base de datos .
Los trabajos se configuran como trabajadores en segundo plano, por lo que es posible que necesite usar técnicas estándar de PostgreSQL (como el indicador max_worker_processes
) para ajustar la cantidad de esos trabajadores en segundo plano.
Para esta extensión, Cloud SQL admite el modo de trabajo en segundo plano, pero no la interfaz libpq. Por lo tanto, no se requiere la autenticación de confianza que involucre directamente a esta extensión.
pgfincore
Esta extensión contiene funciones para administrar páginas en la caché de disco del sistema operativo desde PostgreSQL. Para más información, consulte la documentación de pgfincore .
pg_freespacemap
Esta extensión examina el mapa de espacio libre (FSM). Para más información, consulte pg_freespacemap en la documentación de PostgreSQL.
plan de sugerencias de pg
Para empezar a usar esta extensión en una instancia, on
el indicador cloudsql.enable_pg_hint_plan
. Para obtener información sobre la configuración de indicadores y revisar los indicadores compatibles con esta extensión, consulte Configurar indicadores de base de datos .
De manera alternativa, solo para un usuario con el rol cloudsqlsuperuser
, puede usar el comando load
para cargar esta extensión para una sesión.
pg_partman
Esta extensión le permite crear y administrar conjuntos de particiones de tablas basadas en tiempo y serie.
En Cloud SQL, esta extensión no incluye el trabajador en segundo plano para el mantenimiento automático de particiones. En su lugar, puede usar, por ejemplo, Cloud Scheduler para gestionar el mantenimiento mediante llamadas a funciones de mantenimiento a intervalos regulares.
pg_proctab
Estos son los pasos para utilizar la extensión pg_proctab para habilitar la utilidad pg_top :
- En la herramienta psql, ejecute el comando CREATE EXTENSION para pg_proctab.
- Descargue y ejecute pg_top .
- Al conectarse a una instancia de Cloud SQL para PostgreSQL, agregue la opción
-r
para conectarse a una base de datos remota y obtener métricas.
Las siguientes métricas de toda la instancia, que se incluyen en la salida, incluyen el uso por parte de otros agentes y servicios de soporte en la instancia:
- Promedio de carga
- Estados de la CPU (% usuario, agradable, sistema, inactivo y iowait)
- Memoria (usada, libre y en caché)
pg_repack
Esta extensión permite eliminar la saturación de tablas e índices. Opcionalmente, puede usarla para realizar un CLUSTER en línea (ordenar tablas por índice de clúster). Para más información, consulte la documentación de pg_repack . Además, para usar esta extensión en Cloud SQL, se requiere un procedimiento especial para agregar privilegios a un usuario.
Si un usuario que no tiene el rol cloudsqlsuperuser
desea usar una extensión, debe otorgarle privilegios de cloudsqlsuperuser
. Para obtener más información, consulte "Requisitos para privilegios de superusuario" en este documento. El siguiente ejemplo usa el comando GRANT
para agregar los privilegios necesarios.
Ejemplo de adición de privilegios
Para los ejemplos a continuación, csuper1
es un cloudsqlsuperuser
y testdb
es una base de datos propiedad de testuser
. Para crear la extensión pg_repack en testdb
, ejecute inicialmente los siguientes comandos:
Conéctese a
testdb
como superusuariocloudsqlsuperuser
:psql -U csuper1 -d testdb;
Otorgue el propietario de la base de datos, que es
testuser,
acsuper1
:GRANT testuser TO csuper1;
Crear la extensión:
CREATE EXTENSION pg_repack;
Ejecute el comando
pg_repack
en una tabla, comot1
entestdb
, comocsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
Una vez completado el trabajo pg_repack, revoque la concesión que realizó en el paso 2:
REVOKE testuser FROM csuper1;
El comando pg_repack
podría fallar con el siguiente error:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
Si se produce ese error, intente configurar los keepalives de TCP a un valor menor y luego ejecute el comando pg_repack
. Para obtener más información, consulte Tiempo de espera de las conexiones (de Compute Engine) .
pg_squeeze
Esta extensión elimina el espacio no utilizado de una tabla y, opcionalmente, utiliza un índice para ordenar las tuplas de la tabla. Para empezar a usar la extensión en una instancia, on
el indicador cloudsql.enable_pg_squeeze
.
Esta extensión también admite la decodificación lógica mediante la escritura de información adicional en el registro de escritura anticipada (WAL). Para habilitar esta funcionalidad, configure el parámetro de configuración wal_level
en logical
o superior on
el indicador cloudsql.logical_decoding
.
La extensión requiere que se establezca un valor para el indicador max_replication_slots
. Si no se ha especificado un valor para este indicador, establézcalo en 1
De lo contrario, añada 1 al valor establecido para el indicador.
Para obtener información sobre cómo configurar indicadores y revisar los indicadores admitidos para esta extensión, consulte Configurar indicadores de base de datos .
pgtt
Para empezar a usar esta extensión en una instancia, on
el indicador pgtt.enabled
. Para obtener información sobre la configuración de indicadores y revisar los indicadores compatibles con esta extensión, consulte Configuración de indicadores de base de datos .
pg_visibilidad
Esta extensión permite examinar el mapa de visibilidad (VM) y la información de visibilidad a nivel de página de una tabla. Para más información, consulte pg_visibility en la documentación de PostgreSQL.
PL/Proxy
Esta extensión es un controlador de lenguaje procedimental que permite llamadas a procedimientos remotos entre bases de datos PostgreSQL, con fragmentación opcional.
Para obtener más información, consulte la documentación de PL/Proxy .
Las instancias de destino para las conexiones deben estar en la misma red de VPC que la instancia de conexión. Además, no se puede elegir, en elGoogle Cloud consola, el botón Permitir solo conexiones SSL para instancias del clúster.
Para conectarse a bases de datos dentro de la misma instancia, no puede configurar el host como localhost ni como 127.0.0.1
. En su lugar, debe usar la dirección IP que se muestra para su instancia en el Google Cloud consola.
Consulte también postgres_fdw y dblink en este documento.
anonimizador postgresql
Para empezar a usar esta extensión en una instancia, on
el indicador cloudsql.enable_anon
. Para obtener información sobre la configuración de indicadores y revisar los indicadores compatibles con esta extensión, consulte Configuración de indicadores de base de datos .
postgres_fdw
Esta extensión permite que las tablas de otras bases de datos PostgreSQL (foráneas) se expongan como tablas foráneas en la base de datos actual. Dichas tablas estarán disponibles para su uso, prácticamente como si fueran tablas locales. Para más información, consulte postgres_fdw en la documentación de PostgreSQL.
Esta extensión funciona para dos instancias de IP privada de Cloud SQL dentro de la misma red de VPC o para bases de datos cruzadas dentro de la misma instancia.
Para conectarse a bases de datos dentro de la misma instancia, no puede configurar el host como localhost ni como 127.0.0.1
. En su lugar, debe usar la dirección IP que se muestra para su instancia en el Google Cloud consola.
Además, en el caso de que se almacenen datos externos, puede elegir la opción Permitir solo conexiones SSL en el Google Cloud Consola. No se puede seleccionar la opción "Requerir certificados de cliente de confianza" . Solo el cloudsqlsuperuser
puede ser el propietario de un contenedor de datos externo postgres_fdw
.
Consulte también PL/Proxy y dblink en este documento.
postgresql-hll
Esta extensión introduce un nuevo tipo de dato, hll
, que es una estructura de datos HyperLogLog. Para más información, consulte la documentación de postgresql-hll .
Puedes extender PostgreSQL agrupando objetos SQL en un paquete y usándolos como una unidad. Esta página contiene información sobre cómo configurar las extensiones de PostgreSQL compatibles con Cloud SQL.
Utilice extensiones de PostgreSQL
Solo puedes instalar las extensiones compatibles con Cloud SQL. Para obtener más información, consulta las extensiones de PostgreSQL compatibles con Cloud SQL .
Instalar una extensión
Antes de usar una extensión, instálala:
- En la herramienta psql, ejecute el comando CREATE EXTENSION .
Requisito de privilegios de superusuario
En Cloud SQL, solo los usuarios con el rol cloudsqlsuperuser
pueden crear extensiones. Al crear una instancia de PostgreSQL, se crea automáticamente el usuario postgres
predeterminado (aunque debe configurar su contraseña). El usuario postgres
predeterminado forma parte del rol cloudsqlsuperuser
. Para obtener más información, consulte Acerca de los usuarios de PostgreSQL .
Conexiones entre bases de datos
Las instancias de destino para las conexiones deben estar en la misma red VPC que la instancia de conexión.
Para las instancias de clúster, no puede elegir la opción Requerir certificados de cliente confiables en laGoogle Cloud Consola. Además, para conectarse a bases de datos dentro de la misma instancia, no puede configurar el host como localhost ni como 127.0.0.1
. En su lugar, debe usar la dirección IP que se muestra para su instancia en la Google Cloud consola.
Solicitar soporte para una nueva extensión
No puedes crear tus propias extensiones en Cloud SQL.
Para solicitar asistencia para una extensión, haga clic en +1 en el problema abierto o cree uno nuevo. Para ver una lista de problemas abiertos de Cloud SQL e información sobre cómo crearlos, consulte Buscar o crear problemas y solicitudes de funciones por producto .
Extensiones de PostgreSQL compatibles con Cloud SQL
Para obtener información sobre el uso de una extensión específica, consulte el enlace de la documentación en una de las tablas siguientes.
La compatibilidad de Cloud SQL con las extensiones de PostgreSQL se puede dividir en estas categorías:
PostGIS
La extensión PostGIS es compatible con Cloud SQL para PostgreSQL para todas las versiones principales.
La siguiente tabla contiene las versiones de la extensión PostGIS para cada versión de Cloud SQL para PostgreSQL:
Versión de Cloud SQL para PostgreSQL | Extensión PostGIS |
PostgreSQL 9.6 | 3.2.5 |
PostgreSQL 10 | 3.2.5 |
PostgreSQL 11 | 3.2.5 |
PostgreSQL 12 | 3.4.4 |
PostgreSQL 13 | 3.5.2 |
PostgreSQL 14 | 3.5.2 |
PostgreSQL 15 | 3.5.2 |
PostgreSQL 16 | 3.5.2 |
PostgreSQL 17 | 3.5.2 |
Para una versión principal específica de PostgreSQL, en el comando CREATE EXTENSION , puede especificar una versión de extensión de PostGIS utilizando la cláusula VERSION
.
La extensión PostGIS incluye lo siguiente:
-
postgis
-
postgis_raster
-
postgis_sfcgal
-
postgis_tiger_geocoder
-
postgis_topology
-
address_standardizer
-
address_standardizer_data_us
Para obtener más información, consulte Instalación de PostGIS .
Además, Cloud SQL para PostgreSQL incluye la versión 3.6.2 de la extensión pgRouting
, que amplía PostGIS. Esta extensión mejora el procesamiento pgRouting
mediante el enrutamiento y el análisis de redes.
Puede actualizar PostGIS y sus extensiones relacionadas a la última versión manualmente. Para obtener más información sobre cómo actualizar sus extensiones de PostGIS, consulte Actualización de PostGIS .
Extensiones de tipos de datos
Extensión | Descripción |
btree_gin | Proporciona clases de operador GIN de muestra que implementan un comportamiento equivalente al árbol B. PostgreSQL 9.6 usa la versión 1.0. PostgreSQL 10 usa la versión 1.2. PostgreSQL 11 y posteriores usan la versión 1.3. |
btree_gist | Proporciona clases de operadores de índice GiST que implementan un comportamiento equivalente al del árbol B. PostgreSQL 9.6 usa la versión 1.2. PostgreSQL 10, 11, 12 y 13 usan la versión 1.5. PostgreSQL 14 usa la versión 1.6. PostgreSQL 15 y posteriores usan la versión 1.7. |
comprobar contraseña | Implementa un tipo de datos chkpass diseñado para almacenar contraseñas cifradas.PostgreSQL 9.6 y 10 usan la versión 1.0. No es compatible con otras versiones. |
cita textual | Proporciona un tipo de cadena de caracteres insensible al caso citext .PostgreSQL 9.6 usa la versión 1.3. PostgreSQL 10 usa la versión 1.4. PostgreSQL 11 usa la versión 1.5. PostgreSQL 12 y luego use la versión 1.6. |
cubo | Implementa un cube de tipo de datos para representar cubos multidimensionales.PostgreSQL 9.6 y 10 usan la versión 1.2. PostgreSQL 11 usa la versión 1.3. PostgreSQL 12 y 13 use la versión 1.4. PostgreSQL 14 y luego use la versión 1.5. |
hstore | Implementa el tipo de datos hstore para almacenar conjuntos de pares de clave/valor dentro de un solo valor PostgreSQL.PostgreSQL 9.6 y 10 usan la versión 1.4. PostgreSQL 11 usa la versión 1.5. PostgreSQL 12 usa la versión 1.6. PostgreSQL 13 usa la versión 1.7. PostgreSQL 14 y luego use la versión 1.8. |
ip4r | Proporciona tipos de datos para direcciones IPv4/V6 y rangos de direcciones, más soporte de índice. Cloud SQL para PostgreSQL usa la versión 2.4.2. |
no es | Proporciona tipos de datos para algunos estándares internacionales de numeración de productos. PostgreSQL 9.6 y 10 usan la versión 1.1. PostgreSQL 11 y luego use la versión 1.2. |
lo | Soporte para administrar objetos grandes (también llamados LOS o blobs). Cloud SQL para PostgreSQL usa la versión 1.1. |
ltree | Implementa un tipo de datos ltree para representar etiquetas de datos almacenados en una estructura jerárquica similar a un árbol.PostgreSQL 9.6, 10, 11 y 12 usan la versión 1.1. PostgreSQL 13, 14, 15 y 16 usan la versión 1.2. PostgreSQL 17 usa la versión 1.3. |
postgresql-hll | Introduce un nuevo tipo de datos, hll , que es una estructura de datos HyperLogLog. Vea también PostgreSQL-HLL en este documento.Cloud SQL para PostgreSQL usa la versión 2.18. |
prefijo | Proporciona soporte de índice de combate de prefijo, más. Cloud SQL para PostgreSQL usa la versión 1.2.0. |
Extensiones de lenguaje
Extensión | Descripción |
plpgsql | Un lenguaje de procedimiento cargable para crear funciones, procedimientos y desencadenantes. También puede usar este idioma para la ejecución directa del código en los bloques DO. Cloud SQL para PostgreSQL usa la versión 1.0. |
plv8 | Proporciona un lenguaje de procedimiento para habilitar JavaScript. Cloud SQL para PostgreSQL usa la versión 3.2.2, que a su vez usa V8 JavaScript Engine versión 11.5. |
Extensiones misceláneas
Extensión | Descripción |
amcheck | Proporciona funciones para verificar la consistencia lógica de la estructura de las relaciones, permitiendo que la aplicación PG_AMCHECK verifique la corrupción. |
auto_explicación | Permite el registro automático de los planes de ejecución de declaraciones lentas, para la resolución de problemas y más. Proporciona una forma automatizada de realizar la funcionalidad del comando Explicar . Consulte también Auto_Explan en este documento. |
autoinc | Proporciona funciones para incrementar los campos automáticamente. Este activador almacena el siguiente valor de una secuencia en un campo entero. Cloud SQL para PostgreSQL usa la versión 1.0. |
floración | Proporciona un método para acceder a índices basados en filtros Bloom. Un filtro Bloom es una estructura de datos de eficiencia de espacio que puede usar para probar si un elemento es un miembro de un conjunto. Cloud SQL para PostgreSQL usa la versión 1.0. |
enlace de base de datos | Proporciona funciones para conectarse a bases de datos PostgreSQL desde una sesión de base de datos. Vea también Dblink en este documento. Cloud SQL para PostgreSQL usa la versión 1.2. |
decoderbufs | Un decodificador lógico PostgreSQL que entrega datos de salida como búferes de protocolo, adaptados para Debezium. |
dict_int | Una plantilla de diccionario adicional para la búsqueda de texto completo que controla la indexación de enteros. Cloud SQL para PostgreSQL usa la versión 1.0. |
distancia terrestre | Proporciona dos enfoques para calcular grandes distancias de círculo en la superficie de la tierra. Cloud SQL para PostgreSQL usa la versión 1.1. |
coincidencia de cadena difusa | Proporciona varias funciones para determinar las similitudes y la distancia entre cadenas. PostgreSQL 9.6, 10, 11, 12, 13, 14 y 15 usa la versión 1.1. PostgreSQL 16 y luego use la versión 1.2 |
Google_ML_integration | Genera incrustaciones de vectores para traducir las indicaciones de texto en vectores numéricos utilizando un modelo de lenguaje grande (LLM). PostgreSQL 12 y luego use la versión 1.4.2. No es compatible con otras versiones. |
insertar_nombre_de_usuario | Proporciona funciones para almacenar el nombre del usuario actual en un campo de texto. Puede usar esto para rastrear quién modificó por última vez una fila en una tabla de base de datos. Cloud SQL para PostgreSQL usa la versión 1.0. |
etiqueta | Proporciona un agregador entero y un enumerador. Cloud SQL para PostgreSQL usa la versión 1.1. |
interray | Proporciona un conjunto de funciones y operadores para manipular matrices de enteros sin nulos y realizar búsquedas indexadas en ellos. PostgreSQL 9.6, 10, 11 y 12 usan la versión 1.2. PostgreSQL 13 usa la versión 1.3. PostgreSQL 14 y luego use la versión 1.5. |
fecha y hora de modificación | Proporciona funciones para almacenar el tiempo actual en un campo timestamp . Puede usar esto para rastrear la última vez que se modifica una fila en una tabla de base de datos.Cloud SQL para PostgreSQL usa la versión 1.0. |
oracle_fdw | Proporciona un envoltorio de datos extranjero (FDW) para acceder a las bases de datos Oracle de manera fácil y eficiente. Cloud SQL para PostgreSQL usa la versión 1.2. |
orafce | Proporciona funciones y operadores que emulan un subconjunto de funciones y paquetes de una base de datos Oracle. Utilice estas funciones a las aplicaciones Port Oracle a PostgreSQL. PostgreSQL 9.6 y 10 usan la versión 3.25. PostgreSQL 11 y luego use la versión 4.13. |
inspección de página | Inspecciona el contenido de las páginas de la base de datos a un nivel bajo. Consulte también PageInspect en este documento. PostgreSQL 9.6 usa la versión 1.5. PostgreSQL 10 usa la versión 1.6. PostgreSQL 11 y 12 use la versión 1.7. PostgreSQL 13 y 14 usan la versión 1.8. PostgreSQL 15 usa la versión 1.11. PostgreSQL 16 y posterior use la versión 1.12. |
pgaudit | Recopila datos de auditoría.
Los valores posibles para establecer los archivos de registro de auditoría para todas las versiones de PGaudit son Para obtener más información sobre el uso de esta extensión con Cloud SQL, consulte Auditoría para PostgreSQL usando PGAUDIT . |
pg_background | Le permite ejecutar comandos arbitrarios en un trabajador de fondo. Cloud SQL para PostgreSQL usa la versión 1.2. |
pg_bigm | Habilita la búsqueda de texto completo y permite un índice de dos gramos (BigRam) para una búsqueda de texto completo más rápido. Vea también PG_BIGM en este documento. |
PG_BUFFERCHACHE | Proporciona un medio para examinar lo que está sucediendo en el caché del búfer compartido en tiempo real. PostgreSQL 9.6 usa la versión 1.2. PostgreSQL 10, 11, 12, 13, 14 y 15 usa la versión 1.3. PostgreSQL 16 usa la versión 1.4. PostgreSQL 17 usa la versión 1.5. |
pg_cron | Proporciona un programador de trabajo basado en Cron. Esta extensión permite que CRON sintaxis programen los comandos PostgreSQL directamente desde la base de datos. Para obtener más información sobre la extensión, consulte PG_CRON en este documento. Las versiones de PostgreSQL 10 y posterior usan la versión 1.6.4. |
pgcrypto | Proporciona funciones criptográficas para PostgreSQL. Cloud SQL para PostgreSQL usa la versión 1.3. |
pglogical | Proporciona una replicación lógica para PostgreSQL. Consulte Configuración de replicación lógica y decodificación . Cloud SQL para PostgreSQL usa la versión 2.4.5. |
pgfincore | Un conjunto de funciones para administrar páginas en la memoria de caché de disco del sistema operativo de PostgreSQL. Vea también PGFIncore en este documento. Cloud SQL para PostgreSQL usa la versión 1.3.1. |
pg_freespacemap | Examina el mapa del espacio libre (FSM). Consulte también PG_FREESPACEMAP en este documento. Cloud SQL para PostgreSQL usa la versión 1.2. |
plan de sugerencias de pg | Le permite mejorar los planes de ejecución de PostgreSQL utilizando sugerencias, que son descripciones simples en los comentarios de SQL. Vea también PG_HINT_PLAN en este documento. |
pgoutput | Este complemento se utiliza mediante replicación lógica para la captura de datos de cambio. pgoutput es un complemento predeterminado y, por lo tanto, se admite en todas las versiones de Cloud SQL para PostgreSQL. |
pg_ivm | Le permite realizar vistas materializadas actualizadas en las que solo se calculan y aplican cambios incrementales en vistas en lugar de recomputar el contenido desde cero. PostgreSQL Versiones 13 y posterior admiten la versión 1.9. |
pg_partman | Le permite crear y administrar conjuntos de particiones de tabla basados en el tiempo y en serie. Vea también PG_Partman en este documento. Las versiones de PostgreSQL 14 y posterior admiten la versión 5.2.4, mientras que las versiones de PostgreSQL que son anteriores a 14 admiten solo hasta la versión 4.7.4. |
pg_precalentar | Proporciona una forma conveniente de cargar datos de relación en el caché del búfer del sistema operativo o el caché del búfer PostgreSQL. PostgreSQL 9.6 y 10 usan la versión 1.1. PostgreSQL 11 y luego use la versión 1.2. |
pg_proctab | Le permite usar PG_TOP con Cloud SQL para PostgreSQL y generar informes de la tabla de proceso del sistema operativo. Consulte también PG_ProcTab en este documento. |
pg_repack | Le permite eliminar la hinchazón de las tablas e índices. Opcionalmente, le permite realizar un clúster en línea (tablas de pedido por índice de clúster). Vea también PG_Repack en este documento. Cloud SQL para PostgreSQL usa la versión 1.5.0. |
bloqueos de crecimiento | Proporciona información de bloqueo de filas para la tabla especificada. Cloud SQL para PostgreSQL usa la versión 1.2. |
pgstattuple | Proporciona varias funciones para obtener estadísticas de nivel de tupla. PostgreSQL 9.6 usa la versión 1.4. Todas las demás versiones usan la versión 1.5. |
similitud_pg | Proporciona soporte para consultas de similitud en PostgreSQL. Cloud SQL para PostgreSQL usa la versión 1.0. |
pg_squeeze | Elimina el espacio no utilizado de una tabla y opcionalmente usa un índice para ordenar registros o filas (tuplas) de la tabla. Para obtener más información sobre esta extensión, consulte PG_SQUEEZE en este documento. PostgreSQL Versiones 11 y posterior usan la versión 1.5. |
declaraciones pg_stat | Proporciona un medio para rastrear estadísticas de ejecución de todas las declaraciones SQL ejecutadas. PostgreSQL 9.6 usa la versión 1.4. PostgreSQL 10 y 11 use la versión 1.6. PostgreSQL 12 usa 1.7. PostgreSQL 13 usa 1.8. PostgreSQL 14 usa 1.9. PostgreSQL 15 y 16 usa 1.10. PostgreSQL 17 usa 1.11. |
pgTAP | Proporciona un marco de prueba unitario para PostgreSQL, escrito en PL/PGSQL y PL/SQL. Cloud SQL para PostgreSQL usa la versión 1.3.0. |
pg_trgm | Proporciona funciones y operadores para determinar la similitud del texto alfanumérico basado en la coincidencia de trigram, así como las clases de operadores de índice que admiten una búsqueda rápida de cadenas similares. PostgreSQL 9.6 y 10 usan la versión 1.3. PostgreSQL 11 y 12 use la versión 1.4. PostgreSQL 13 usa 1.5. PostgreSQL 14 y luego use la versión 1.6. |
pgtt | Crea y administra tablas temporales globales de estilo DB2 o Oracle en una base de datos PostgreSQL. |
vector de página | Una extensión de código abierto para almacenar y buscar integridades vectoriales en bases de datos PostgreSQL. |
pg_visibilidad | Proporciona una forma de examinar el mapa de visibilidad (VM) y la información de visibilidad a nivel de página de una tabla. Consulte también PG_VISIBILIDAD en este documento. Cloud SQL para PostgreSQL usa la versión 1.2. |
pg_wait_sampling | Recopila estadísticas de muestreo de eventos de espera, proporcionando datos de eventos de espera para procesos en servidores. Cloud SQL para PostgreSQL usa la versión 1.1.5. |
PL/Proxy | Manejador de lenguaje de procedimiento que permite las llamadas de procedimiento remoto entre las bases de datos PostgreSQL, con fragmentos opcionales. Vea también PL/proxy en este documento. Cloud SQL para PostgreSQL usa la versión 2.11.0. |
postgres_fdw | Permite que los envoltorios de datos extranjeros se creen dentro de las instancias o en las instancias. Vea también Postgres_FDW en este documento. PostgreSQL 9.6, 10, 11, 12 y 13 usa la versión 1.0. PostgreSQL 14 y luego use la versión 1.1. |
anonimizador postgresql | Máscaras o reemplaza información de identificación personal (PII) o datos confidenciales de una base de datos PostgreSQL. Para obtener más información, consulte la sección PostgreSQL_Anonymizer . Cloud SQL para PostgreSQL usa la versión 1.0.0. |
postgresql_hll | Proporciona una estructura de datos HyperLoglog ( Cloud SQL para PostgreSQL usa la versión 2.18. |
kit de reparación | Una colección de software de química y aprendizaje automático. Puede usar esta extensión para comparar, manipular e identificar estructuras moleculares. Cloud SQL para PostgreSQL usa la versión 4.6.1. |
refinar | Incluye funciones para verificar las restricciones de clave extranjera, la tabla de referencia y la tabla referenciada. Esta extensión también demuestra la interfaz de programación del servidor (SPI) . Cloud SQL para PostgreSQL usa la versión 1.0. |
sslinfo | Proporciona información sobre el certificado SSL que el cliente actual proporcionó cuando se conectó a la instancia. Cloud SQL para PostgreSQL usa la versión 1.2. |
función de tabla | Incluye varias funciones que devuelven tablas (múltiples filas). Cloud SQL para PostgreSQL usa la versión 1.0. |
tcn | Proporciona una función de activación que notifica a los oyentes de los cambios en el contenido de las tablas de la base de datos. Cloud SQL para PostgreSQL usa la versión 1.0. |
TDS_FDW | Proporciona un envoltorio de datos extranjero (FDW) para acceder a bases de datos, como Microsoft SQL Server y Sybase, que utilizan el protocolo de flujo de datos tabular (TDS). Cloud SQL para PostgreSQL usa la versión 2.0.4. |
tablas temporales | Proporciona soporte para tablas temporales. Una tabla temporal registra el período de tiempo en que una fila es válida desde una perspectiva de base de datos. Cloud SQL para PostgreSQL usa la versión 1.2.2. |
filas del sistema tsm | Proporciona el método de muestreo de tabla System_rows, que se puede utilizar en la cláusula de muestra de Tables de un comando SELECT. Cloud SQL para PostgreSQL usa la versión 1.0. |
tiempo del sistema tsm | Proporciona el método de muestreo de tabla System_time, que se puede utilizar en la cláusula de muestra de Tables de un comando SELECT. Cloud SQL para PostgreSQL usa la versión 1.0. |
sin acento | Un diccionario de búsqueda de texto que elimina los acentos (signos diacríticos) de Lexemes. Cloud SQL para PostgreSQL usa la versión 1.1. |
uuid-ossp | Proporciona funciones para generar identificadores universalmente únicos (UUID) utilizando uno de varios algoritmos estándar. Cloud SQL para PostgreSQL usa la versión 1.1. |
Más sobre algunas extensiones PostgreSQL
Esta sección describe más información sobre algunas de las extensiones PostgresQL compatibles en las tablas de arriba.
auto_explicación
Para comenzar a usar esta extensión en una instancia, on
el indicador cloudsql.enable_auto_explain
. Para obtener información sobre la configuración de los indicadores y para revisar los indicadores compatibles con esta extensión, consulte los indicadores de configuración de la base de datos .
Para ver los datos y eventos de registro que están asociados con los registros de los planes de ejecución que habilita esta extensión, consulte la documentación de registro en la nube .
Alternativamente, para un usuario que tiene el rol de cloudsqlsuperuser
(solo), puede usar el comando load
para cargar esta extensión para una sola sesión.
enlace de base de datos
Desde una sesión de base de datos, puede usar esta extensión para conectarse a bases de datos PostgreSQL y ejecutar consultas.
Actualmente, esta extensión funciona para dos instancias IP privadas de Cloud SQL dentro de la misma red VPC, o para bases de datos cruzadas dentro de la misma instancia.
Para obtener información adicional, consulte Dblink en la documentación PostgreSQL.
Use Dblink para conectarse con una contraseña
Para conectarse a bases de datos, o para conectarse a la misma instancia que otro usuario, debe especificar una contraseña. Por ejemplo, propósitos (pero no para fines de producción), aquí hay un fragmento de código:
SELECT * FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select id, name from table' \
) AS t(id int, name text);
Alternativamente, para configurar solo una conexión, aquí hay un fragmento de código, por ejemplo, por ejemplo (no para fines de producción):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
Use Dblink para conectarse sin contraseña
Para conectarse a la misma instancia que el mismo usuario, puede conectarse sin una contraseña. Por ejemplo:
Establezca el siguiente indicador de la base de datos para habilitar las conexiones locales sin contraseña
cloudsql.allow_passwordless_local_connections
Conecte sin especificar un host, lo que implica conectarse a la misma instancia. Aquí hay un ejemplo:
SELECT * FROM dblink('dbname=finance user=alice', 'select income from revenue') AS revenue(income integer);
El resultado podría ser similar al siguiente:
income -------- 1000 (1 row)
Para conectarse a bases de datos dentro de la misma instancia, no puede establecer el host en localhost o al 127.0.0.1
. En su lugar, debe usar la dirección IP que se muestra para su instancia en el Google Cloud consola.
Consulte también Postgres_FDW y PL/proxy en este documento.
inspección de página
Esta extensión inspecciona el contenido de las páginas de la base de datos en un nivel bajo. Para obtener más información, consulte PageInspect en la documentación PostgreSQL.
pg_bigm
Esta extensión habilita la búsqueda de texto completo y permite un índice de dos gramos (BigRam) para una búsqueda de texto completo más rápido.
Para comenzar a usar esta extensión en una instancia, on
el indicador cloudsql.enable_pg_bigm
. Las siguientes banderas también son compatibles:
-
pg_bigm.enable_recheck
-
pg_bigm.gin_key_limit
-
pg_bigm.similarity_limit
Para obtener información sobre la configuración de los indicadores y para revisar los indicadores compatibles con esta extensión, consulte los indicadores de configuración de la base de datos .
pg_cron
Para comenzar a usar PG_CRON en una instancia, on
el indicador cloudsql.enable_pg_cron
. Para obtener información sobre la configuración de los indicadores y para revisar los indicadores compatibles con esta extensión, consulte los indicadores de configuración de la base de datos .
Los trabajos se configuran como trabajadores de fondo, por lo que es posible que necesite usar técnicas estándar de PostgreSQL (como el indicador max_worker_processes
) para ajustar el número de esos trabajadores de fondo.
Para esta extensión, Cloud SQL admite el modo de trabajador de fondo, pero no la interfaz libpq. Por lo tanto, no se requiere autenticación de confianza directamente que involucre esta extensión.
pgfincore
Esta extensión contiene funciones para administrar páginas en la memoria de caché de disco del sistema operativo de PostgreSQL. Para obtener más información, consulte la documentación de PGFIncore .
pg_freespacemap
Esta extensión examina el mapa de espacio libre (FSM). Para obtener más información, consulte PG_FREESPACEMAP en la documentación PostgreSQL.
plan de sugerencias de pg
Para comenzar a usar esta extensión en una instancia, on
el indicador cloudsql.enable_pg_hint_plan
. Para obtener información sobre la configuración de los indicadores y para revisar los indicadores compatibles con esta extensión, consulte los indicadores de configuración de la base de datos .
Alternativamente, solo para un usuario con el rol de cloudsqlsuperuser
, puede usar el comando load
para cargar esta extensión para una sola sesión.
pg_partman
Esta extensión le permite crear y administrar conjuntos de particiones de tabla basados en el tiempo y basados en serie.
En la nube SQL, esta extensión no incluye el trabajador de fondo para el mantenimiento automático de la partición. En su lugar, puede usar, por ejemplo, un programador de nubes para impulsar el mantenimiento llamando a las funciones de mantenimiento a un intervalo regular.
pg_proctab
Estos son los pasos para usar la extensión PG_ProcTab para habilitar la utilidad PG_TOP :
- En la herramienta PSQL, ejecute el comando Crear extensión para PG_ProcTab.
- Descargue y ejecute PG_TOP .
- Al conectarse a una instancia de Cloud SQL para PostgreSQL, agregue la opción
-r
para conectarse a una base de datos remota, para obtener métricas.
Las siguientes métricas de toda la instancia, que se incluyen en la salida, incluyen el uso de otros agentes y servicios de apoyo en la instancia:
- Promedio de carga
- Estados de la CPU (% de usuario, agradable, sistema, inactivo e iowait)
- Memoria (usada, libre y almacenada en caché)
pg_repack
Esta extensión le permite eliminar la hinchazón de las tablas e índices. Opcionalmente, puede usar esta extensión para realizar un clúster en línea (tablas de pedido por índice de clúster). Para obtener más información, consulte la documentación PG_Repack . Además, para el uso de esta extensión en Cloud SQL, se necesita un procedimiento especial para agregar privilegios a un usuario.
Si un usuario fuera del rol de cloudsqlsuperuser
quiere usar una extensión, debe otorgar al usuario cloudsqlsuperuser
privilegios. Para obtener más información, en este documento, consulte el requisito de privilegios de superusuario . El siguiente ejemplo utiliza el comando GRANT
para agregar los privilegios necesarios.
Ejemplo de agregar privilegios
Por ejemplo, los propósitos a continuación, csuper1
es un cloudsqlsuperuser
y testdb
es una base de datos propiedad de testuser
. Para crear la extensión PG_Repack en testdb
, inicialmente ejecute los siguientes comandos:
Conéctese a
testdb
comocloudsqlsuperuser
:psql -U csuper1 -d testdb;
Otorgue al propietario de la base de datos, que es
testuser,
acsuper1
:GRANT testuser TO csuper1;
Crea la extensión:
CREATE EXTENSION pg_repack;
Ejecute el comando
pg_repack
en una tabla, comot1
entestdb
, comocsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
Después de completar el trabajo PG_Repack, revoque la subvención que realizó en el Paso 2:
REVOKE testuser FROM csuper1;
El comando pg_repack
podría fallar con el siguiente error:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
Si se produce ese error, intente configurar TCP KeepAlive en un valor más pequeño y luego ejecute el comando pg_repack
. Para obtener más información, consulte Tiempo de espera de conexiones (desde Compute Engine) .
pg_squeeze
Esta extensión elimina el espacio no utilizado de una tabla y opcionalmente usa un índice para clasificar las tuplas de la tabla. Para comenzar a usar la extensión en una instancia, on
el indicador cloudsql.enable_pg_squeeze
.
Esta extensión también admite la decodificación lógica escribiendo información adicional al registro de escritura (WAL). Para habilitar esta funcionalidad para la extensión, establezca el parámetro de configuración wal_level
en logical
o más alto on
el indicador cloudsql.logical_decoding
.
La extensión requiere que se establezca un valor para el indicador max_replication_slots
. Si no ha especificado un valor para este indicador, establezca el valor en 1
De lo contrario, agregue 1 al valor establecido para la bandera.
Para obtener información sobre la configuración de los indicadores y para revisar los indicadores compatibles con esta extensión, consulte los indicadores de configuración de la base de datos .
pgtt
Para comenzar a usar esta extensión en una instancia, on
el indicador pgtt.enabled
. Para obtener información sobre la configuración de los indicadores y para revisar los indicadores compatibles con esta extensión, consulte Configuración de los indicadores de la base de datos .
pg_visibilidad
Esta extensión proporciona una forma de examinar el mapa de visibilidad (VM) y la información de visibilidad a nivel de página de una tabla. Para obtener más información, consulte PG_VIBILIDAD en la documentación PostgreSQL.
PL/Proxy
Esta extensión es un manejador de lenguaje de procedimiento que permite las llamadas de procedimientos remotos entre las bases de datos PostgreSQL, con fragmentos opcionales.
Para obtener más información, consulte la documentación PL/proxy .
Las instancias de destino para las conexiones deben estar en la misma red VPC que la instancia de conexión. Además, no puede elegir, en elGoogle Cloud Consola, el botón Permitir solo las conexiones SSL para instancias de clúster.
Para conectarse a bases de datos dentro de la misma instancia, no puede establecer el host en localhost o al 127.0.0.1
. En su lugar, debe usar la dirección IP que se muestra para su instancia en el Google Cloud consola.
Vea también Postgres_FDW y Dblink en este documento.
anonimizador postgresql
Para comenzar a usar esta extensión en una instancia, on
el indicador cloudsql.enable_anon
. Para obtener información sobre la configuración de los indicadores y para revisar los indicadores compatibles con esta extensión, consulte Configuración de los indicadores de la base de datos .
postgres_fdw
Esta extensión permite que las tablas de otras bases de datos ("extranjeras" extranjeras) postgreSQL se expusen como tablas "extranjeras" en la base de datos actual. Esas tablas están disponibles para su uso, casi como si fueran tablas locales. Para obtener más información, consulte Postgres_FDW en la documentación PostgreSQL.
Esta extensión funciona para dos instancias IP privadas de Cloud SQL dentro de la misma red VPC, o para bases de datos cruzadas dentro de la misma instancia.
Para conectarse a bases de datos dentro de la misma instancia, no puede establecer el host en localhost o al 127.0.0.1
. En su lugar, debe usar la dirección IP que se muestra para su instancia en el Google Cloud consola.
Además, para una instancia en la que se almacenan los datos extranjeros, puede elegir la opción Permitir solo las conexiones SSL en la Google Cloud consola. No puede elegir la opción Requerir Certificados de cliente de confianza . Solo el cloudsqlsuperuser
puede ser el propietario de un envoltorio de datos extranjeros postgres_fdw
.
Consulte también PL/Proxy y Dblink en este documento.
postgresql-hll
Esta extensión introduce un nuevo tipo de datos, hll
, que es una estructura de datos HyperLoglog. Para obtener más información, consulte la documentación PostgreSQL-HLL .
Puede extender PostgreSQL agrupando los objetos SQL en un paquete y utilizándolos como unidad. Esta página contiene información sobre la configuración de las extensiones de PostgreSQL que es compatible con SQL en la nube.
Use extensiones PostgreSQL
Puede instalar solo las extensiones que la nube SQL admite. Para obtener más información, consulte las extensiones de PostgreSQL compatibles con Cloud SQL .
Instalar una extensión
Antes de usar una extensión, instálelo:
- En la herramienta PSQL, ejecute el comando Crear extensión .
Requisito de privilegios de superusuario
En la nube SQL, los usuarios solo pueden crear extensiones que forman parte del rol de cloudsqlsuperuser
. Cuando crea una nueva instancia de PostgreSQL, el usuario postgres
predeterminado se crea para usted (aunque debe establecer la contraseña del usuario). El usuario predeterminado postgres
es parte del rol de cloudsqlsuperuser
. Para obtener más información, consulte los usuarios de PostgreSQL .
Conexiones entre databás
Las instancias de destino para las conexiones deben estar en la misma red VPC que la instancia de conexión.
Para instancias de clúster, no puede elegir la opción Requerir certificados de cliente de confianza en elGoogle Cloud consola. Además, para conectarse a bases de datos dentro de la misma instancia, no puede establecer el host en localhost o al 127.0.0.1
. En su lugar, debe usar la dirección IP que se muestra para su instancia en el Google Cloud consola.
Solicitar soporte para una nueva extensión
No puede crear sus propias extensiones en Cloud SQL.
Para solicitar soporte para una extensión, haga clic en +1 sobre el problema abierto o cree un nuevo problema. Para obtener una lista de problemas e información de Open Cloud SQL sobre la creación de nuevos problemas, consulte o cree problemas y solicitudes de funciones, por producto .
Extensiones PostgreSQL compatibles con Cloud SQL
Para obtener información sobre el uso de una extensión específica, consulte el enlace de documentación en una de las tablas a continuación.
El soporte de SQL en la nube para las extensiones PostgreSQL se puede dividir en estas categorías:
- Extensiones posteriores a la Guía
- Extensiones de tipo de datos
- Extensiones de lenguaje
- Extensiones misceláneas
PostGIS
La extensión PostGIS es compatible con Cloud SQL para PostgreSQL para todas las versiones principales.
La siguiente tabla contiene las versiones de extensión de Postgis para cada SQL de nube para la versión PostgreSQL:
Cloud SQL para la versión PostgreSQL | Extensión posterior a |
PostgreSQL 9.6 | 3.2.5 |
PostgreSQL 10 | 3.2.5 |
PostgreSQL 11 | 3.2.5 |
PostgreSQL 12 | 3.4.4 |
PostgreSQL 13 | 3.5.2 |
PostgreSQL 14 | 3.5.2 |
PostgreSQL 15 | 3.5.2 |
PostgreSQL 16 | 3.5.2 |
PostgreSQL 17 | 3.5.2 |
Para una versión principal específica de PostgreSQL, en el comando Crear extensión , puede especificar una versión de extensión de Postgis utilizando la cláusula VERSION
.
La extensión posterior a la GAGIS incluye lo siguiente:
-
postgis
-
postgis_raster
-
postgis_sfcgal
-
postgis_tiger_geocoder
-
postgis_topology
-
address_standardizer
-
address_standardizer_data_us
Para obtener más información, consulte la instalación de Postgis .
Además, Cloud SQL para PostgreSQL incluye la versión 3.6.2 de la extensión pgRouting
, que extiende PostGIS. La extensión pgRouting
mejora el procesamiento geoespacial a través del enrutamiento y el análisis de la red.
Puede actualizar PostGIS y sus extensiones relacionadas con su última versión manualmente. Para obtener más información sobre la actualización de sus extensiones posteriores a la GAGIS, consulte Actualización de Postgis .
Extensiones de tipo de datos
Extensión | Descripción |
btree_gin | Proporciona clases de operador de GINA de muestra que implementan un comportamiento equivalente de árbol B. PostgreSQL 9.6 usa la versión 1.0. PostgreSQL 10 usa la versión 1.2. PostgreSQL 11 y luego use la versión 1.3. |
btree_gist | Proporciona clases de operador de índice GIST que implementan un comportamiento equivalente de árbol B. PostgreSQL 9.6 usa la versión 1.2. PostgreSQL 10, 11, 12 y 13 usa la versión 1.5. PostgreSQL 14 usa la versión 1.6. PostgreSQL 15 y luego use la versión 1.7. |
chkpass | Implementa un tipo de datos chkpass diseñado para almacenar contraseñas cifradas.PostgreSQL 9.6 y 10 usan la versión 1.0. No es compatible con otras versiones. |
cita textual | Proporciona un tipo de cadena de caracteres insensible al caso citext .PostgreSQL 9.6 usa la versión 1.3. PostgreSQL 10 usa la versión 1.4. PostgreSQL 11 usa la versión 1.5. PostgreSQL 12 y luego use la versión 1.6. |
cubo | Implementa un cube de tipo de datos para representar cubos multidimensionales.PostgreSQL 9.6 y 10 usan la versión 1.2. PostgreSQL 11 usa la versión 1.3. PostgreSQL 12 y 13 use la versión 1.4. PostgreSQL 14 y luego use la versión 1.5. |
hstore | Implementa el tipo de datos hstore para almacenar conjuntos de pares de clave/valor dentro de un solo valor PostgreSQL.PostgreSQL 9.6 y 10 usan la versión 1.4. PostgreSQL 11 usa la versión 1.5. PostgreSQL 12 usa la versión 1.6. PostgreSQL 13 usa la versión 1.7. PostgreSQL 14 y luego use la versión 1.8. |
ip4r | Proporciona tipos de datos para direcciones IPv4/V6 y rangos de direcciones, más soporte de índice. Cloud SQL para PostgreSQL usa la versión 2.4.2. |
no es | Proporciona tipos de datos para algunos estándares internacionales de numeración de productos. PostgreSQL 9.6 y 10 usan la versión 1.1. PostgreSQL 11 y luego use la versión 1.2. |
lo | Soporte para administrar objetos grandes (también llamados LOS o blobs). Cloud SQL para PostgreSQL usa la versión 1.1. |
ltree | Implementa un tipo de datos ltree para representar etiquetas de datos almacenados en una estructura jerárquica similar a un árbol.PostgreSQL 9.6, 10, 11 y 12 usan la versión 1.1. PostgreSQL 13, 14, 15 y 16 usan la versión 1.2. PostgreSQL 17 usa la versión 1.3. |
postgresql-hll | Introduce un nuevo tipo de datos, hll , que es una estructura de datos HyperLogLog. Vea también PostgreSQL-HLL en este documento.Cloud SQL para PostgreSQL usa la versión 2.18. |
prefijo | Proporciona soporte de índice de combate de prefijo, más. Cloud SQL para PostgreSQL usa la versión 1.2.0. |
Extensiones de lenguaje
Extensión | Descripción |
plpgsql | Un lenguaje de procedimiento cargable para crear funciones, procedimientos y desencadenantes. También puede usar este idioma para la ejecución directa del código en los bloques DO. Cloud SQL para PostgreSQL usa la versión 1.0. |
plv8 | Proporciona un lenguaje de procedimiento para habilitar JavaScript. Cloud SQL para PostgreSQL usa la versión 3.2.2, que a su vez usa V8 JavaScript Engine versión 11.5. |
Extensiones misceláneas
Extensión | Descripción |
amcheck | Proporciona funciones para verificar la consistencia lógica de la estructura de las relaciones, permitiendo que la aplicación PG_AMCHECK verifique la corrupción. |
auto_explicación | Permite el registro automático de los planes de ejecución de declaraciones lentas, para la resolución de problemas y más. Proporciona una forma automatizada de realizar la funcionalidad del comando Explicar . Consulte también Auto_Explan en este documento. |
autoinc | Proporciona funciones para incrementar los campos automáticamente. Este activador almacena el siguiente valor de una secuencia en un campo entero. Cloud SQL para PostgreSQL usa la versión 1.0. |
floración | Proporciona un método para acceder a índices basados en filtros Bloom. Un filtro Bloom es una estructura de datos de eficiencia de espacio que puede usar para probar si un elemento es un miembro de un conjunto. Cloud SQL para PostgreSQL usa la versión 1.0. |
enlace de base de datos | Proporciona funciones para conectarse a bases de datos PostgreSQL desde una sesión de base de datos. Vea también Dblink en este documento. Cloud SQL para PostgreSQL usa la versión 1.2. |
decoderbufs | Un decodificador lógico PostgreSQL que entrega datos de salida como búferes de protocolo, adaptados para Debezium. |
dict_int | Una plantilla de diccionario adicional para la búsqueda de texto completo que controla la indexación de enteros. Cloud SQL para PostgreSQL usa la versión 1.0. |
distancia terrestre | Proporciona dos enfoques para calcular grandes distancias de círculo en la superficie de la tierra. Cloud SQL para PostgreSQL usa la versión 1.1. |
coincidencia de cadena difusa | Proporciona varias funciones para determinar las similitudes y la distancia entre cadenas. PostgreSQL 9.6, 10, 11, 12, 13, 14 y 15 usa la versión 1.1. PostgreSQL 16 y luego use la versión 1.2 |
Google_ML_integration | Genera incrustaciones de vectores para traducir las indicaciones de texto en vectores numéricos utilizando un modelo de lenguaje grande (LLM). PostgreSQL 12 and later use version 1.4.2. Not supported for other versions. |
insertar_nombre_de_usuario | Provides functions for storing the current user's name into a text field. You can use this to track who last modified a row in a database table. Cloud SQL for PostgreSQL uses version 1.0. |
etiqueta | Provides an integer aggregator and an enumerator. Cloud SQL for PostgreSQL uses version 1.1. |
interray | Provides a set of functions and operators for manipulating null-free arrays of integers and performing indexed searches on them. PostgreSQL 9.6, 10, 11, and 12 use version 1.2. PostgreSQL 13 uses version 1.3. PostgreSQL 14 and later use version 1.5. |
fecha y hora de modificación | Provides functions for storing the current time into a timestamp field. You can use this to track the last time that a row in a database table is modified.Cloud SQL for PostgreSQL uses version 1.0. |
oracle_fdw | Provides a foreign data wrapper (fdw) for accessing Oracle databases easily and efficiently. Cloud SQL for PostgreSQL uses version 1.2. |
orafce | Provides functions and operators that emulate a subset of functions and packages from an Oracle database. Use these functions to port Oracle applications to PostgreSQL. PostgreSQL 9.6 and 10 use version 3.25. PostgreSQL 11 and later use version 4.13. |
inspección de página | Inspects the contents of database pages at a low level. Also see pageinspect in this document. PostgreSQL 9.6 uses version 1.5. PostgreSQL 10 uses version 1.6. PostgreSQL 11 and 12 use version 1.7. PostgreSQL 13 and 14 use version 1.8. PostgreSQL 15 uses version 1.11. PostgreSQL 16 and later use version 1.12. |
pgAudit | Collects audit data.
Possible values to set for the audit log files for all versions of pgAudit are For more information about using this extension with Cloud SQL, see Audit for PostgreSQL using pgAudit . |
pg_background | Lets you run arbitrary commands in a background worker. Cloud SQL for PostgreSQL uses version 1.2. |
pg_bigm | Enables full-text search, and allows a two-gram (bigram) index for faster full-text search. Also see pg_bigm in this document. |
pg_buffercache | Provides a means for examining what's happening in the shared buffer cache in real time. PostgreSQL 9.6 uses version 1.2. PostgreSQL 10, 11, 12, 13, 14 and 15 use version 1.3. PostgreSQL 16 uses version 1.4. PostgreSQL 17 uses version 1.5. |
pg_cron | Provides a cron-based job scheduler. This extension enables cron syntax to schedule PostgreSQL commands directly from the database. For more information about the extension, see pg_cron in this document. PostgreSQL versions 10 and later use version 1.6.4. |
pgcrypto | Provides cryptographic functions for PostgreSQL. Cloud SQL for PostgreSQL uses version 1.3. |
pglogical | Provides logical replication for PostgreSQL. See Setting up logical replication and decoding . Cloud SQL for PostgreSQL uses version 2.4.5. |
pgfincore | A set of functions to manage pages in operating system disk cache memory from PostgreSQL. Also see pgfincore in this document. Cloud SQL for PostgreSQL uses version 1.3.1. |
pg_freespacemap | Examines the free space map (FSM). Also see pg_freespacemap in this document. Cloud SQL for PostgreSQL uses version 1.2. |
plan de sugerencias de pg | Enables you to improve PostgreSQL execution plans using hints, which are simple descriptions in SQL comments. Also see pg_hint_plan in this document. |
pgoutput | This plugin is used by logical replication for change data capture. pgoutput is a default plugin and is therefore supported on all versions of Cloud SQL for PostgreSQL. |
pg_ivm | Enables you to make materialized views up-to-date in which only incremental changes are computed and applied on views rather than recomputing the contents from scratch. PostgreSQL versions 13 and later support version 1.9. |
pg_partman | Enables you to create and manage time-based and serial-based table partition sets. Also see pg_partman in this document. PostgreSQL versions 14 and later support version 5.2.4 while PostgreSQL versions that are earlier than 14 support only up to version 4.7.4. |
pg_precalentar | Provides a convenient way to load relation data into either the operating system buffer cache or the PostgreSQL buffer cache. PostgreSQL 9.6 and 10 use version 1.1. PostgreSQL 11 and later use version 1.2. |
pg_proctab | Enables you to use pg_top with Cloud SQL for PostgreSQL, and generate reports from the operating system process table. Also see pg_proctab in this document. |
pg_repack | Lets you remove bloat from tables and indexes. Optionally, lets you perform an online CLUSTER (order tables by cluster index). Also see pg_repack in this document. Cloud SQL for PostgreSQL uses version 1.5.0. |
bloqueos de crecimiento | Provides row locking information for the specified table. Cloud SQL for PostgreSQL uses version 1.2. |
pgstattuple | Provides various functions to obtain tuple-level statistics. PostgreSQL 9.6 uses version 1.4. All other versions use version 1.5. |
similitud_pg | Provides support for similarity queries on PostgreSQL. Cloud SQL for PostgreSQL uses version 1.0. |
pg_squeeze | Removes unused space from a table and optionally uses an index to sort records or rows (tuples) of the table. For more information about this extension, see pg_squeeze in this document. PostgreSQL versions 11 and later use version 1.5. |
declaraciones pg_stat | Provides a means for tracking execution statistics of all SQL statements executed. PostgreSQL 9.6 uses version 1.4. PostgreSQL 10 and 11 use version 1.6. PostgreSQL 12 uses 1.7. PostgreSQL 13 uses 1.8. PostgreSQL 14 uses 1.9. PostgreSQL 15 and 16 use 1.10. PostgreSQL 17 uses 1.11. |
pgTAP | Provides a unit testing framework for PostgreSQL, written in PL/pgSQL and PL/SQL. Cloud SQL for PostgreSQL uses version 1.3.0. |
pg_trgm | Provides functions and operators for determining the similarity of alphanumeric text based on trigram matching, as well as index operator classes that support fast searching for similar strings. PostgreSQL 9.6 and 10 use version 1.3. PostgreSQL 11 and 12 use version 1.4. PostgreSQL 13 uses 1.5. PostgreSQL 14 and later use version 1.6. |
pgtt | Creates and manages DB2 or Oracle-style global temporary tables in a PostgreSQL database. |
vector de página | An open-source extension for storing and searching vector embeddings in PostgreSQL databases. |
pg_visibilidad | Provides a way to examine the visibility map (VM) and the page-level visibility information of a table. Also see pg_visibility in this document. Cloud SQL for PostgreSQL uses version 1.2. |
pg_wait_sampling | Collects sampling statistics of wait events, providing wait event data for processes on servers. Cloud SQL for PostgreSQL uses version 1.1.5. |
PL/Proxy | Procedural language handler that allows remote procedure calls among PostgreSQL databases, with optional sharding. Also see PL/Proxy in this document. Cloud SQL for PostgreSQL uses version 2.11.0. |
postgres_fdw | Allows foreign data wrappers to be created within instances or across instances. Also see postgres_fdw in this document. PostgreSQL 9.6, 10, 11, 12, and 13 use version 1.0. PostgreSQL 14 and later use version 1.1. |
anonimizador postgresql | Masks or replaces personally identifiable information (PII) or sensitive data from a PostgreSQL database. For more information, see the postgresql_anonymizer section. Cloud SQL for PostgreSQL uses version 1.0.0. |
postgresql_hll | Provides a HyperLogLog ( Cloud SQL for PostgreSQL uses version 2.18. |
kit de reparación | A collection of cheminformatics and machine-learning software. You can use this extension for comparing, manipulating, and identifying molecular structures. Cloud SQL for PostgreSQL uses version 4.6.1. |
refinar | Includes functions to check foreign key restraints, the referencing table, and the referenced table. This extension also demonstrates the Server Programming Interface (SPI) . Cloud SQL for PostgreSQL uses version 1.0. |
sslinfo | Provides information about the SSL certificate that the current client provided when it connected to the instance. Cloud SQL for PostgreSQL uses version 1.2. |
función de tabla | Includes various functions that return tables (multiple rows). Cloud SQL for PostgreSQL uses version 1.0. |
tcn | Provides a trigger function that notifies listeners of changes to the content of database tables. Cloud SQL for PostgreSQL uses version 1.0. |
tds_fdw | Provides a foreign data wrapper (fdw) for accessing databases, such as Microsoft SQL Server and Sybase, that use the Tabular Data Stream (TDS) protocol. Cloud SQL for PostgreSQL uses version 2.0.4. |
tablas temporales | Provides support for temporal tables. A temporal table records the period of time when a row is valid from a database perspective. Cloud SQL for PostgreSQL uses version 1.2.2. |
filas del sistema tsm | Provides the table sampling method SYSTEM_ROWS, which can be used in the TABLESAMPLE clause of a SELECT command. Cloud SQL for PostgreSQL uses version 1.0. |
tiempo del sistema tsm | Provides the table sampling method SYSTEM_TIME, which can be used in the TABLESAMPLE clause of a SELECT command. Cloud SQL for PostgreSQL uses version 1.0. |
sin acento | A text search dictionary that removes accents (diacritic signs) from lexemes. Cloud SQL for PostgreSQL uses version 1.1. |
uuid-ossp | Provides functions to generate universally unique identifiers (UUIDs) using one of several standard algorithms. Cloud SQL for PostgreSQL uses version 1.1. |
More about some PostgreSQL extensions
This section describes more information about some of the supported PostgreSQL extensions in the tables above.
auto_explicación
To begin using this extension on an instance, set the cloudsql.enable_auto_explain
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
To view logging data and events that are associated with the logs of the execution plans that this extension enables, see the Cloud Logging documentation.
Alternatively, for a user that has the cloudsqlsuperuser
role (only), you can use the load
command to load this extension for one session.
enlace de base de datos
From within a database session, you can use this extension to connect to PostgreSQL databases and execute queries.
Currently, this extension works for two Cloud SQL private IP instances within the same VPC network, or for cross databases within the same instance.
For additional information, see dblink in the PostgreSQL documentation.
Use dblink to connect with a password
To connect to databases, or to connect to the same instance as another user, you must specify a password. For example purposes (but not for production purposes), here is a code snippet:
SELECT * FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select id, name from table' \
) AS t(id int, name text);
Alternatively, to only set up a connection, here is a code snippet for example purposes (not for production purposes):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
Use dblink to connect without a password
Set the following database flag to enable local connections without a password
cloudsql.allow_passwordless_local_connections
SELECT * FROM dblink('dbname=finance user=alice', 'select income from revenue') AS revenue(income integer);
The result could be similar to the following:
income -------- 1000 (1 row)
To connect to databases within the same instance, you cannot set host to localhost or to 127.0.0.1
. Instead, you must use the IP address shown for your instance in the Google Cloud consola.
Also see postgres_fdw and PL/Proxy in this document.
inspección de página
This extension inspects the contents of database pages at a low level. For more information, see pageinspect in the PostgreSQL documentation.
pg_bigm
This extension enables full-text search, and allows a two-gram (bigram) index for faster full-text search.
To begin using this extension on an instance, set the cloudsql.enable_pg_bigm
flag to on
. The following flags also are supported:
-
pg_bigm.enable_recheck
-
pg_bigm.gin_key_limit
-
pg_bigm.similarity_limit
For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
pg_cron
To begin using pg_cron on an instance, set the cloudsql.enable_pg_cron
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
The jobs are configured as background workers, so you might need to use standard PostgreSQL techniques (such as the max_worker_processes
flag) to adjust the number of those background workers.
For this extension, Cloud SQL supports the background worker mode, but not the libpq interface. Therefore, trust authentication directly involving this extension is not required.
pgfincore
This extension contains functions for managing pages in operating system disk cache memory from PostgreSQL. For more information, see the pgfincore documentation .
pg_freespacemap
This extension examines the free space map (FSM). For more information, see pg_freespacemap in the PostgreSQL documentation.
plan de sugerencias de pg
To begin using this extension on an instance, set the cloudsql.enable_pg_hint_plan
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
Alternatively, for only a user with the cloudsqlsuperuser
role, you can use the load
command to load this extension for one session.
pg_partman
This extension enables you to create and manage time-based and serial-based table partition sets.
In Cloud SQL, this extension doesn't include the background worker for automatic partition maintenance. Instead, you can use, for example, Cloud Scheduler to drive maintenance by calling maintenance functions at a regular interval.
pg_proctab
Here are the steps to use the pg_proctab extension to enable the pg_top utility:
- In the psql tool, run the CREATE EXTENSION command for pg_proctab.
- Download and run pg_top .
- When connecting to a Cloud SQL for PostgreSQL instance, add the
-r
option for connecting to a remote database, for getting metrics.
The following instance-wide metrics, which are included in the output, include usage by other supporting agents and services in the instance:
- Promedio de carga
- CPU states (% user, nice, system, idle, and iowait)
- Memory (used, free, and cached)
pg_repack
This extension enables you to remove bloat from tables and indexes. Optionally, you can use this extension to perform an online CLUSTER (order tables by cluster index). For more information, see the pg_repack documentation . Additionally, for use of this extension in Cloud SQL, a special procedure is needed for adding privileges to a user.
If a user outside of the cloudsqlsuperuser
role wants to use an extension, you must grant the user cloudsqlsuperuser
privileges. For more information, in this document, see Requirement for superuser privileges . The following example uses the GRANT
command to add the necessary privileges.
Example of adding privileges
For example purposes below, csuper1
is a cloudsqlsuperuser
and testdb
is a database owned by testuser
. To create the pg_repack extension in testdb
, initially run the following commands:
Connect to
testdb
as thecloudsqlsuperuser
:psql -U csuper1 -d testdb;
Grant the database owner, which is
testuser,
tocsuper1
:GRANT testuser TO csuper1;
Create the extension:
CREATE EXTENSION pg_repack;
Run the
pg_repack
command on a table, such ast1
intestdb
, ascsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
After the pg_repack job is completed, revoke the grant that you performed in step 2:
REVOKE testuser FROM csuper1;
The pg_repack
command might fail with the following error:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
If that error occurs, try setting TCP keepalives to a smaller value and then run the pg_repack
command. For more information, see Connections timeout (from Compute Engine) .
pg_squeeze
This extension removes unused space from a table and optionally uses an index to sort tuples of the table. To begin using the extension on an instance, set the cloudsql.enable_pg_squeeze
flag to on
.
This extension also supports logical decoding by writing additional information to the write-ahead log (WAL). To enable this functionality for the extension, set the wal_level
configuration parameter to logical
or higher by setting the cloudsql.logical_decoding
flag to on
.
The extension requires a value to be set for the max_replication_slots
flag. If you haven't specified a value for this flag, then set the value to 1
. Otherwise, add 1 to the value that's set for the flag.
For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
pgtt
To begin using this extension on an instance, set the pgtt.enabled
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configuring database flags .
pg_visibilidad
This extension provides a way to examine the visibility map (VM) and the page-level visibility information of a table. For more information, see pg_visibility in the PostgreSQL documentation.
PL/Proxy
This extension is a procedural language handler that allows remote procedure calls among PostgreSQL databases, with optional sharding.
For more information, see the PL/Proxy documentation .
The target instances for connections must be in the same VPC network as the connecting instance. Additionally, you cannot choose, in theGoogle Cloud console, the Allow only SSL connections button for cluster instances.
To connect to databases within the same instance, you cannot set host to localhost or to 127.0.0.1
. Instead, you must use the IP address shown for your instance in the Google Cloud consola.
Also see postgres_fdw and dblink in this document.
anonimizador postgresql
To begin using this extension on an instance, set the cloudsql.enable_anon
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configuring database flags .
postgres_fdw
This extension allows tables from other ("foreign") PostgreSQL databases to be exposed as "foreign" tables in the current database. Those tables then are available for use, almost as if they were local tables. For more information, see postgres_fdw in the PostgreSQL documentation.
This extension works for two Cloud SQL private IP instances within the same VPC network, or for cross databases within the same instance.
To connect to databases within the same instance, you cannot set host to localhost or to 127.0.0.1
. Instead, you must use the IP address shown for your instance in the Google Cloud consola.
Additionally, for an instance where foreign data is stored, you can choose the Allow only SSL connections option in the Google Cloud console. You can't choose the Require trusted client certificates option. Only the cloudsqlsuperuser
can be the owner of a postgres_fdw
foreign data wrapper.
Also see PL/Proxy and dblink in this document.
postgresql-hll
This extension introduces a new data type, hll
, which is a HyperLogLog data structure. For more information, see the postgresql-hll documentation .
You can extend PostgreSQL by bundling SQL objects into a package and using them as a unit. This page contains information about configuring the PostgreSQL extensions that Cloud SQL supports.
Use PostgreSQL extensions
You can install only the extensions that Cloud SQL supports. For more information, see PostgreSQL extensions supported by Cloud SQL .
Instalar una extensión
Before using an extension, install it:
- In the psql tool, run the CREATE EXTENSION command.
Requirement for superuser privileges
In Cloud SQL, extensions can only be created by users that are part of the cloudsqlsuperuser
role. When you create a new PostgreSQL instance, the default postgres
user is created for you (although you must set the user's password). The default postgres
user is part of the cloudsqlsuperuser
role. For more information, see About PostgreSQL users .
Inter-database connections
The target instances for connections must be in the same VPC network as the connecting instance.
For cluster instances, you can't choose the Require trusted client certificates option in theGoogle Cloud console. Additionally, to connect to databases within the same instance, you cannot set host to localhost or to 127.0.0.1
. Instead, you must use the IP address shown for your instance in the Google Cloud consola.
Request support for a new extension
You cannot create your own extensions in Cloud SQL.
To request support for an extension, click +1 on the open issue or create a new issue. For a list of open Cloud SQL issues and information about creating new issues, see Search for or create issues and feature requests, by product .
PostgreSQL extensions supported by Cloud SQL
For information about using a specific extension, see the documentation link in one of the tables below.
Cloud SQL support for PostgreSQL extensions can be divided into these categories:
PostGIS
The PostGIS extension is supported for Cloud SQL for PostgreSQL for all major versions.
The following table contains the PostGIS extension versions for each Cloud SQL for PostgreSQL version:
Cloud SQL for PostgreSQL version | PostGIS extension |
PostgreSQL 9.6 | 3.2.5 |
PostgreSQL 10 | 3.2.5 |
PostgreSQL 11 | 3.2.5 |
PostgreSQL 12 | 3.4.4 |
PostgreSQL 13 | 3.5.2 |
PostgreSQL 14 | 3.5.2 |
PostgreSQL 15 | 3.5.2 |
PostgreSQL 16 | 3.5.2 |
PostgreSQL 17 | 3.5.2 |
For a specific PostgreSQL major version, in the CREATE EXTENSION command, you can specify a PostGIS extension version by using the VERSION
clause.
The PostGIS extension includes the following:
-
postgis
-
postgis_raster
-
postgis_sfcgal
-
postgis_tiger_geocoder
-
postgis_topology
-
address_standardizer
-
address_standardizer_data_us
For more information, see PostGIS Installation .
Additionally, Cloud SQL for PostgreSQL includes version 3.6.2 of the pgRouting
extension, which extends PostGIS. The pgRouting
extension enhances geospatial processing through network routing and analysis.
You can upgrade PostGIS and its related extensions to their latest version manually. To learn more about upgrading your PostGIS extensions, see Upgrading PostGIS .
Data type extensions
Extensión | Descripción |
btree_gin | Provides sample GIN operator classes that implement B-tree equivalent behavior. PostgreSQL 9.6 uses version 1.0. PostgreSQL 10 uses version 1.2. PostgreSQL 11 and later use version 1.3. |
btree_gist | Provides GiST index operator classes that implement B-tree equivalent behavior. PostgreSQL 9.6 uses version 1.2. PostgreSQL 10, 11, 12, and 13 use version 1.5. PostgreSQL 14 uses version 1.6. PostgreSQL 15 and later use version 1.7. |
chkpass | Implements a data type chkpass that is designed for storing encrypted passwords.PostgreSQL 9.6 and 10 use version 1.0. Not supported for other versions. |
cita textual | Provides a case-insensitive character string type citext .PostgreSQL 9.6 uses version 1.3. PostgreSQL 10 uses version 1.4. PostgreSQL 11 uses version 1.5. PostgreSQL 12 and later use version 1.6. |
cubo | Implements a data type cube for representing multidimensional cubes.PostgreSQL 9.6 and 10 use version 1.2. PostgreSQL 11 uses version 1.3. PostgreSQL 12 and 13 use version 1.4. PostgreSQL 14 and later use version 1.5. |
hstore | Implements the hstore data type for storing sets of key/value pairs within a single PostgreSQL value.PostgreSQL 9.6 and 10 use version 1.4. PostgreSQL 11 uses version 1.5. PostgreSQL 12 uses version 1.6. PostgreSQL 13 uses version 1.7. PostgreSQL 14 and later use version 1.8. |
ip4r | Provides data types for IPv4/v6 addresses, and address ranges, plus index support. Cloud SQL for PostgreSQL uses version 2.4.2. |
no es | Provides data types for some international product numbering standards. PostgreSQL 9.6 and 10 use version 1.1. PostgreSQL 11 and later use version 1.2. |
lo | Support for managing Large Objects (also called LOs or BLOBs). Cloud SQL for PostgreSQL uses version 1.1. |
ltree | Implements a data type ltree for representing labels of data stored in a hierarchical tree-like structure.PostgreSQL 9.6, 10, 11, and 12 use version 1.1. PostgreSQL 13, 14, 15, and 16 use version 1.2. PostgreSQL 17 uses version 1.3. |
postgresql-hll | Introduces a new data type, hll , which is a HyperLogLog data structure. Also see postgresql-hll in this document.Cloud SQL for PostgreSQL uses version 2.18. |
prefijo | Provides prefix-matching, plus index support. Cloud SQL for PostgreSQL uses version 1.2.0. |
Extensiones de lenguaje
Extensión | Descripción |
plpgsql | A loadable procedural language for creating functions, procedures and triggers. You also can use this language for direct execution of code in DO blocks. Cloud SQL for PostgreSQL uses version 1.0. |
plv8 | Provides a procedural language for enabling JavaScript. Cloud SQL for PostgreSQL uses version 3.2.2, which in turn uses V8 JavaScript engine version 11.5. |
Miscellaneous extensions
Extensión | Descripción |
amcheck | Provides functions for verifying the logical consistency of the structure of relations, enabling the pg_amcheck application to check for corruption. |
auto_explicación | Enables automatic logging of execution plans of slow statements, for troubleshooting and more. Provides an automated way to perform the functionality of the EXPLAIN command. Also see auto_explain in this document. |
autoinc | Provides functions for incrementing fields automatically. This trigger stores the next value of a sequence into an integer field. Cloud SQL for PostgreSQL uses version 1.0. |
floración | Provides a method to access indexes based on bloom filters. A bloom filter is a space-efficient data structure that you can use to test whether an element is a member of a set. Cloud SQL for PostgreSQL uses version 1.0. |
enlace de base de datos | Provides functions to connect to PostgreSQL databases from within a database session. Also see dblink in this document. Cloud SQL for PostgreSQL uses version 1.2. |
decoderbufs | A PostgreSQL logical decoder that delivers output data as Protocol Buffers, adapted for Debezium. |
dict_int | An add-on dictionary template for full-text search that controls the indexing of integers. Cloud SQL for PostgreSQL uses version 1.0. |
distancia terrestre | Provides two approaches to calculating great circle distances on the surface of the Earth. Cloud SQL for PostgreSQL uses version 1.1. |
coincidencia de cadena difusa | Provides several functions to determine similarities and distance between strings. PostgreSQL 9.6, 10, 11, 12, 13, 14 and 15 use version 1.1. PostgreSQL 16 and later use version 1.2 |
google_ml_integration | Generates vector embeddings to translate text prompts into numerical vectors using a large language model (LLM). PostgreSQL 12 and later use version 1.4.2. Not supported for other versions. |
insertar_nombre_de_usuario | Provides functions for storing the current user's name into a text field. You can use this to track who last modified a row in a database table. Cloud SQL for PostgreSQL uses version 1.0. |
etiqueta | Provides an integer aggregator and an enumerator. Cloud SQL for PostgreSQL uses version 1.1. |
interray | Provides a set of functions and operators for manipulating null-free arrays of integers and performing indexed searches on them. PostgreSQL 9.6, 10, 11, and 12 use version 1.2. PostgreSQL 13 uses version 1.3. PostgreSQL 14 and later use version 1.5. |
fecha y hora de modificación | Provides functions for storing the current time into a timestamp field. You can use this to track the last time that a row in a database table is modified.Cloud SQL for PostgreSQL uses version 1.0. |
oracle_fdw | Provides a foreign data wrapper (fdw) for accessing Oracle databases easily and efficiently. Cloud SQL for PostgreSQL uses version 1.2. |
orafce | Provides functions and operators that emulate a subset of functions and packages from an Oracle database. Use these functions to port Oracle applications to PostgreSQL. PostgreSQL 9.6 and 10 use version 3.25. PostgreSQL 11 and later use version 4.13. |
inspección de página | Inspects the contents of database pages at a low level. Also see pageinspect in this document. PostgreSQL 9.6 uses version 1.5. PostgreSQL 10 uses version 1.6. PostgreSQL 11 and 12 use version 1.7. PostgreSQL 13 and 14 use version 1.8. PostgreSQL 15 uses version 1.11. PostgreSQL 16 and later use version 1.12. |
pgAudit | Collects audit data.
Possible values to set for the audit log files for all versions of pgAudit are For more information about using this extension with Cloud SQL, see Audit for PostgreSQL using pgAudit . |
pg_background | Lets you run arbitrary commands in a background worker. Cloud SQL for PostgreSQL uses version 1.2. |
pg_bigm | Enables full-text search, and allows a two-gram (bigram) index for faster full-text search. Also see pg_bigm in this document. |
pg_buffercache | Provides a means for examining what's happening in the shared buffer cache in real time. PostgreSQL 9.6 uses version 1.2. PostgreSQL 10, 11, 12, 13, 14 and 15 use version 1.3. PostgreSQL 16 uses version 1.4. PostgreSQL 17 uses version 1.5. |
pg_cron | Provides a cron-based job scheduler. This extension enables cron syntax to schedule PostgreSQL commands directly from the database. For more information about the extension, see pg_cron in this document. PostgreSQL versions 10 and later use version 1.6.4. |
pgcrypto | Provides cryptographic functions for PostgreSQL. Cloud SQL for PostgreSQL uses version 1.3. |
pglogical | Provides logical replication for PostgreSQL. See Setting up logical replication and decoding . Cloud SQL for PostgreSQL uses version 2.4.5. |
pgfincore | A set of functions to manage pages in operating system disk cache memory from PostgreSQL. Also see pgfincore in this document. Cloud SQL for PostgreSQL uses version 1.3.1. |
pg_freespacemap | Examines the free space map (FSM). Also see pg_freespacemap in this document. Cloud SQL for PostgreSQL uses version 1.2. |
plan de sugerencias de pg | Enables you to improve PostgreSQL execution plans using hints, which are simple descriptions in SQL comments. Also see pg_hint_plan in this document. |
pgoutput | This plugin is used by logical replication for change data capture. pgoutput is a default plugin and is therefore supported on all versions of Cloud SQL for PostgreSQL. |
pg_ivm | Enables you to make materialized views up-to-date in which only incremental changes are computed and applied on views rather than recomputing the contents from scratch. PostgreSQL versions 13 and later support version 1.9. |
pg_partman | Enables you to create and manage time-based and serial-based table partition sets. Also see pg_partman in this document. PostgreSQL versions 14 and later support version 5.2.4 while PostgreSQL versions that are earlier than 14 support only up to version 4.7.4. |
pg_precalentar | Provides a convenient way to load relation data into either the operating system buffer cache or the PostgreSQL buffer cache. PostgreSQL 9.6 and 10 use version 1.1. PostgreSQL 11 and later use version 1.2. |
pg_proctab | Enables you to use pg_top with Cloud SQL for PostgreSQL, and generate reports from the operating system process table. Also see pg_proctab in this document. |
pg_repack | Lets you remove bloat from tables and indexes. Optionally, lets you perform an online CLUSTER (order tables by cluster index). Also see pg_repack in this document. Cloud SQL for PostgreSQL uses version 1.5.0. |
bloqueos de crecimiento | Provides row locking information for the specified table. Cloud SQL for PostgreSQL uses version 1.2. |
pgstattuple | Provides various functions to obtain tuple-level statistics. PostgreSQL 9.6 uses version 1.4. All other versions use version 1.5. |
similitud_pg | Provides support for similarity queries on PostgreSQL. Cloud SQL for PostgreSQL uses version 1.0. |
pg_squeeze | Removes unused space from a table and optionally uses an index to sort records or rows (tuples) of the table. For more information about this extension, see pg_squeeze in this document. PostgreSQL versions 11 and later use version 1.5. |
declaraciones pg_stat | Provides a means for tracking execution statistics of all SQL statements executed. PostgreSQL 9.6 uses version 1.4. PostgreSQL 10 and 11 use version 1.6. PostgreSQL 12 uses 1.7. PostgreSQL 13 uses 1.8. PostgreSQL 14 uses 1.9. PostgreSQL 15 and 16 use 1.10. PostgreSQL 17 uses 1.11. |
pgTAP | Provides a unit testing framework for PostgreSQL, written in PL/pgSQL and PL/SQL. Cloud SQL for PostgreSQL uses version 1.3.0. |
pg_trgm | Provides functions and operators for determining the similarity of alphanumeric text based on trigram matching, as well as index operator classes that support fast searching for similar strings. PostgreSQL 9.6 and 10 use version 1.3. PostgreSQL 11 and 12 use version 1.4. PostgreSQL 13 uses 1.5. PostgreSQL 14 and later use version 1.6. |
pgtt | Creates and manages DB2 or Oracle-style global temporary tables in a PostgreSQL database. |
vector de página | An open-source extension for storing and searching vector embeddings in PostgreSQL databases. |
pg_visibilidad | Provides a way to examine the visibility map (VM) and the page-level visibility information of a table. Also see pg_visibility in this document. Cloud SQL for PostgreSQL uses version 1.2. |
pg_wait_sampling | Collects sampling statistics of wait events, providing wait event data for processes on servers. Cloud SQL for PostgreSQL uses version 1.1.5. |
PL/Proxy | Procedural language handler that allows remote procedure calls among PostgreSQL databases, with optional sharding. Also see PL/Proxy in this document. Cloud SQL for PostgreSQL uses version 2.11.0. |
postgres_fdw | Allows foreign data wrappers to be created within instances or across instances. Also see postgres_fdw in this document. PostgreSQL 9.6, 10, 11, 12, and 13 use version 1.0. PostgreSQL 14 and later use version 1.1. |
anonimizador postgresql | Masks or replaces personally identifiable information (PII) or sensitive data from a PostgreSQL database. For more information, see the postgresql_anonymizer section. Cloud SQL for PostgreSQL uses version 1.0.0. |
postgresql_hll | Provides a HyperLogLog ( Cloud SQL for PostgreSQL uses version 2.18. |
kit de reparación | A collection of cheminformatics and machine-learning software. You can use this extension for comparing, manipulating, and identifying molecular structures. Cloud SQL for PostgreSQL uses version 4.6.1. |
refinar | Includes functions to check foreign key restraints, the referencing table, and the referenced table. This extension also demonstrates the Server Programming Interface (SPI) . Cloud SQL for PostgreSQL uses version 1.0. |
sslinfo | Provides information about the SSL certificate that the current client provided when it connected to the instance. Cloud SQL for PostgreSQL uses version 1.2. |
función de tabla | Includes various functions that return tables (multiple rows). Cloud SQL for PostgreSQL uses version 1.0. |
tcn | Provides a trigger function that notifies listeners of changes to the content of database tables. Cloud SQL for PostgreSQL uses version 1.0. |
tds_fdw | Provides a foreign data wrapper (fdw) for accessing databases, such as Microsoft SQL Server and Sybase, that use the Tabular Data Stream (TDS) protocol. Cloud SQL for PostgreSQL uses version 2.0.4. |
tablas temporales | Provides support for temporal tables. A temporal table records the period of time when a row is valid from a database perspective. Cloud SQL for PostgreSQL uses version 1.2.2. |
filas del sistema tsm | Provides the table sampling method SYSTEM_ROWS, which can be used in the TABLESAMPLE clause of a SELECT command. Cloud SQL for PostgreSQL uses version 1.0. |
tiempo del sistema tsm | Provides the table sampling method SYSTEM_TIME, which can be used in the TABLESAMPLE clause of a SELECT command. Cloud SQL for PostgreSQL uses version 1.0. |
sin acento | A text search dictionary that removes accents (diacritic signs) from lexemes. Cloud SQL for PostgreSQL uses version 1.1. |
uuid-ossp | Provides functions to generate universally unique identifiers (UUIDs) using one of several standard algorithms. Cloud SQL for PostgreSQL uses version 1.1. |
More about some PostgreSQL extensions
This section describes more information about some of the supported PostgreSQL extensions in the tables above.
auto_explicación
To begin using this extension on an instance, set the cloudsql.enable_auto_explain
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
To view logging data and events that are associated with the logs of the execution plans that this extension enables, see the Cloud Logging documentation.
Alternatively, for a user that has the cloudsqlsuperuser
role (only), you can use the load
command to load this extension for one session.
enlace de base de datos
From within a database session, you can use this extension to connect to PostgreSQL databases and execute queries.
Currently, this extension works for two Cloud SQL private IP instances within the same VPC network, or for cross databases within the same instance.
For additional information, see dblink in the PostgreSQL documentation.
Use dblink to connect with a password
To connect to databases, or to connect to the same instance as another user, you must specify a password. For example purposes (but not for production purposes), here is a code snippet:
SELECT * FROM dblink (
'dbname=name port=1234 host=host user=user password=password',
'select id, name from table' \
) AS t(id int, name text);
Alternatively, to only set up a connection, here is a code snippet for example purposes (not for production purposes):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
Use dblink to connect without a password
Set the following database flag to enable local connections without a password
cloudsql.allow_passwordless_local_connections
SELECT * FROM dblink('dbname=finance user=alice', 'select income from revenue') AS revenue(income integer);
The result could be similar to the following:
income -------- 1000 (1 row)
To connect to databases within the same instance, you cannot set host to localhost or to 127.0.0.1
. Instead, you must use the IP address shown for your instance in the Google Cloud consola.
Also see postgres_fdw and PL/Proxy in this document.
inspección de página
This extension inspects the contents of database pages at a low level. For more information, see pageinspect in the PostgreSQL documentation.
pg_bigm
This extension enables full-text search, and allows a two-gram (bigram) index for faster full-text search.
To begin using this extension on an instance, set the cloudsql.enable_pg_bigm
flag to on
. The following flags also are supported:
-
pg_bigm.enable_recheck
-
pg_bigm.gin_key_limit
-
pg_bigm.similarity_limit
For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
pg_cron
To begin using pg_cron on an instance, set the cloudsql.enable_pg_cron
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
The jobs are configured as background workers, so you might need to use standard PostgreSQL techniques (such as the max_worker_processes
flag) to adjust the number of those background workers.
For this extension, Cloud SQL supports the background worker mode, but not the libpq interface. Therefore, trust authentication directly involving this extension is not required.
pgfincore
This extension contains functions for managing pages in operating system disk cache memory from PostgreSQL. For more information, see the pgfincore documentation .
pg_freespacemap
This extension examines the free space map (FSM). For more information, see pg_freespacemap in the PostgreSQL documentation.
plan de sugerencias de pg
To begin using this extension on an instance, set the cloudsql.enable_pg_hint_plan
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
Alternatively, for only a user with the cloudsqlsuperuser
role, you can use the load
command to load this extension for one session.
pg_partman
This extension enables you to create and manage time-based and serial-based table partition sets.
In Cloud SQL, this extension doesn't include the background worker for automatic partition maintenance. Instead, you can use, for example, Cloud Scheduler to drive maintenance by calling maintenance functions at a regular interval.
pg_proctab
Here are the steps to use the pg_proctab extension to enable the pg_top utility:
- In the psql tool, run the CREATE EXTENSION command for pg_proctab.
- Download and run pg_top .
- When connecting to a Cloud SQL for PostgreSQL instance, add the
-r
option for connecting to a remote database, for getting metrics.
The following instance-wide metrics, which are included in the output, include usage by other supporting agents and services in the instance:
- Promedio de carga
- CPU states (% user, nice, system, idle, and iowait)
- Memory (used, free, and cached)
pg_repack
This extension enables you to remove bloat from tables and indexes. Optionally, you can use this extension to perform an online CLUSTER (order tables by cluster index). For more information, see the pg_repack documentation . Additionally, for use of this extension in Cloud SQL, a special procedure is needed for adding privileges to a user.
If a user outside of the cloudsqlsuperuser
role wants to use an extension, you must grant the user cloudsqlsuperuser
privileges. For more information, in this document, see Requirement for superuser privileges . The following example uses the GRANT
command to add the necessary privileges.
Example of adding privileges
For example purposes below, csuper1
is a cloudsqlsuperuser
and testdb
is a database owned by testuser
. To create the pg_repack extension in testdb
, initially run the following commands:
Connect to
testdb
as thecloudsqlsuperuser
:psql -U csuper1 -d testdb;
Grant the database owner, which is
testuser,
tocsuper1
:GRANT testuser TO csuper1;
Create the extension:
CREATE EXTENSION pg_repack;
Run the
pg_repack
command on a table, such ast1
intestdb
, ascsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
After the pg_repack job is completed, revoke the grant that you performed in step 2:
REVOKE testuser FROM csuper1;
The pg_repack
command might fail with the following error:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
If that error occurs, try setting TCP keepalives to a smaller value and then run the pg_repack
command. For more information, see Connections timeout (from Compute Engine) .
pg_squeeze
This extension removes unused space from a table and optionally uses an index to sort tuples of the table. To begin using the extension on an instance, set the cloudsql.enable_pg_squeeze
flag to on
.
This extension also supports logical decoding by writing additional information to the write-ahead log (WAL). To enable this functionality for the extension, set the wal_level
configuration parameter to logical
or higher by setting the cloudsql.logical_decoding
flag to on
.
The extension requires a value to be set for the max_replication_slots
flag. If you haven't specified a value for this flag, then set the value to 1
. Otherwise, add 1 to the value that's set for the flag.
For information about setting flags, and to review the flags supported for this extension, see Configure database flags .
pgtt
To begin using this extension on an instance, set the pgtt.enabled
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configuring database flags .
pg_visibilidad
This extension provides a way to examine the visibility map (VM) and the page-level visibility information of a table. For more information, see pg_visibility in the PostgreSQL documentation.
PL/Proxy
This extension is a procedural language handler that allows remote procedure calls among PostgreSQL databases, with optional sharding.
For more information, see the PL/Proxy documentation .
The target instances for connections must be in the same VPC network as the connecting instance. Additionally, you cannot choose, in theGoogle Cloud console, the Allow only SSL connections button for cluster instances.
To connect to databases within the same instance, you cannot set host to localhost or to 127.0.0.1
. Instead, you must use the IP address shown for your instance in the Google Cloud consola.
Also see postgres_fdw and dblink in this document.
anonimizador postgresql
To begin using this extension on an instance, set the cloudsql.enable_anon
flag to on
. For information about setting flags, and to review the flags supported for this extension, see Configuring database flags .
postgres_fdw
This extension allows tables from other ("foreign") PostgreSQL databases to be exposed as "foreign" tables in the current database. Those tables then are available for use, almost as if they were local tables. For more information, see postgres_fdw in the PostgreSQL documentation.
This extension works for two Cloud SQL private IP instances within the same VPC network, or for cross databases within the same instance.
To connect to databases within the same instance, you cannot set host to localhost or to 127.0.0.1
. Instead, you must use the IP address shown for your instance in the Google Cloud consola.
Additionally, for an instance where foreign data is stored, you can choose the Allow only SSL connections option in the Google Cloud console. You can't choose the Require trusted client certificates option. Only the cloudsqlsuperuser
can be the owner of a postgres_fdw
foreign data wrapper.
Also see PL/Proxy and dblink in this document.
postgresql-hll
This extension introduces a new data type, hll
, which is a HyperLogLog data structure. For more information, see the postgresql-hll documentation .