Todo item: Include the symbolic SQLSTATE name in verbose error reports
Josh Kupershmidt <schmiddy@gmail.com>
From: Josh Kupershmidt <schmiddy@gmail.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2026-04-01T13:44:15Z
Lists: pgsql-hackers
Attachments
- include-symbolic-SQLSTATE-name-in-verbose-mode-output.patch (application/octet-stream) patch
Hi,
Attached is a patch implementing an old feature request on the wiki's Todo:
"Include the symbolic SQLSTATE name in verbose error reports"
The output should only be different in verbose mode, i.e. if you:
\set VERBOSITY verbose
The old output in verbose mode would look like:
# SELECT * FROM nonexistent_table;
ERROR: 42P01: relation "nonexistent_table" does not exist
LINE 1: SELECT * FROM nonexistent_table;
LOCATION: parserOpenTable, parse_relation.c:1461
The new output looks like:
# select * FROM nonexistent;
ERROR: 42P01 (ERRCODE_UNDEFINED_TABLE): relation "nonexistent" does not
exist
LINE 1: select * FROM nonexistent;
^
LOCATION: parserOpenTable, parse_relation.c:1461
so that we tell the user clearly what "42P01" means, in this example.
Cheers,
Josh