> Most importantly, I'd like to learn of better options than storing the > whole last_result in psql's pset structure.
I guess that you could, each time a query fails, gather silently the result of \errverbose, store it in a buffer, discard the PGresult, and in case the user does \errverbose before running another query, output what was in that buffer.
That's a neat idea. I also think that we could only store last PGresult when the query fails actually and discard it otherwise: the PGresult holding only the error doesn't occupy too much space.
What I dislike about this POC is all the disruption in libpq, to be honest. It would be much neater if we could form the verbose message every time and let the client decide where to cut it. Maybe a bit "too clever" would be to put a \0 char between short message and it's verbose continuation. The client could then reach the verbose part like this (assuming that libpq did put a verbose part there): msg + strlen(msg) + 1.