From f393fb20a1543a3e08597968ff6017d9d399513d Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 13 Mar 2020 12:49:10 -0400 Subject: [PATCH] Doc: fix mistaken reference to "PG_ARGNULL_xxx()" macro. This should of course be just "PG_ARGISNULL()". Also reorder a couple of paras to make the discussion of PG_ARGISNULL less disjointed. Back-patch to v10 where the error was introduced. Laurenz Albe and Tom Lane, per an anonymous docs comment Discussion: https://postgr.es/m/158399487096.5708.10696365251766477013@wrigleys.postgresql.org --- doc/src/sgml/xfunc.sgml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/doc/src/sgml/xfunc.sgml b/doc/src/sgml/xfunc.sgml index d9afd3be4d..b5d4b10c72 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