Esta sección describe los campos que pueden aparecer en los mensajes ErrorResponse y NoticeResponse. Cada tipo de campo tiene un token de identificación de un solo byte. Ten en cuenta que cualquier tipo de campo determinado debe aparecer a lo sumo una vez por mensaje.
S
Gravedad (Severity): el contenido del campo es
ERROR, FATAL o
PANIC (en un mensaje de error), o
WARNING, NOTICE, DEBUG,
INFO o LOG (en un mensaje de aviso),
o una traducción localizada de uno de estos. Siempre presente.
V
Gravedad (Severity): el contenido del campo es
ERROR, FATAL o
PANIC (en un mensaje de error), o
WARNING, NOTICE, DEBUG,
INFO o LOG (en un mensaje de aviso).
Es idéntico al campo S excepto
que el contenido nunca se localiza. Esto solo está presente en los
mensajes generados por las versiones 9.6 y posteriores de
PostgreSQL.
CCódigo (Code): el código SQLSTATE para el error (ver Appendix A). No localizable. Siempre presente.
MMensaje (Message): el mensaje de error principal legible por humanos. Debe ser preciso pero breve (típicamente una línea). Siempre presente.
DDetalle (Detail): un mensaje de error secundario opcional que brinda más detalles sobre el problema. Puede ocupar varias líneas.
HSugerencia (Hint): una sugerencia opcional sobre qué hacer ante el problema. Se diferencia de Detail en que ofrece un consejo (potencialmente inapropiado) en lugar de hechos concretos. Puede ocupar varias líneas.
PPosición (Position): el valor del campo es un entero ASCII decimal, que indica la posición del cursor de error como un índice dentro de la cadena de consulta original. El primer carácter tiene el índice 1, y las posiciones se miden en caracteres, no en bytes.
p
Posición interna (Internal position): se define de la misma manera que el campo P,
pero se utiliza cuando la posición del cursor se refiere a un comando generado internamente
en lugar del enviado por el cliente.
El campo q siempre aparecerá cuando aparezca este campo.
qConsulta interna (Internal query): el texto de un comando generado internamente que ha fallado. Podría ser, por ejemplo, una consulta SQL emitida por una función PL/pgSQL.
WDónde (Where): una indicación del contexto en el que ocurrió el error. Actualmente incluye una traza de la pila de llamadas (backtrace) de las funciones activas del lenguaje procedimental y consultas generadas internamente. La traza tiene una entrada por línea, la más reciente primero.
sNombre del esquema (Schema name): si el error se asoció con un objeto de base de datos específico, el nombre del esquema que contiene dicho objeto, si lo hay.
tNombre de la tabla (Table name): si el error se asoció con una tabla específica, el nombre de la tabla. (Consulta el campo del nombre del esquema para obtener el nombre del esquema de la tabla).
cNombre de la columna (Column name): si el error se asoció con una columna de tabla específica, el nombre de la columna. (Consulta los campos de nombre de esquema y tabla para identificar la tabla).
dNombre del tipo de datos (Data type name): si el error se asoció con un tipo de datos específico, el nombre del tipo de datos. (Consulta el campo del nombre del esquema para obtener el nombre del esquema del tipo de datos).
nNombre de la restricción (Constraint name): si el error se asoció con una restricción específica, el nombre de la restricción. Consulta los campos enumerados anteriormente para ver la tabla o dominio asociado. (Para este propósito, los índices se tratan como restricciones, incluso si no se crearon con sintaxis de restricción).
FArchivo (File): el nombre del archivo de la ubicación del código fuente donde se reportó el error.
LLínea (Line): el número de línea de la ubicación del código fuente donde se reportó el error.
RRutina (Routine): el nombre de la rutina del código fuente que reportó el error.
Los campos para el nombre del esquema, nombre de la tabla, nombre de la columna, nombre del tipo de datos y nombre de la restricción se suministran únicamente para un número limitado de tipos de error; ver Appendix A. Los frontends no deben asumir que la presencia de alguno de estos campos garantiza la presencia de otro campo. Las fuentes de error del núcleo respetan las interrelaciones indicadas anteriormente, pero las funciones definidas por el usuario pueden utilizar estos campos de otras maneras. Del mismo modo, los clientes no deben asumir que estos campos denotan objetos contemporáneos en la base de datos actual.
El cliente es responsable de formatear la información mostrada para satisfacer sus necesidades; en particular, debe ajustar las líneas largas según sea necesario. Los caracteres de salto de línea que aparecen en los campos del mensaje de error deben tratarse como saltos de párrafo, no como saltos de línea.