B.3. Fichiers de configuration date/heure
Comme il n'existe pas de réel standard des abréviations de fuseaux
horaire, PostgreSQL™ permet de
personnaliser l'ensemble des abréviations acceptées par le serveur.
Le paramètre d'exécution timezone_abbreviations
détermine l'ensemble des abréviations actives. Bien que tout
utilisateur de la base puisse modifier ce paramètre, les valeurs
possibles sont sous le contrôle de l'administrateur de bases de
données -- ce sont en fait les noms des fichiers de configuration
stockés dans .../share/timezonesets/ du
répertoire d'installation. En ajoutant ou en modifiant les fichiers
de ce répertoire, l'administrateur peut définir les règles
d'abréviation des fuseaux horaires.
timezone_abbreviations peut prendre tout nom
de fichier situé dans .../share/timezonesets/, sous réserve que ce nom soit
purement alphabétique. (L'interdiction de caractères non alphabétique
dans timezone_abbreviations empêche la
lecture de fichiers en dehors du répertoire prévu et celle de
fichiers de sauvegarde ou autre.)
Un fichier d'abréviation de zones horaires peut contenir des lignes
blanches et des commentaires (commençant avec un #). Les autres lignes doivent être de l'un des formats
suivants :
nom_fuseau_horaire décalage
nom_fuseau_horaire décalage D
@INCLUDE nom_fichier
@OVERRIDE
Un
nom_fuseau_horaire
n'est que
l'abréviation définie. Le
décalage
est le décalage en secondes à
partir d'UTC, une valeur positive signifiant à l'est de Greenwich,
une valeur négative à l'ouest. Ainsi, -18000 représente cinq heures à
l'ouest de Greenwich, soit l'heure standard de la côte ouest nord
américaine. D indique que le nom du fuseau
représente une heure soumise à des règles de changement d'heure
plutôt que l'heure standard. Comme tous les décalages de fuseau
horaire ont des limites de 15 minutes, le nombre de secondes doit
être un multiple de 900.
La syntaxe @INCLUDE autorise l'inclusion
d'autres fichiers du répertoire .../share/timezonesets/. Les inclusions peuvent être
imbriquées jusqu'à une certaine profondeur.
La syntaxe @OVERRIDE indique que les entrées
suivantes du fichier peuvent surcharger les entrées précédentes
(c'est-à-dire des entrées obtenues à partir de fichiers inclus). Sans
cela, les définitions en conflit au sein d'une même abréviation
lèvent une erreur.
Dans une installation non modifiée, le fichier Default contient toutes les abréviations de fuseaux
horaire, sans conflit, pour la quasi-totalité du monde. Les fichiers
supplémentaires Australia et India sont fournis pour ces régions : ces fichiers
incluent le fichier Default puis ajoutent ou
modifient les fuseaux horaires si nécessaire.
Pour des raisons de référence, une installation standard contient
aussi des fichiers Africa.txt, America.txt, etc. qui contiennent des informations
sur les abréviations connues et utilisées en accord avec la base de
données de fuseaux horaires zic. Les
définitions des noms de zone trouvées dans ces fichiers peuvent être
copiées et collées dans un fichier de configuration personnalisé si
nécessaire. Il ne peut pas être fait directement référence à ces
fichiers dans le paramètre timezone_abbreviations à cause du point dans leur nom.
Note
Si une erreur survient lors de la lecture des jeux de données de
fuseaux horaires, aucune nouvelle valeur n'est acceptée mais les
anciennes sont conservées. Si l'erreur survient au démarrage de
la base, il échoue.
Attention
Les abréviations de fuseau horaire définies dans le fichier de
configuration surchargent les informations sans fuseaux
nativement dans PostgreSQL™. Par exemple, le fichier
de configuration Australia définit
SAT (
South Australian
Standard Time
, soit l'heure standard pour l'Australie
du sud). Si ce fichier est actif, SAT
n'est plus reconnu comme abréviation de samedi (
Saturday
).
Attention
Si les fichiers de .../share/timezonesets/ sont modifiés, il revient
à l'utilisateur de procéder à leur sauvegarde -- une sauvegarde
normale de base n'inclut pas ce répertoire.