Thread

  1. [PATCH] psql: Display SQLSTATE macro name in verbose error reports

    Aaryan Parik <aaryanparik124@gmail.com> — 2026-05-23T19:18:22Z

    Hi hackers,
    
    Currently, when psql displays verbose error messages (\set VERBOSITY
    verbose or \errverbose), it prints the 5-character SQLSTATE code. However,
    developers often have to manually look up the corresponding C macro name
    (e.g. ERRCODE_SYNTAX_ERROR) in the source code when writing C extensions or
    dealing with internal backend code.
    
    Attached is a small patch that improves the verbose error output in psql by
    appending the symbolic SQLSTATE macro name to the end of the error report.
    
    *Changes included in this patch:*
    
    
    
    *1. Created a small Perl script in src/bin/psql to parse
    src/backend/utils/errcodes.txt and generate a C header (sqlstate_names.h)
    containing a mapping of SQLSTATE codes to their macro names.2. Hooked the
    generation of this header into the psql Makefile and meson.build.3. Updated
    psql's error reporting (ExecQueryAndProcessResults and
    exec_command_errverbose) to perform a lookup and append the macro name if
    VERBOSITY is verbose.*
    Example output:
    ERROR:  42601: syntax error at or near "FRO"
    LINE 1: SELECT * FRO;
                     ^
    LOCATION:  scanner_yyerror, scan.l:1220
    SQLSTATE name: ERRCODE_SYNTAX_ERROR
    
    I believe this will be a handy quality-of-life improvement for developers.
    Looking forward to any feedback
    
    Best regards,
    Aaryan Parik
    
  2. Re: [PATCH] psql: Display SQLSTATE macro name in verbose error reports

    jian he <jian.universality@gmail.com> — 2026-05-24T01:56:55Z

    On Sun, May 24, 2026 at 3:18 AM Aaryan Parik <aaryanparik124@gmail.com> wrote:
    >
    > Example output:
    > ERROR:  42601: syntax error at or near "FRO"
    > LINE 1: SELECT * FRO;
    >                  ^
    > LOCATION:  scanner_yyerror, scan.l:1220
    > SQLSTATE name: ERRCODE_SYNTAX_ERROR
    >
    > I believe this will be a handy quality-of-life improvement for developers. Looking forward to any feedback
    >
    
    This seems identical to the patch submitted in the previous email thread, [0].
    
    [0]: https://www.postgresql.org/message-id/CAK3UJRGc2RKfQMjwVDAwsuOJuobq3d4%2BQf9KWK1NHmK1vaqyxQ%40mail.gmail.com
    
    
    
    
  3. Re: [PATCH] psql: Display SQLSTATE macro name in verbose error reports

    Tom Lane <tgl@sss.pgh.pa.us> — 2026-05-25T19:20:23Z

    jian he <jian.universality@gmail.com> writes:
    > On Sun, May 24, 2026 at 3:18 AM Aaryan Parik <aaryanparik124@gmail.com> wrote:
    >> Example output:
    >> ERROR:  42601: syntax error at or near "FRO"
    >> LINE 1: SELECT * FRO;
    >> ^
    >> LOCATION:  scanner_yyerror, scan.l:1220
    >> SQLSTATE name: ERRCODE_SYNTAX_ERROR
    
    > This seems identical to the patch submitted in the previous email thread, [0].
    
    It's not exactly the same: Josh's patch did the dirty work in libpq
    not psql.  So this has a somewhat smaller blast radius for client
    compatibility problems (but still not zero).  The other comments
    I posted in the other thread still apply though.
    
    			regards, tom lane