diff --git a/doc/src/sgml/libpq.sgml b/doc/src/sgml/libpq.sgml
index 64acd23a94..028bfcbf34 100644
--- a/doc/src/sgml/libpq.sgml
+++ b/doc/src/sgml/libpq.sgml
@@ -5155,15 +5155,35 @@ typedef struct
PQfn always returns a valid
- PGresult pointer. The result status should be
+ PGresult pointer, with
+ status PGRES_COMMAND_OK for success
+ or PGRES_FATAL_ERROR if some problem was encountered.
+ The result status should be
checked before the result is used. The caller is responsible for
freeing the PGresult with
when it is no longer needed.
- 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 len field of that parameter structure
+ to -1; the isint
+ and u fields are then irrelevant.
+ (But this works only in protocol 3.0 and later connections.)
+
+
+
+ If the function returns NULL, *result_len is set
+ to -1, and *result_buf is not
+ modified. (This works only in protocol 3.0 and later connections; in
+ protocol 2.0, neither *result_len
+ nor *result_buf are modified.)
+
+
+
+ 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, window function, or procedure.