diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml
index d9afd3be4d0..b5d4b10c725 100644
--- a/doc/src/sgml/xfunc.sgml
+++ b/doc/src/sgml/xfunc.sgml
@@ -2239,9 +2239,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.
@@ -2403,14 +2403,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
@@ -2425,6 +2417,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