Hmm. So it is. 
My bad, thanks Tom.

I hadn’t noticed the documentation where it clearly says "This is only
allowed in the FROM clause”

xml_test=# select unnest(*) from (select array[1,2],array[1,2,3]) foo;
ERROR:  function unnest() does not exist


And, yes.. I was expecting the function signature to change. Thanks for
setting me straight.

Tim



From:  Tom Lane <t...@sss.pgh.pa.us>
Date:  Monday, 10 March 2014 15:10
To:  Tim Kane <tim.k...@gmail.com>
Cc:  pgsql-general General <pgsql-general@postgresql.org>
Subject:  Re: [GENERAL] Playing with 9.4devel - unnest

Tim Kane <tim.k...@gmail.com> writes:
>  I decided to have a play with postgresql-9.4devel as I wanted to explore the
>  functionality provided by
>  unnest (anyarray, anyarray [, ╜])
>  Iâ•˙ve taken the nightly snpahost, compiled, installed.. All good.  (Obtained
>  from http://ftp.postgresql.org/pub/snapshot/dev/ )
>  However it seems the expected multi-argument unnest function doesnâ•˙t exist.

>  Have I missed something?

It's there:

regression=# select * from unnest(array[1,2], array[3,4]);
 unnest | unnest 
--------+--------
      1 |      3
      2 |      4
(2 rows)

If you were expecting this to change, it didn't:

regression=# \df unnest
                           List of functions
   Schema   |  Name  | Result data type | Argument data types |  Type
------------+--------+------------------+---------------------+--------
 pg_catalog | unnest | SETOF anyelement | anyarray            | normal
(1 row)

because the new functionality arises from a parser transformation,
not from a simple function.

regards, tom lane



Reply via email to