Re: dblink_error_message return value - Mailing list pgsql-docs

From Joe Conway
Subject Re: dblink_error_message return value
Date
Msg-id 1f9d1514-f087-1b11-9b45-aac91e57bdc2@joeconway.com
Whole thread Raw
In response to Re: dblink_error_message return value  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: dblink_error_message return value  (Joe Conway <mail@joeconway.com>)
List pgsql-docs
On 08/08/2018 11:57 AM, Tom Lane wrote:
> =?utf-8?q?PG_Doc_comments_form?= <noreply@postgresql.org> writes:
>> The following documentation comment has been logged on the website:
>> Documentation says:
>
>> Return Value
>> Returns last error message, or an empty string if there has been no error in
>> this connection.
>> Which is invalid.
>> Actually it returns 'OK' string if no error was raised.
>
> Good catch!  The code's quite clear about it, but the SGML docs need
> fixed.


As mentioned on the nearby thread, will fix. I suppose this ought to be
back-patched.


>> Secondly
>> dblink_is_busy must be first called to make dblink_error_message returns an
>> error message. (Tested on 9.6.9)
>
> Meh.  I see what you're getting at here, I think, but that seems like a
> completely wrong/misleading statement of the issue.  Joe, can you think of
> better phraseology?

Maybe a note, something like this?
------------
When asynchronous queries are initiated by dblink_send_query(), the
error message associated with the connection might not get updated until
the server's response message is consumed. This typically means that
dblink_is_busy() or dblink_get_result() should be called prior to
dblink_error_message(), so that any error generated by the asynchronous
query() will be visible.
------------

Joe

--
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development


Attachment

pgsql-docs by date:

Previous
From: Joe Conway
Date:
Subject: Re: dblink_get_result returns NULL if remote query throws error
Next
From: Joe Conway
Date:
Subject: Re: dblink_get_result returns NULL if remote query throws error