Docs: clarify treatment of variadic functions with zero variadic arguments.
authorTom Lane
Sun, 21 Dec 2014 20:30:39 +0000 (15:30 -0500)
committerTom Lane
Sun, 21 Dec 2014 20:30:57 +0000 (15:30 -0500)
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.

doc/src/sgml/xfunc.sgml

index d759f3746b2a57dfd5f6f0ae9ad5dd6a3155362f..f40504c481630fe31378e07eaccae6d0667a1d9d 100644 (file)
@@ -754,6 +754,20 @@ SELECT mleast(VARIADIC ARRAY[10, -1, 5, 4.4]);
      actual argument of a function call.
     
 
+    
+     Specifying VARIADIC in the call is also the only way to
+     pass an empty array to a variadic function, for example:
+
+
+SELECT mleast(VARIADIC ARRAY[]::numeric[]);
+
+
+     Simply writing SELECT mleast() does not work because a
+     variadic parameter must match at least one actual argument.
+     (You could define a second function also named mleast,
+     with no parameters, if you wanted to allow such calls.)
+    
+
     
      The array element parameters generated from a variadic parameter are
      treated as not having any names of their own.  This means it is not