Tema SQL
current_setting() (PostgreSQL)
Lee el valor textual de un parámetro de configuración (servidor o sesión). Similar a SHOW pero utilizable en expresiones y consultas. Complemento natural de set_config.
Descripción
current_setting(nombre [, missing_ok]) devuelve el valor como texto; missing_ok evita error si el parámetro no existe (NULL). Sirve para introspectar versión (server_version), rutas, límites work_mem, etc., en vistas y procedimientos. Convierte a tipo numérico cuando necesites comparar. No filtra secretos: no uses para exponer contraseñas en logs. En herramientas multi-tenant, algunos equipos guardan parámetros custom con prefijo y los leen con current_setting.
Estructura general
Forma habitual de la sentencia: orden de cláusulas, qué parte filtra, agrupa o proyecta columnas, y qué devuelve el motor. Cópiala como plantilla y sustituye nombres por tus tablas reales.
current_setting(nombre [, missing_ok])
Componentes
Cada componente tiene un papel concreto en la ejecución lógica de la sentencia. Léelos en orden: así entiendes qué puedes omitir, qué es obligatorio y qué expresiones son válidas en cada sitio según tu motor.
- SHOW
- SHOW ALL lista todo; current_setting accede a uno en SQL.
- Tipos
- Retorna texto; usa cast explícito para números.
- MySQL
- Variables @@var o performance_schema; modelo distinto.
Ejemplos
Ejemplo 1
SELECT current_setting('server_version');
SELECT current_setting('search_path');
Ejemplo 2
SELECT current_setting('max_parallel_workers_per_gather')::int AS workers;
Los ejemplos son ilustrativos. En producción usa consultas parametrizadas (prepared statements), revisa índices y aplica el principio de menor privilegio en cuentas de base de datos.