Documentation PostgreSQL 9.1.24 > Internes > Protocole client/serveur > Champs des messages d'erreur et d'avertissement | |
Formats de message | Résumé des modifications depuis le protocole 2.0 |
Cette section décrit les champs qui peuvent apparaître dans les messages ErrorResponse et NoticeResponse. Chaque type de champ a un motif d'identification codé sur un octet. Tout type de champ donné doit apparaître au plus une fois par message.
Gravité (Severity) : le contenu du champ peut être error, fatal ou panic dans un message d'erreur, warning, notice, debug, info ou log dans un message d'avertissement, ou la traduction régionale de l'un d'eux. Toujours présent.
Code : code SQLSTATE de l'erreur (voir Annexe A, Codes d'erreurs de PostgreSQL™). non internationalisable. Toujours présent.
Message : premier message d'erreur, en clair. Doit être court et précis (typiquement une ligne). Toujours présent.
Détail : deuxième message d'erreur, optionnel, apportant des informations supplémentaires sur le problème. Peut être sur plusieurs lignes.
Astuce (Hint) : suggestion optionnelle de résolution du problème. Différent de Détail parce qu'il offre un conseil (potentiellement inapproprié) plutôt que des faits réels. Peut être sur plusieurs lignes.
Position : valeur du champ, entier décimal ASCII indiquant un curseur sur la position de l'erreur dans la chaîne de requête originale. Le premier caractère a l'index 1. Les positions sont mesurées en caractères, non pas en octets.
Position interne : ceci est défini de la même façon que le champ p mais c'est utilisé quand la position du curseur se réfère à une commande générée en interne plutôt qu'une soumise par le client. Le champ q apparaîtra toujours quand ce champ apparaît.
Requête interne : le texte d'une commande générée en interne et qui a échoué. Ceci pourrait être, par exemple, une requête SQL lancée par une fonction PL/pgSQL.
Où (Where) : indication du contexte dans lequel l'erreur est survenue. Inclut, actuellement, une trace de la pile des appels des fonctions PL actives. Cette trace comprend une entrée par ligne, la plus récente en premier.
Fichier (File) : nom du fichier de code source comportant l'erreur.
Ligne (Line) : numéro de ligne dans le fichier de code source comportant l'erreur.
Routine : nom de la routine dans le code source comportant l'erreur.
Le client est responsable du formatage adapté à ses besoins des informations affichées ; en particulier par l'ajout de retours chariots sur les lignes longues, si cela s'avérait nécessaire. Les caractères de retour chariot apparaissant dans les champs de messages d'erreur devraient être traités comme des changements de paragraphes, non comme des changements de lignes.