diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml
index 3f3d46414c..c2433748c8 100644
--- a/doc/src/sgml/xfunc.sgml
+++ b/doc/src/sgml/xfunc.sgml
@@ -2259,9 +2259,9 @@ PG_FUNCTION_INFO_V1(funcname);
In a version-1 function, each actual argument is fetched using a
PG_GETARG_xxx()
- macro that corresponds to the argument's data type. In non-strict
+ macro that corresponds to the argument's data type. (In non-strict
functions there needs to be a previous check about argument null-ness
- using PG_ARGNULL_xxx().
+ using PG_ARGISNULL(); see below.)
The result is returned using a
PG_RETURN_xxx()
macro for the return type.
@@ -2423,14 +2423,6 @@ CREATE FUNCTION concat_text(text, text) RETURNS text
explicitly, using PG_ARGISNULL().
-
- At first glance, the version-1 coding conventions might appear to be just
- pointless obscurantism, over using plain C calling
- conventions. They do however allow to deal with NULLable
- arguments/return values, and toasted
(compressed or
- out-of-line) values.
-
-
The macro PG_ARGISNULL(n)
allows a function to test whether each input is null. (Of course, doing
@@ -2445,6 +2437,14 @@ CREATE FUNCTION concat_text(text, text) RETURNS text
this works in both strict and nonstrict functions.
+
+ At first glance, the version-1 coding conventions might appear
+ to be just pointless obscurantism, compared to using
+ plain C calling conventions. They do however allow
+ us to deal with NULLable arguments/return values,
+ and toasted
(compressed or out-of-line) values.
+
+
Other options provided by the version-1 interface are two
variants of the