Commit dbf95c84 authored by Tom Lane's avatar Tom Lane

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
parent 340de727
...@@ -2237,9 +2237,9 @@ PG_FUNCTION_INFO_V1(funcname); ...@@ -2237,9 +2237,9 @@ PG_FUNCTION_INFO_V1(funcname);
<para> <para>
In a version-1 function, each actual argument is fetched using a In a version-1 function, each actual argument is fetched using a
<function>PG_GETARG_<replaceable>xxx</replaceable>()</function> <function>PG_GETARG_<replaceable>xxx</replaceable>()</function>
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 functions there needs to be a previous check about argument null-ness
using <function>PG_ARGNULL_<replaceable>xxx</replaceable>()</function>. using <function>PG_ARGISNULL()</function>; see below.)
The result is returned using a The result is returned using a
<function>PG_RETURN_<replaceable>xxx</replaceable>()</function> <function>PG_RETURN_<replaceable>xxx</replaceable>()</function>
macro for the return type. macro for the return type.
...@@ -2401,14 +2401,6 @@ CREATE FUNCTION concat_text(text, text) RETURNS text ...@@ -2401,14 +2401,6 @@ CREATE FUNCTION concat_text(text, text) RETURNS text
explicitly, using <function>PG_ARGISNULL()</function>. explicitly, using <function>PG_ARGISNULL()</function>.
</para> </para>
<para>
At first glance, the version-1 coding conventions might appear to be just
pointless obscurantism, over using plain <literal>C</literal> calling
conventions. They do however allow to deal with <literal>NULL</literal>able
arguments/return values, and <quote>toasted</quote> (compressed or
out-of-line) values.
</para>
<para> <para>
The macro <function>PG_ARGISNULL(<replaceable>n</replaceable>)</function> The macro <function>PG_ARGISNULL(<replaceable>n</replaceable>)</function>
allows a function to test whether each input is null. (Of course, doing allows a function to test whether each input is null. (Of course, doing
...@@ -2423,6 +2415,14 @@ CREATE FUNCTION concat_text(text, text) RETURNS text ...@@ -2423,6 +2415,14 @@ CREATE FUNCTION concat_text(text, text) RETURNS text
this works in both strict and nonstrict functions. this works in both strict and nonstrict functions.
</para> </para>
<para>
At first glance, the version-1 coding conventions might appear
to be just pointless obscurantism, compared to using
plain <literal>C</literal> calling conventions. They do however allow
us to deal with <literal>NULL</literal>able arguments/return values,
and <quote>toasted</quote> (compressed or out-of-line) values.
</para>
<para> <para>
Other options provided by the version-1 interface are two Other options provided by the version-1 interface are two
variants of the variants of the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment