• Tom Lane's avatar
    Add libpq support for recreating an error message with different verbosity. · e3161b23
    Tom Lane authored
    Often, upon getting an unexpected error in psql, one's first wish is that
    the verbosity setting had been higher; for example, to be able to see the
    schema-name field or the server code location info.  Up to now the only way
    has been to adjust the VERBOSITY variable and repeat the failing query.
    That's a pain, and it doesn't work if the error isn't reproducible.
    
    This commit adds support in libpq for regenerating the error message for
    an existing error PGresult at any desired verbosity level.  This is almost
    just a matter of refactoring the existing code into a subroutine, but there
    is one bit of possibly-needed information that was not getting put into
    PGresults: the text of the last query sent to the server.  We must add that
    string to the contents of an error PGresult.  But we only need to save it
    if it might be used, which with the existing error-formatting code only
    happens if there is a PG_DIAG_STATEMENT_POSITION error field, which is
    probably pretty rare for errors in production situations.  So really the
    overhead when the feature isn't used should be negligible.
    
    Alex Shulgin, reviewed by Daniel Vérité, some improvements by me
    e3161b23
exports.txt 4.98 KB