Re: error handling in pqRowProcessor broken
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-04-19T19:16:05Z
Lists: pgsql-hackers
Attachments
- fix-libpq-error-cases.patch (text/x-diff) patch
Peter Eisentraut <peter.eisentraut@enterprisedb.com> writes: > I find that this doesn't work anymore. If you set *errmsgp = "some > message" and return 0, then psql will just print a result set with zero > rows. Ah, I see the problem: a few places in fe-protocol3 didn't get the memo that conn->error_result represents a "pending" PGresult that hasn't been constructed yet. The attached fixes it for me --- can you try it on whatever test case led you to this? > (Even before the above commit, the handling of the returned message was > a bit weird: The error output was just the message string, without any > prefix like "ERROR:".) libpq's always acted that way for internally-generated messages. Most of them are so rare that we're probably not used to seeing 'em. Perhaps there's a case for making it more verbose, but right now doesn't seem like the time to undertake that. regards, tom lane
Commits
-
Fix missed cases in libpq's error handling.
- 914611ea738a 15.0 landed
-
Rearrange libpq's error reporting to avoid duplicated error text.
- 618c16707a6d 15.0 cited