Re: FUNCTION problem

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: FUNCTION problem
Дата
Msg-id 200904021816.44804.aklaver@comcast.net
обсуждение исходный текст
Ответ на Re: FUNCTION problem  (Peter Willis <peterw@borstad.com>)
Ответы Re: FUNCTION problem  (Adrian Klaver <aklaver@comcast.net>)
Список pgsql-sql
On Thursday 02 April 2009 4:22:06 pm Peter Willis wrote:
> Adrian Klaver wrote:
> > Did you happen to catch this:
> > Note that functions using RETURN NEXT or RETURN QUERY must be called as a
> > table source in a FROM clause
> >
> > Try:
> > select * from test_function(1)
>
> I did miss that, but using that method to query the function
> didn't work either. Postgres doesn't see the result as a
> tabular set of records.
>
> Even if I replace the FOR loop with:
>
> <quote>
> FOR R IN SELECT * FROM pg_database LOOP
>     RETURN NEXT R;
> END LOOP;
>
> </quote>
>
> I get the same error(s). I don't think postgres likes
> the unrelated 'SELECT INTO <variable> [column] FROM [QUERY] LIMIT 1'
> lines before the FOR loop...
>
> I think I need to go back and approach the function from a
> different direction.
>
> Thanks for all the pointers.
>
> Peter

Now I remember. Its something that trips me up, the RECORD in RETURN setof 
RECORD is not the same thing as the RECORD in DECLARE RECORD. See below for a 
better explanation-
http://www.postgresql.org/docs/8.3/interactive/plpgsql-declarations.html#PLPGSQL-DECLARATION-RECORDS
Note that RECORD is not a true data type, only a placeholder. One should also 
realize that when a PL/pgSQL function is declared to return type record, this 
is not quite the same concept as a record variable, even though such a function 
might use a record variable to hold its result. In both cases the actual row 
structure is unknown when the function is written, but for a function returning 
record the actual structure is determined when the calling query is parsed, 
whereas a record variable can change its row structure on-the-fly.



-- 
Adrian Klaver
aklaver@comcast.net


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

Предыдущее
От: Peter Willis
Дата:
Сообщение: Re: FUNCTION problem
Следующее
От: "Tena Sakai"
Дата:
Сообщение: Re: How would I get rid of trailing blank line?