pgsql: Add psql \errverbose command to see last server error at full ve

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Add psql \errverbose command to see last server error at full ve
Date: 2016-04-03 16:30:04
Message-ID: E1amkua-0005NF-F8@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Add psql \errverbose command to see last server error at full verbosity.

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 a psql feature that redisplays the most recent server
error at full verbosity, without needing to make any variable changes or
re-execute the failed command. We just need to hang onto the latest error
PGresult in case the user executes \errverbose, and then apply libpq's
new PQresultVerboseErrorMessage() function to it. This will consume
some trivial amount of psql memory, but otherwise the cost when the
feature isn't used should be negligible.

Alex Shulgin, reviewed by Daniel Vérité, some improvements by me

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/3cc38ca7d21255721d600eb75d7cc6708c14764b

Modified Files
--------------
doc/src/sgml/ref/psql-ref.sgml | 18 +++++++++++++
src/bin/psql/command.c | 22 ++++++++++++++++
src/bin/psql/common.c | 57 +++++++++++++++++++++++++++++++-----------
src/bin/psql/help.c | 3 ++-
src/bin/psql/settings.h | 2 ++
src/bin/psql/startup.c | 1 +
src/bin/psql/tab-complete.c | 2 +-
7 files changed, 88 insertions(+), 17 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Simon Riggs 2016-04-03 16:47:50 pgsql: Avoid pin scan for replay of XLOG_BTREE_VACUUM in all cases
Previous Message Andres Freund 2016-04-03 14:39:55 Re: pgsql: Make all the declarations of WaitEventSetWaitBlock be marked "in