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

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