Robert Haas <robertmh...@gmail.com> writes: > On Tue, Sep 12, 2017 at 1:23 PM, Fabien COELHO <coe...@cri.ensmp.fr> wrote: >> I added two error codes, which is debatable. One is used hardcoded by libpq >> if no diagnostic is found, and the other by psql if libpq returned something >> empty, which might happen if psql is linked with an older libpq, maybe. I do >> not know how to trigger such errors anyway, so this is rather academic.
> I think this is a bad plan. Right now, libpq sets no SQLSTATE for > internally generated errors; it is almost certain that there are > applications testing for an empty SQLSTATE to notice when they're > getting an error from libpq. EnterpriseDB had a support ticket quite > recently where this precise behavior was at issue. Changing it will > break stuff, so we shouldn't do it unless there's a really compelling > benefit. Universally returning PQ000 is not a sufficient improvement > over universally returning the empty string to justify the risk of > application breakage. I don't think I want to buy this argument, because the logical conclusion of it is that we can never fix libpq to offer proper SQLSTATEs for client-side errors. Admittedly, the fact that nobody's bothered to do so in ~15 years may indicate that nobody cares ... but I would think that at least it'd be useful to distinguish, say, ENOMEM from connection loss. Saying we can't do it for compatibility reasons doesn't sound great to me. Especially when you've not provided any hard evidence as to why the current lack-of-information is useful. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers