Document incompatibility of comparison expressions with VARIADIC array arguments
authorAndrew Dunstan <andrew@dunslane.net>
Mon, 11 Mar 2019 22:14:05 +0000 (18:14 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Mon, 11 Mar 2019 22:14:05 +0000 (18:14 -0400)
COALESCE, GREATEST and LEAST all look like functions taking variable
numbers of arguments, but in fact they are not functions, and so
VARIADIC array arguments don't work with them. Add a note to the docs
explaining this fact.

The consensus is not to try to make this work, but just to document the
limitation.

Discussion: https://postgr.es/m/CAFj8pRCaAtuXuRtvXf5GmPbAVriUQrNMo7-=TXUFN025S31R_w@mail.gmail.com

doc/src/sgml/func.sgml

index 03859a78eaa35c71efb2cfd532173d651d4479fe..7fbcdfeae56ba3b70229005281372b43575846f7 100644 (file)
@@ -12481,6 +12481,15 @@ SELECT setval('foo', 42, false);    <lineannotation>Next <function>nextval</func
    </para>
   </tip>
 
+   <note>
+    <para>
+     Although <token>COALESCE</token>, <token>GREATEST</token>, and
+     <token>LEAST</token> are syntactically similar to functions, they are
+     not strictly functions, and thus cannot be used with explicit
+     <token>VARIADIC</token> array arguments.
+    </para>
+   </note>
+
   <sect2 id="functions-case">
    <title><literal>CASE</literal></title>