Chapter 44. PL/Python — Lenguaje procedimental Python

Table of Contents

44.1. Funciones PL/Python
44.2. Valores de datos
44.2.1. Mapeo de tipos de datos
44.2.2. Null, None
44.2.3. Arrays, Lists
44.2.4. Tipos compuestos
44.2.5. Funciones que devuelven conjuntos (Set-Returning)
44.3. Compartir datos
44.4. Bloques de código anónimos
44.5. Funciones de disparo (Triggers)
44.6. Acceso a la base de datos
44.6.1. Funciones de acceso a la base de datos
44.6.2. Captura de errores
44.7. Subtransacciones explícitas
44.7.1. Gestores de contexto de subtransacción
44.8. Gestión de transacciones
44.9. Funciones de utilidad
44.10. Python 2 vs. Python 3
44.11. Variables de entorno

El lenguaje procedimental PL/Python permite escribir funciones y procedimientos de PostgreSQL en el lenguaje Python.

Para instalar PL/Python en una base de datos particular, usa CREATE EXTENSION plpython3u.

Tip

Si instalas un lenguaje en template1, todas las bases de datos creadas posteriormente tendrán el lenguaje instalado automáticamente.

PL/Python solo está disponible como un lenguaje no confiable (untrusted), lo que significa que no ofrece ninguna forma de restringir lo que los usuarios pueden hacer en él y, por lo tanto, se llama plpython3u. Una variante confiable (trusted) plpython podría estar disponible en el futuro si se desarrolla un mecanismo de ejecución seguro en Python. El escritor de una función en PL/Python no confiable debe tener cuidado de que la función no se pueda usar para hacer nada no deseado, ya que podrá hacer cualquier cosa que podría hacer un usuario que haya iniciado sesión como el administrador de la base de datos. Solo los superusuarios pueden crear funciones en lenguajes no confiables como plpython3u.

Note

Los usuarios de paquetes de código fuente deben habilitar especialmente la compilación de PL/Python durante el proceso de instalación. (Consulta las instrucciones de instalación para obtener más información). Los usuarios de paquetes binarios podrían encontrar PL/Python en un subpaquete separado.