Re: calling a function that takes a row type and returns a set of rows
От | Pavel Stehule |
---|---|
Тема | Re: calling a function that takes a row type and returns a set of rows |
Дата | |
Msg-id | 162867790810102318o4129d1ay6960bc2b9607f490@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: calling a function that takes a row type and returns a set of rows (Dimitri Fontaine <dfontaine@hi-media.com>) |
Ответы |
Re: calling a function that takes a row type and returns a set of rows
|
Список | pgsql-general |
2008/10/10 Dimitri Fontaine <dfontaine@hi-media.com>: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi, > > Le 10 oct. 08 à 21:22, Robert Haas a écrit : >> >> I can't find any legal way of calling this function. >> >> SELECT bar(f) FROM foo f; >> ERROR: set-valued function called in context that cannot accept a set >> >> SELECT * FROM foo f, bar(f); >> ERROR: function expression in FROM may not refer to other relations >> of same query level >> >> Any help appreciated. > > > You need LATERAL support for this: > SELECT * FROM foo f LATERAL bar(f); > > I'm not sure about the syntax, but LATERAL is a standard JOIN type wherein > upper "nodes" are visible. > - -- > dim > no, this strange syntax is far to any standard. Solution is using dynamic cursor ala DB2 (that isn't supported in postgres) - select * from fce(cursor(select .... from tab)) Regards Pavel Stehule > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (Darwin) > > iEYEARECAAYFAkjvvYMACgkQlBXRlnbh1blatgCgnaDoSY2RGzv224QWqA8OYEjx > fbMAoK31dHoFjOVRdomvhl/qilndRZJ5 > =3xjL > -----END PGP SIGNATURE----- > > -- > Sent via pgsql-general mailing list (pgsql-general@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-general >
В списке pgsql-general по дате отправления: