Обсуждение: [HACKERS] chomp PQerrorMessage() in backend uses
Here is a patch to systematically trim the trailing newlines off PQerrorMessage() results in backend uses (dblink, postgres_fdw, libpqwalreceiver). I noticed that there are some inconsistent assumptions about whether PQerrorMessage() can ever return NULL. From the code, I think that should not be possible, but some code appears to be prepared for it. Other code is not. What is correct? -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
Вложения
Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes:
> Here is a patch to systematically trim the trailing newlines off
> PQerrorMessage() results in backend uses (dblink, postgres_fdw,
> libpqwalreceiver).
+1
> I noticed that there are some inconsistent assumptions about whether
> PQerrorMessage() can ever return NULL. From the code, I think that
> should not be possible, but some code appears to be prepared for it.
> Other code is not. What is correct?
libpq.sgml doesn't specify, so it's hard to argue that either position
is "correct". I don't mind resolving the ambiguity via a documentation
change though. I'd want to see it also cover other corner cases like
what if there hasn't been an error on the connection.
regards, tom lane
On 2/8/17 11:00, Tom Lane wrote: > Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: >> Here is a patch to systematically trim the trailing newlines off >> PQerrorMessage() results in backend uses (dblink, postgres_fdw, >> libpqwalreceiver). > > +1 committed >> I noticed that there are some inconsistent assumptions about whether >> PQerrorMessage() can ever return NULL. From the code, I think that >> should not be possible, but some code appears to be prepared for it. >> Other code is not. What is correct? > > libpq.sgml doesn't specify, so it's hard to argue that either position > is "correct". I don't mind resolving the ambiguity via a documentation > change though. I'd want to see it also cover other corner cases like > what if there hasn't been an error on the connection. I didn't dare to venture deeper into this right now. The committed change shouldn't gain or lose anything with respect to this question. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services