Re: subselects in the target list

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: subselects in the target list
Дата
Msg-id 11492.1107404544@sss.pgh.pa.us
обсуждение исходный текст
Ответ на subselects in the target list  (Neil Conway <neilc@samurai.com>)
Ответы Re: subselects in the target list  (John Hansen <john@geeknet.com.au>)
Re: subselects in the target list  (Neil Conway <neilc@samurai.com>)
Список pgsql-hackers
Neil Conway <neilc@samurai.com> writes:
> neilc=# select a, (select * from abc) from abc;
> ERROR:  subquery must return only one column

> Is there a reason we can't treat a subselect in the target list as
> returning a composite type?

Given the 8.0 infrastructure for unnamed record types it might be
possible to do that; it was surely never possible before.  Whether it's
a good idea is another question.  The syntax you are showing is designed
to return a scalar.  It will (and should) barf on multiple rows as well
as multiple columns.

> For that matter, is this behavior also intentional?

> neilc=# select a, foo_abc2() FROM abc;
> ERROR:  set-valued function called in context that cannot accept a set
> CONTEXT:  PL/pgSQL function "foo_abc2" line 1 at return next

It's an implementation restriction in plpgsql: we didn't make it support
the old-style SRF API.  I'm unconvinced that it's worth fixing
considering that this whole behavior (SRFs in the targetlist) is
deprecated.
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: pg_dump bug in 7.3.9 with sequences
Следующее
От: John Hansen
Дата:
Сообщение: Re: subselects in the target list