Обсуждение: [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