Commit 699300a1 authored by Tom Lane's avatar Tom Lane

Docs: clarify treatment of variadic functions with zero variadic arguments.

Explain that you have to use "VARIADIC ARRAY[]" to pass an empty array
to a variadic parameter position.  This was already implicit in the text
but it seems better to spell it out.

Per a suggestion from David Johnston, though I didn't use his proposed
wording.  Back-patch to all supported branches.
parent 2ef6c66a
...@@ -754,6 +754,20 @@ SELECT mleast(VARIADIC ARRAY[10, -1, 5, 4.4]); ...@@ -754,6 +754,20 @@ SELECT mleast(VARIADIC ARRAY[10, -1, 5, 4.4]);
actual argument of a function call. actual argument of a function call.
</para> </para>
<para>
Specifying <literal>VARIADIC</> in the call is also the only way to
pass an empty array to a variadic function, for example:
<screen>
SELECT mleast(VARIADIC ARRAY[]::numeric[]);
</screen>
Simply writing <literal>SELECT mleast()</> does not work because a
variadic parameter must match at least one actual argument.
(You could define a second function also named <literal>mleast</>,
with no parameters, if you wanted to allow such calls.)
</para>
<para> <para>
The array element parameters generated from a variadic parameter are The array element parameters generated from a variadic parameter are
treated as not having any names of their own. This means it is not treated as not having any names of their own. This means it is not
......
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