17.10. Valeurs par défaut des connexions client
17.10.1. Comportement des instructions
-
search_path (string)
-
Cette variable précise l'ordre dans lequel les schémas sont
parcourus lorsqu'un objet (table, type de données, fonction,
etc.) est référencé par un simple nom sans sa composante
schéma. Lorsque des objets de noms identiques existent dans
plusieurs schémas, c'est le premier trouvé dans le chemin de
recherche qui est utilisé. Il ne peut être fait référence à
un objet qui ne fait partie d'aucun des schémas indiqués dans
le chemin de recherche qu'en précisant son schéma conteneur
avec un nom qualifié (avec un point).
search_path doit contenir une liste
de noms de schémas séparés par des virgules. Si un des
éléments de la liste est la valeur spéciale $user, alors le schéma dont le nom correspond
à la valeur retournée par SESSION_USER est substitué, s'il existe
(sinon $user est ignoré).
Le schéma du catalogue système, pg_catalog, est toujours parcouru, qu'il soit
ou non mentionné dans le chemin. Mentionné, il est alors
parcouru dans l'ordre indiqué. Dans le cas contraire, il est
parcouru
avant
tout
autre élément du chemin.
De même, la recherche des schémas passe toujours par le
schéma des tables temporaires, pg_temp_
nnn
, s'il existe. Il peut
être explicitement ajouté au chemin à l'aide de l'alias
pg_temp. S'il n'en fait pas partie,
la recherche commence par lui (avant même pg_catalog). Néanmoins, seuls les noms de
relation (table, vue, séquence, etc.) et de type de données
sont recherchés dans le schéma temporaire. Aucune fonction et
aucun opérateur n'y est jamais recherché.
Lorsque des objets sont créés sans précision de schéma cible
particulier, ils sont placés dans le premier schéma listé
dans le chemin de recherche. Une erreur est rapportée si le
chemin de recherche est vide.
La valeur par défaut de ce paramètre est '"$user", public' (la deuxième partie est
ignorée s'il n'existe pas de schéma nommé public). Elle permet l'utilisation partagée
d'une base de données (dans laquelle aucun utilisateur n'a de
schéma privé et tous partagent l'utilisation de public), les schémas privés d'utilisateur
ainsi qu'une combinaison de ces deux modes. D'autres effets
peuvent être obtenus en modifiant le chemin de recherche par
défaut, globalement ou par utilisateur.
La valeur courante réelle du chemin de recherche peut être
examinée via la fonction SQL
current_schemas(). Elle n'est pas identique à
la valeur de search_path, car
current_schemas() affiche la façon
dont les requêtes apparaissant dans search_path sont résolues.
Pour plus d'informations sur la gestion des schémas, voir la
Section 5.7,
« Schémas ».
-
default_tablespace (string)
-
Cette variable indique le
tablespace
par défaut dans lequel
sont créés les objets (tables et index) quand une commande
CREATE
ne
l'explicite pas.
La valeur est soit le nom d'un
tablespace
soit une chaîne vide
pour indiquer l'utilisation du
tablespace
par défaut de la base
de données courante. Si la valeur ne correspond pas au nom
des
tablespace
existants,
PostgreSQL™ utilise
automatiquement le
tablespace
par défaut de la base
de données courante.
Pour plus d'informations sur les
tablespaces
, voir la Section 19.6,
« Tablespaces ».
-
check_function_bodies (boolean)
-
Ce paramètre est habituellement positionné à on. Positionné à off,
il désactive la validation du corps de la fonction lors de
CREATE FUNCTION. Désactiver la
validation est parfois utile. Cela permet, par exemple,
d'éviter des problèmes de références lors de la restauration
de définitions de fonctions à partir d'une sauvegarde.
-
default_transaction_isolation
(string)
-
Chaque transaction SQL a un niveau d'isolation. Celui-ci peut
être « read
uncommitted », « read
committed », « repeatable read » ou « serializable ». Ce paramètre contrôle le
niveau d'isolation par défaut de chaque nouvelle transaction.
Par défaut, « read
committed ».
Consulter le Chapitre 12,
Contrôle d'accès simultané et SET
TRANSACTION pour plus d'informations.
-
default_transaction_read_only
(boolean)
-
Une transaction SQL en lecture seule ne peut pas modifier les
tables permanentes. Ce paramètre contrôle le statut de
lecture seule par défaut de chaque nouvelle transaction. La
valeur par défaut est off
(lecture/écriture).
Consulter SET TRANSACTION pour plus
d'informations.
-
statement_timeout (integer)
-
Interrompt toute instruction qui dure plus lontemps que ce
nombre (indiqué en millisecondes). Le temps est décompté à
partir du moment où la commande en provenance du client
arrive sur le serveur. Si log_min_error_statement est configuré à
ERROR, ou plus bas, l'instruction en
cause est tracée. La valeur zéro (par défaut) désactive le
décompte.
-
vacuum_freeze_min_age (integer)
-
Indique l'âge limite (en transactions) que
VACUUM
doit utiliser pour
décider de remplacer les ID de transaction par FrozenXID lors du parcours d'une table. La
valeur par défaut est de 100 millions. Bien que les
utilisateurs puissent configurer une valeur quelconque
comprise entre zéro et 1 milliard,
VACUUM
limite
silencieusement la valeur réelle à la moitié de la valeur de
autovacuum_freeze_max_age afin que la valeur entre deux
autovacuums forcés ne soit pas déraisonnablement courte. Pour
plus d'informations, voir
Section 22.1.3, « Éviter les cycles des
identifiants de transactions ».
17.10.2. Locale et formatage
-
datestyle (string)
-
Configure le format d'affichage des valeurs de type date et
heure, ainsi que les règles d'interprétation des valeurs
ambiguës de dates saisies. Pour des raisons historiques,
cette variable contient deux composantes indépendantes : la
spécification du format en sortie (ISO, Postgres,
SQL ou German) et la spécification en entrée/sortie
de l'ordre année/mois/jour (DMY,
MDY ou YMD). Elles peuvent être configurées
séparément ou ensemble. Les mots clés Euro et European sont
des synonymes de DMY ; les mots clés
US, NonEuro
et NonEuropean sont des synonymes de
MDY. Voir la Section 8.5, « Types
date/heure » pour plus d'informations. La valeur par
défaut est ISO, MDY, mais
initdb initialise le fichier
de configuration avec une valeur qui correspond au
comportement de la locale lc_time
choisie.
-
timezone (string)
-
Configure le fuseau horaire pour l'affichage et
l'interprétation de la date et de l'heure. Par défaut,
'unknown', ce qui signifie le fuseau
horaire utilisé est celui défini par le système. Voir la
Section 8.5, « Types
date/heure » pour plus d'informations.
-
timezone_abbreviations (string)
-
Configure la liste des abréviations de fuseaux horaires
acceptés par le serveur pour la saisie de données de type
datetime. La valeur par défaut est 'Default', qui est une liste qui fonctionne
presque dans le monde entier ; il y a aussi 'Australia' et
'India'. D'autres listes peuvent être définies pour une
installation particulière. Voir Annexe B,
Support de date/heure pour plus d'informations.
-
extra_float_digits (integer)
-
Ce paramètre ajuste le nombre de chiffres affichés par les
valeurs à virgule flottante, ce qui inclue float4, float8 et les
types de données géométriques. La valeur du paramètre est
ajoutée au nombre standard de chiffres (FLT_DIG ou DBL_DIG).
La valeur peut être initialisée à une valeur maximum de 2
pour inclure les chiffres partiellement significatifs ; c'est
tout spécialement utile pour sauvegarder les données à
virgule flottante qui ont besoin d'être restaurées
exactement. Cette variable peut aussi être négative pour
supprimer les chiffres non souhaités.
-
client_encoding (string)
-
Initialise l'encodage client (jeu de caractères). Par défaut,
il s'agit de celui de la base de données.
-
lc_messages (string)
-
Initialise la langue d'affichage des messages. Les valeurs
acceptables dépendent du système ; voir Section 21.1,
« Support des locales » pour plus
d'informations. Si cette variable est initialisée à une
chaîne vide (valeur par défaut), alors la valeur est héritée
de l'environnement d'exécution du serveur.
Avec certains systèmes, cette catégorie de locale n'existe
pas. Initialiser cette variable fonctionne toujours mais n'a
aucun effet. De même, il est possible qu'il n'existe pas de
traduction des messages dans la langue sélectionnée. Dans ce
cas, les messages sont affichés en anglais.
Seuls les superutilisateurs peuvent modifier ce paramètre car
il affecte aussi bien les messages envoyés dans les traces du
serveur que ceux envoyés au client.
-
lc_monetary (string)
-
Initialise la locale à utiliser pour le formatage des
montants monétaires (pour la famille de fonctions to_char, par exemple). Les valeurs
acceptables dépendent du système ; voir la Section 21.1,
« Support des locales » pour plus
d'informations. Si cette variable est initialisée à une
chaîne vide (valeur par défaut), alors la valeur est héritée
de l'environnement d'exécution du serveur.
-
lc_numeric (string)
-
Initialise la locale à utiliser pour le formatage des nombres
(pour la famille de fonctions to_char, par exemple). Les valeurs
acceptables dépendent du système ; voir la Section 21.1,
« Support des locales » pour plus
d'informations. Si cette variable est initialisée à une
chaîne vide (valeur par défaut), alors la valeur est héritée
de l'environnement d'exécution du serveur.
-
lc_time (string)
-
Initialise la locale à utiliser pour le formatage des valeurs
de date et d'heure (actuellement, ce paramétrage est sans
effet, mais il pourrait en avoir un dans le futur). Les
valeurs acceptables dépendent du système ; voir la Section 21.1,
« Support des locales » pour plus
d'informations. Si cette variable est initialisée à une
chaîne vide (valeur par défaut), alors la valeur est héritée
de l'environnement d'exécution du serveur.
17.10.3. Autres valeurs par défaut
-
explain_pretty_print (boolean)
-
Détermine si
EXPLAIN
VERBOSE
utilise le format indenté ou non pour
l'affichage des arbres détaillés des requêtes. Positionné à
on par défaut.
-
dynamic_library_path (string)
-
Si un module chargeable dynamiquement doit être ouvert et que
le nom de fichier indiqué dans la commande
CREATE FUNCTION
ou
LOAD
ne
contient pas d'indication de répertoire (c'est-à-dire que le
nom ne contient pas de slash), le système recherche le
fichier requis dans ce chemin.
La valeur de dynamic_library_path
doit être une liste de chemins absolus séparés par des
virgules (ou des points virgules sous Windows). Si un élément
de la liste commence avec la chaîne spéciale $libdir, le répertoire des bibliothèques
internes du paquetage PostgreSQL™ est substitué à
$libdir. C'est l'emplacement où sont
installés les modules fournis par la distribution
PostgreSQL™ standard.
(La commande pg_config --pkglibdir
permet de connaître le nom de ce répertoire.) Par exemple :
dynamic_library_path = '/usr/local/lib/postgresql:/home/my_project/lib:$libdir'
ou dans un environnement Windows :
dynamic_library_path = 'C:\tools\postgresql;H:\my_project\lib;$libdir'
La valeur par défaut de ce paramètre est '$libdir'. Si la valeur est une chaîne vide,
la recherche automatique du chemin est désactivée.
Ce paramètre peut être modifié à l'exécution par les
superutilisateurs, mais un tel paramétrage ne persiste que
pour la durée de la connexion du client. Il est donc
préférable de ne réserver cette méthode qu'à des fins de
développement. Il est recommandé d'initialiser ce paramètre
dans le fichier de configuration postgresql.conf.
-
gin_fuzzy_search_limit (integer)
-
Limite haute souple de la taille d'un ensemble renvoyé par un
index GIN. Pour plus d'informations, voir Section 51.4,
« Conseils et astuces sur GIN ».
-
local_preload_libraries (string)
-
Indique les bibliothèques partagées à charger à
l'initialisation d'une connexion. Si plusieurs bibliothèques
doivent être chargées, leurs noms sont séparés par des
virgules. Ce paramètre ne peut pas être modifié après le
démarrage de la session.
Comme il ne s'agit pas d'une option réservée aux
superutilisateurs, les bibliothèques pouvant être chargées
sont restreintes à celles du sous-répertoire plugins du répertoire standard des
bibliothèques. (Il est de la responsabilité de
l'administrateur de bases de données de s'assurer que seules
des bibliothèques « saines » s'y trouvent.) Les entrées dans
local_preload_libraries peuvent
indiquer ce répertoire explicitement, par exemple $libdir/plugins/ma_lib, ou n'indiquer que le
nom de la bibliothèque -- ma_lib a
le même effet que $libdir/plugins/ma_lib.
Il n'y a pas de gain de performance à charger une
bibliothèque au démarrage d'une session ou à sa première
utilisation. Le but de cette fonctionnalité est d'autoriser
le chargement de bibliothèques de débogage ou de mesure de
performance dans certaines sessions spécifiques sans commande
LOAD
explicite.
Par exemple, le débogage peut être activé pour toutes les
sessions d'un nom d'utilisateur donné en configurant ce
paramètre avec
ALTER USER
SET
.
Si une bibliothèque indiquée n'est pas trouvée, la tentative
de connexion échoue.
Toute bibliothèque supportée par PostgreSQL contient un
« bloc magique » qui
permet d'en garantir la compatibilité. Pour cette raison, les
bibliothèques non PostgreSQL ne peuvent pas être chargées de
cette façon.
|