pg_settings #
La vista pg_settings proporciona acceso a los parámetros en tiempo de ejecución del servidor. Es esencialmente una interfaz alternativa a los comandos SHOW y SET. También proporciona acceso a algunos datos sobre cada parámetro que no están disponibles directamente en SHOW, como los valores mínimos y máximos.
Table 53.25. pg_settings Columns
Tipo de columna Descripción |
|---|
Nombre del parámetro de configuración en tiempo de ejecución. |
Valor actual del parámetro. |
Unidad implícita del parámetro. |
Grupo lógico del parámetro. |
Una breve descripción del parámetro. |
Descripción adicional, más detallada, del parámetro. |
Contexto requerido para establecer el valor del parámetro (ver abajo). |
Tipo de parámetro ( |
Origen del valor actual del parámetro. |
Valor mínimo permitido del parámetro (nulo para valores no numéricos). |
Valor máximo permitido del parámetro (nulo para valores no numéricos). |
Valores permitidos de un parámetro enum (nulo para valores que no son enum). |
Valor del parámetro asumido al iniciar el servidor si no se establece de otra manera. |
Valor al que |
Archivo de configuración en el que se estableció el valor actual (nulo para valores establecidos a partir de fuentes distintas de los archivos de configuración, o cuando lo examina un usuario que no es superusuario ni tiene privilegios de |
Número de línea dentro del archivo de configuración donde se estableció el valor actual (nulo para valores establecidos a partir de fuentes distintas de los archivos de configuración, o cuando lo examina un usuario que no es superusuario ni tiene privilegios de |
|
Hay varios valores posibles de context. En orden decreciente de dificultad para cambiar la configuración, son:
internalEstos ajustes no se pueden cambiar directamente; reflejan valores determinados internamente. Algunos de ellos pueden ajustarse reconstruyendo el servidor con diferentes opciones de configuración, o cambiando las opciones proporcionadas a initdb.
postmaster
Estos ajustes solo se pueden aplicar cuando se inicia el servidor, por lo que cualquier cambio requiere reiniciar el servidor. Los valores para estos ajustes se almacenan típicamente en el archivo postgresql.conf, o se pasan en la línea de comandos al iniciar el servidor. Por supuesto, los ajustes con cualquiera de los tipos de context inferiores también se pueden establecer en el momento de inicio del servidor.
sighup
Los cambios en estos ajustes se pueden realizar en postgresql.conf sin reiniciar el servidor. Envía una señal SIGHUP al postmaster para que vuelva a leer postgresql.conf y aplique los cambios. El postmaster también reenviará la señal SIGHUP a sus procesos hijos para que todos adopten el nuevo valor.
superuser-backend
Los cambios en estos ajustes se pueden realizar en postgresql.conf sin reiniciar el servidor. También se pueden establecer para una sesión en particular en el paquete de solicitud de conexión (por ejemplo, a través de la variable de entorno PGOPTIONS de libpq), pero solo si el usuario que se conecta es un superusuario o se le ha concedido el privilegio SET correspondiente. Sin embargo, estos ajustes nunca cambian en una sesión después de que se ha iniciado. Si los cambias en postgresql.conf, envía una señal SIGHUP al postmaster para que vuelva a leer postgresql.conf. Los nuevos valores solo afectarán a las sesiones iniciadas posteriormente.
backend
Los cambios en estos ajustes se pueden realizar en postgresql.conf sin reiniciar el servidor. También se pueden establecer para una sesión en particular en el paquete de solicitud de conexión (por ejemplo, a través de la variable de entorno PGOPTIONS de libpq); cualquier usuario puede realizar tal cambio para su sesión. Sin embargo, estos ajustes nunca cambian en una sesión después de que se ha iniciado. Si los cambias en postgresql.conf, envía una señal SIGHUP al postmaster para que vuelva a leer postgresql.conf. Los nuevos valores solo afectarán a las sesiones iniciadas posteriormente.
superuser
Estos ajustes se pueden establecer desde postgresql.conf, o dentro de una sesión a través del comando SET; pero solo los superusuarios y los usuarios con el privilegio SET correspondiente pueden cambiarlos a través de SET. Los cambios en postgresql.conf afectarán a las sesiones existentes solo si no se ha establecido ningún valor local de sesión con SET.
user
Estos ajustes se pueden establecer desde postgresql.conf, o dentro de una sesión a través del comando SET. Cualquier usuario tiene permitido cambiar su valor local de sesión. Los cambios en postgresql.conf afectarán a las sesiones existentes solo si no se ha establecido ningún valor local de sesión con SET.
Consulta Section 19.1 para obtener más información sobre las diversas formas de cambiar estos parámetros.
No se puede insertar ni eliminar de esta vista, pero se puede actualizar. Un UPDATE aplicado a una fila de pg_settings es equivalente a ejecutar el comando SET sobre ese parámetro específico. El cambio solo afecta al valor utilizado por la sesión actual. Si se emite un UPDATE dentro de una transacción que luego se aborta, los efectos del comando UPDATE desaparecen cuando la transacción se revierte. Una vez que se confirma la transacción circundante, los efectos persistirán hasta el final de la sesión, a menos que sean anulados por otro UPDATE o SET.
Esta vista no muestra las opciones personalizadas a menos que el módulo de extensión que las define haya sido cargado por el proceso del backend que ejecuta la consulta (por ejemplo, a través de una mención en shared_preload_libraries, una llamada a una función C en la extensión, o el comando LOAD). Por ejemplo, dado que los módulos de archivado normalmente son cargados solo por el proceso del archivador y no por las sesiones regulares, esta vista no mostrará ninguna opción personalizada definida por tales módulos a menos que se realice una acción especial para cargarlos en el proceso del backend que ejecuta la consulta.