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
Re: subselects in the target list |
Список | 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 по дате отправления: