aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/src/sgml/libpq.sgml26
1 files changed, 23 insertions, 3 deletions
diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index 9905b2a2899..a955b1b55c4 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -5152,15 +5152,35 @@ typedef struct
<para>
<function>PQfn</function> always returns a valid
- <structname>PGresult</structname> pointer. The result status should be
+ <structname>PGresult</structname> pointer, with
+ status <literal>PGRES_COMMAND_OK</literal> for success
+ or <literal>PGRES_FATAL_ERROR</literal> if some problem was encountered.
+ The result status should be
checked before the result is used. The caller is responsible for
freeing the <structname>PGresult</structname> with
<function>PQclear</function> when it is no longer needed.
</para>
<para>
- Note that it is not possible to handle null arguments, null results,
- nor set-valued results when using this interface.
+ To pass a NULL argument to the function, set
+ the <parameter>len</parameter> field of that parameter structure
+ to <literal>-1</literal>; the <parameter>isint</parameter>
+ and <parameter>u</parameter> fields are then irrelevant.
+ (But this works only in protocol 3.0 and later connections.)
+ </para>
+
+ <para>
+ If the function returns NULL, <parameter>*result_len</parameter> is set
+ to <literal>-1</literal>, and <parameter>*result_buf</parameter> is not
+ modified. (This works only in protocol 3.0 and later connections; in
+ protocol 2.0, neither <parameter>*result_len</parameter>
+ nor <parameter>*result_buf</parameter> are modified.)
+ </para>
+
+ <para>
+ Note that it is not possible to handle set-valued results when using
+ this interface. Also, the function must be a plain function, not an
+ aggregate or window function.
</para>
</sect1>