Обсуждение: [HACKERS] chomp PQerrorMessage() in backend uses

Поиск
Список
Период
Сортировка

[HACKERS] chomp PQerrorMessage() in backend uses

От
Peter Eisentraut
Дата:
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

Вложения

Re: [HACKERS] chomp PQerrorMessage() in backend uses

От
Tom Lane
Дата:
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



Re: [HACKERS] chomp PQerrorMessage() in backend uses

От
Peter Eisentraut
Дата:
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