diff options
-rw-r--r-- | doc/src/sgml/libpq.sgml | 26 |
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> |