pg_settings
La vue pg_settings
fournit un accès aux paramètres
d'exécution du serveur. C'est essentiellement une interface alternative aux
commandes SHOW
et SET
. Elle fournit
aussi un accès à certaines informations des paramètres qui ne sont pas directement
accessibles avec SHOW
,
telles que les valeurs minimales et maximales.
Tableau 54.24. Colonnes de pg_settings
Type Description |
---|
Nom du paramètre d'exécution |
Valeur actuelle du paramètre |
Unité implicite du paramètre |
Groupe logique du paramètre |
Description brève du paramètre |
Information supplémentaire, plus détaillée, sur le paramètre |
Contexte requis pour positionner la valeur du paramètre (voir ci-dessous) |
Type du paramètre ( |
Source de la valeur du paramètre actuel |
Valeur minimale autorisée du paramètre (NULL pour les valeurs non numériques) |
Valeur maximale autorisée du paramètre (NULL pour les valeurs non numériques) |
Valeurs autorisées pour un paramètre enum (NULL pour les valeurs non enum) |
Valeur de paramètre prise au démarrage du serveur si le paramètre n'est pas positionné d'une autre façon |
Valeur à laquelle |
Fichier de configuration dans lequel ce fichier a été positionné
(NULL pour les valeurs positionnées ailleurs que dans un fichier de
configuration, examiné par un utilisateur qui n'est ni un
superutilisateur ni un membre de
|
Numéro de ligne du fichier de configuration à laquelle cette
valeur a été positionnée (NULL pour des valeurs positionnées ailleurs
que dans un fichier de configuration, ou quand examiné par un
utilisateur qui n'est ni superutilisateur ni un membre de
|
|
Il existe différentes valeurs de context
.
Les voici, classées dans l'ordre de difficulté décroissante pour la
modification d'un paramètre :
internal
Ces paramètres ne peuvent pas être modifiés directement ; ils reflètent des valeurs internes. Certaines sont modifiables en compilant le serveur avec des options différentes pour l'étape de configuration, ou en changeant des options lors de l'étape du initdb.
postmaster
Ces paramètres sont seulement appliqués au démarrage du serveur,
donc toute modification nécessite un redémarrage du serveur. Les
valeurs sont typiquement conservées dans le fichier
postgresql.conf
ou passées sur la ligne de
commande lors du lancement du serveur. Bien sûr, tout paramètre
dont la colonne context
est inférieure
peut aussi être configuré au démarrage du serveur.
sighup
Les modifications sur ces paramètres peuvent se faire dans le
fichier postgresql.conf
sans avoir à
redémarrer le serveur. L'envoi d'un signal
SIGHUP au processus père (historiquement
appelé postmaster) le forcera à relire le fichier
postgresql.conf
et à appliquer les
modifications. Ce processus enverra aussi le signal
SIGHUP aux processus fils pour qu'ils
tiennent compte des nouvelles valeurs.
superuser-backend
Les modifications de ces réglages peuvent être effectuées dans
postgresql.conf
sans redémarrer le serveur. Ils
peuvent également être positionnés pour une session en particulier dans le
paquet réseau de demande de connexion (par exemple, via la variable
d'environnement PGOPTIONS
de
libpq), mais seulement si l'utilisateur se
connectant est superutilisateur ou s'est vu donné les droits
SET
appropriés. Cependant, ces réglages ne changent
jamais dans une session une fois qu'elle a débutée. Si vous les modifiez
dans postgresql.conf
, envoyez un signal
SIGHUP à postmaster pour le forcer à relire
postgresql.conf
. Les nouvelles valeurs n'affecteront
que les sessions ouvertes après cette relecture.
backend
Les modifications sur ces paramètres peuvent se faire dans le
fichier postgresql.conf
sans avoir à
redémarrer le serveur ; ils peuvent aussi être configurés
pour une session particulière dans le paquet de demande de
connexion (par exemple, via la variable d'environnement
PGOPTIONS
gérée par la bibliothèque
libpq) ; tous les utilisateurs peuvent
faire de telles modifications pour leur session. Néanmoins,
ces modifications ne changent jamais une fois
que la session a démarré. Si vous les
changez dans le fichier postgresql.conf
,
envoyez un signal SIGHUP à postmaster
car ça le forcera à relire le fichier
postgresql.conf
. Les nouvelles valeurs
affecteront seulement les sessions lancées après la relecture de
la configuration.
superuser
Ces paramètres sont configurables partir du fichier
postgresql.conf
ou à l'intérieur d'une session via la
commande SET
; mais seuls les superutilisateurs
et les utilisateurs qui ont les droits SET
appropriés
peuvent les modifier avec SET
. Les modifications
apportées dans le fichier postgresql.conf
affecteront
aussi les sessions existantes si aucune valeur locale à la session n'a été
établie avec une commande SET
.
user
Ces paramètres peuvent être configurés à partir du fichier
postgresql.conf
ou à l'intérieur d'une session
via la commande SET
. Tout utilisateur est
autorisé à modifier la valeur sur sa session. les modifi Any user is
allowed to change his session-local value. Les modifications
apportées dans le fichier postgresql.conf
affecteront aussi les sessions existantes si aucune valeur locale
à la session n'a été établie avec une commande
SET
.
Voir Section 20.1 pour plus d'informations sur les différentes façons de modifier ces paramètres.
La vue pg_settings
n'accepte ni insertion ni
suppression mais peut être mise à jour. Une requête
UPDATE
appliquée à une ligne de
pg_settings
est équivalente à exécuter la
commande SET
sur ce paramètre. Le changement affecte uniquement la valeur utilisée
par la session en cours. Si un UPDATE
est lancé à
l'intérieur d'une transaction annulée par la suite, les effets de la
commande UPDATE
disparaissent à l'annulation de la
transaction. Lorsque la transaction est validée, les effets
persistent jusqu'à la fin de la session, à moins qu'un autre
UPDATE
ou SET
ne modifie la valeur.
Cette vue n'affiche pas les options
personnalisées sauf si le module qui les définit a été chargé par le
processus exécutant la requête (via une mention dans shared_preload_libraries, un appel à la fonction C dans
l'extension, ou la commande LOAD
). Par exemple, comme les
modules d'archivage sont normalement
chargés seulement par le processus d'archivage et non pas par les sessions
standards, cette vue n'affichera pas toute option personnalisée définie par
ces modules sauf si une action spéciale est réalisée pour les charger dans le
processus exécutant la requête.