PostgreSQLLa base de données la plus sophistiquée au monde.

17.10. Valeurs par défaut des connexions client

17.10.1. Comportement des instructions

search_path (string)

Cette variable spécifie l'ordre dans lequel les schémas sont recherchés lorsqu'un objet (table, type de données, fonction, etc.) est référencé par un simple nom sans son composant schéma. Quand il existe des noms identiques dans différents schémas, le premier trouvé dans le chemin de recherche est utilisé. Un objet qui ne fait partie d'aucun des schémas du chemin de recherche peut seulement être référencé en spécifiant son schéma conteneur avec un nom qualifié.

La valeur de search_path doit être 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 ayant le nom renvoyé par SESSION_USER est substitué, si un tel schéma existe (sinon $user est ignoré).

Le schéma du catalogue système, pg_catalog, est toujours recherché, qu'il soit ou non mentionné dans le chemin. S'il est mentionné, alors il sera cherché dans l'ordre spécifié. Si pg_catalog ne fait pas partie du chemin, alors il sera cherché avant tout élément du chemin.

De même, la recherche des schémas passe toujours par le schéma des tables temporaires, pg_temp_nnn, si ce dernier existe. Il est toujours possible de l'ajouter dans le chemin en utilisant l'alias pg_temp. S'il ne fait pas partie du chemin, la recherche commencera 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 sera 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' (où la deuxième partie sera ignorée s'il n'existe pas de schéma nommé public). Elle supporte l'utilisation partagée d'une base de données (où aucun utilisateur n'a de schémas privés et tous partagent l'utilisation de public), de schémas privés par utilisateur et une combinaison des deux. D'autres effets peuvent être obtenus en modifiant le chemin de recherche par défaut soit globalement soit par utilisateur.

La valeur réelle actuelle 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 comment la requête apparaissant dans search_path sera résolue.

Pour plus d'informations sur la gestion des schémas, voir la Section 5.7, « Schémas ».

default_tablespace (string)

Cette variable précise 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 du tablespace soit une chaîne vide pour indiquer l'utilisation du tablespace par défaut de la base de données en cours. Si la valeur ne correspond pas au nom d'une base de données existantes, PostgreSQL™ utilisera automatiquement le tablespace par défaut de la base de données en cours.

Pour plus d'informations sur les tablespaces, voir la Section 19.6, « Tablespaces ».

check_function_bodies (boolean)

Ce paramètre est habituellement à on. Lorsqu'il est off, il désactive la validation de la chaîne du corps de la fonction lors de CREATE FUNCTION. Désactiver la validation est quelque fois utile pour éviter des problèmes tels que les références avant lors de la restauration des définitions de fonctions à partir d'une sauvegarde.

default_transaction_isolation (string)

Chaque transaction SQL a un niveau d'isolation, qui peut être soit « read uncommitted », soit « read committed », soit « repeatable read » soit « serializable ». Ce paramètre contrôle le niveau d'isolation par défaut de chaque nouvelle transaction. La valeur par défaut est « read committed ».

Consultez 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 pourrait pas modifier les tables non temporaires. 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).

Consultez SET TRANSACTION pour plus d'informations.

statement_timeout (integer)

Annule toute instruction prenant plus que le nombre spécifié de millisecondes. Si log_min_error_statement est configuré à ERROR ou plus bas, l'instruction qui a pris plus de temps que cette valeur à s'exécuter, sera aussi tracée. Une valeur de zéro désactive le chronomètre et est la valeur par défaut.

17.10.2. Locale et formatage

datestyle (string)

Configure le format d'affichage pour les valeurs de type date et heure, ainsi que les règles d'interprétation des valeurs de saisie des dates ambiguës. Pour des raisons historiques, cette variable contient deux composants indépendants : la spécification du format en sortie (ISO, Postgres, SQL ou German) et la spécification en entrée/sortie pour 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 un synonyme pour DMY ; les mots clés US, NonEuro et NonEuropean sont des synonymes pour MDY. Voir la Section 8.5, « Types date/heure » pour plus d'informations. La valeur par défaut est ISO, MDY.

timezone (string)

Configure le fuseau horaire pour l'affichage et l'interprétation de la date et de l'heure. Par défaut, vaut 'unknown', ce qui signifie qu'il utilise ce que l'environnement système spécifie comme fuseau horaire. Voir la Section 8.5, « Types date/heure » pour plus d'informations.

australian_timezones (boolean)

Si on, ACST, CST, EST et SAT sont interprétés comme des fuseaux horaires australiens plutôt que comme des fuseaux horaires d'Amérique Nord/Sud. Par défaut à off.

extra_float_digits (integer)

Ce paramètre ajuste le nombre de chiffres affichés par les valeurs à virgule flottante, ceci incluant float4, float8 et les types de données géométriques. La valeur du paramètre est ajouté au nombre standard de chiffres (FLT_DIG ou DBL_DIG comme approprié). 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 le codage côté client (ensemble de caractères). Par défaut, utilise le codage de la base de données.

lc_messages (string)

Initialise la langue dans laquelle les messages sont affichés. Les valeurs acceptables sont dépendantes du système ; voir Section 21.1, « Support de locale » pour plus d'informations. Si cette variable est initialisée en tant que chaîne vide (ce qui est la 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 fonctionnera toujours mais n'aura aucun effet. De même, il existe une chance pour qu'aucun message traduit n'existe pour la langue sélectionnée. Dans ce cas, vous continuerez de voir les messages en anglais.

lc_monetary (string)

Initialise la locale à utiliser pour formater les montants de monnaie, par exemple avec la famille de fonctions to_char. Les valeurs acceptables dépendent du système ; voir la Section 21.1, « Support de locale » pour plus d'informations. Si cette variable est une chaîne vide (la 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 formater les nombres, par exemple avec la famille de fonctions to_char. Les valeurs acceptables dépendent du système ; voir la Section 21.1, « Support de locale » pour plus d'informations. Si cette variable est 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 formater les valeurs de date et d'heure (actuellement, ce paramétrage ne fait rien mais il le pourrait dans le futur). Les valeurs acceptables dépendent du système ; voir la Section 21.1, « Support de locale » pour plus d'informations. Si cette variable est une chaîne vide (la valeur par défaut), alors la valeur est héritée de l'environnement système 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. Activé par défaut.

dynamic_library_path (string)

Si un module chargeable dynamiquement a besoin d'être ouvert et que le nom de fichier spécifié dans la commande CREATE FUNCTION ou LOAD ne contient pas de répertoire (c'est-à-dire que le nom ne contient pas de slash), le système cherchera ce chemin pour le fichier requis.

La valeur pour 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 (utilisez pg_config --pkglibdir pour 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 paramétrage réalisé de cette façon ne persistera que pendant la durée de la connexion du client, donc cette méthode devrait être réservée à des buts de développements. La façon recommandée pour initialiser ce paramètre est d'utiliser le fichier de configuration postgresql.conf.