Re: Error with returning SETOF Record

Поиск
Список
Период
Сортировка
От A E
Тема Re: Error with returning SETOF Record
Дата
Msg-id 20031227215729.95642.qmail@web12104.mail.yahoo.com
обсуждение исходный текст
Ответ на Re: Error with returning SETOF Record  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Error with returning SETOF Record  (Joe Conway <mail@joeconway.com>)
Список pgsql-hackers
I guess the question I have then is how do I return data from a select statement using the record datatype? This is only a test function I was trying to get info from, but my application is based on passing the table name to the function dynamically. How do I do this? The documentation is sketchy when it comes to the record datatype.
 
TIA
Alex

Tom Lane <tgl@sss.pgh.pa.us> wrote:
A E writes:
> CREATE FUNCTION tester(varchar) RETURNS SETOF record as'
> DECLARE
> ft record;
> begin
> FOR ft IN SELECT * FROM visaapplicants LOOP
> RETURN NEXT ft;
> END LOOP;
> return null;
> end;'
> LANGUAGE 'plpgsql' VOLATILE;

>
> select * from tester('a') as (c varchar);

>
> ERROR: wrong record type supplied in RETURN NEXT
> CONTEXT: PL/pgSQL function "tester" line 6 at return next

That's pretty much what I'd expect, unless table visaapplicants contains
only a single varchar column. The example works fine for me if I define
visaapplicants that way.

regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an in dex scan if your
joining column's datatypes do not match

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

Предыдущее
От: Joe Conway
Дата:
Сообщение: Re: [GENERAL] Strange permission problem regarding pg_settings
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [GENERAL] Strange permission problem regarding pg_settings