From 7e32aaab589a8927c22d3b83d55fc0e77424b348 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 3f3d46414ca..c2433748c80 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