Обсуждение: [GENERAL] Multiple unnests in query

Поиск
Список
Период
Сортировка

[GENERAL] Multiple unnests in query

От
Aron Widforss
Дата:
Good night,

Is this first query expected behavior? If so, what is the rationale? I
would have expected nine rows returned (as in my second example).

Regards,
Aron Widforss

SELECT unnest(ARRAY[1, 1, 2]) AS unnested1, unnest(ARRAY[3, 3, 4]) AS unnested2
;unnested1 | unnested2 
-----------+-----------        1 |         3        1 |         3        2 |         4
(3 rows)

SELECT unnest(ARRAY[1, 1, 2]) AS unnested1, sec
FROM (SELECT 3 AS sec UNION ALL     SELECT 3 AS sec UNION ALL     SELECT 4 AS sec) test
;unnested1 | sec 
-----------+-----        1 |   3        1 |   3        2 |   3        1 |   3        1 |   3        2 |   3        1 |
4        1 |   4        2 |   4
 
(9 rows)


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Re: [GENERAL] Multiple unnests in query

От
Tom Lane
Дата:
Aron Widforss <pgsql-general@antarkt.is> writes:
> Is this first query expected behavior? If so, what is the rationale?

The short answer is "because it's always worked that way".  You
might find the last half of section 37.4.8 illuminating:

https://www.postgresql.org/docs/devel/static/xfunc-sql.html#XFUNC-SQL-FUNCTIONS-RETURNING-SET

but if you're on a pre-v10 release, pay close attention to what it says
about the difference between v10 and pre-v10 behavior.

> I would have expected nine rows returned (as in my second example).

Your second example has approximately nothing to do with your first.
It has only one SRF in the SELECT list, so there's not much doubt
about what ought to happen.
        regards, tom lane


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general