public inbox for [email protected]  
help / color / mirror / Atom feed
From: Joe Conway <[email protected]>
To: Tom Lane <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: Re: dblink_error_message return value
Date: Tue, 25 Sep 2018 15:58:12 -0400
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <[email protected]>
	<[email protected]>
	<[email protected]>

On 09/25/2018 01:50 PM, Joe Conway wrote:
> On 08/08/2018 11:57 AM, Tom Lane wrote:
>> =?utf-8?q?PG_Doc_comments_form?= <[email protected]> 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.
> ------------

And now with the corresponding patch attached.

Thoughts/comments?

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


Attachments:

  [text/x-patch] doc-dblink_error_message-01.patch (1.3K, 2-doc-dblink_error_message-01.patch)
  download | inline diff:
diff --git a/doc/src/sgml/dblink.sgml b/doc/src/sgml/dblink.sgml
index 87e14ea..97dc3b8 100644
*** a/doc/src/sgml/dblink.sgml
--- b/doc/src/sgml/dblink.sgml
*************** dblink_error_message(text connname) retu
*** 1165,1175 ****
     <title>Return Value</title>
  
     <para>
!     Returns last error message, or an empty string if there has been
      no error in this connection.
     </para>
    </refsect1>
  
    <refsect1>
     <title>Examples</title>
  
--- 1165,1189 ----
     <title>Return Value</title>
  
     <para>
!     Returns last error message, or <literal>OK</literal> if there has been
      no error in this connection.
     </para>
    </refsect1>
  
+   <refsect1>
+    <title>Notes</title>
+ 
+    <para>
+     When asynchronous queries are initiated by
+     <function>dblink_send_query</function>, the error message associated with
+     the connection might not get updated until the server's response message
+     is consumed. This typically means that <function>dblink_is_busy</function>
+     or <function>dblink_get_result</function> should be called prior to
+     <function>dblink_error_message</function>, so that any error generated by
+     the asynchronous query will be visible.
+    </para>
+   </refsect1>
+ 
    <refsect1>
     <title>Examples</title>
  


  [application/pgp-signature] signature.asc (819B, 3-signature.asc)
  download

view thread (7+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected]
  Subject: Re: dblink_error_message return value
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox