From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | adrian(dot)klaver(at)gmail(dot)com |
Cc: | pgsql-sql(at)postgresql(dot)org, berelith <nicolasbeuzeboc(at)gmail(dot)com> |
Subject: | Re: Need help with plpgsql function. |
Date: | 2010-11-14 18:41:00 |
Message-ID: | AANLkTim9teaJy-zwh2fJ3KADCxD0_JRJVstPVkM96uax@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
2010/11/14 Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com>:
> On Saturday 13 November 2010 11:15:51 pm Pavel Stehule wrote:
>
>> > }
>>
>> Hello
>>
>> you can use a RETURN QUERY statement - some like
>>
>> CREATE OR REPLACE FUNCTION foo(IN i int, OUT a int, OUT b int)
>> RETURNS SETOF RECORD AS $$
>> BEGIN
>> IF i = 1 THEN
>> RETURN QUERY SELECT 10,20 UNION ALL SELECT 30,40;
>> ELSE
>> RETURN QUERY SELECT 60,70 UNION ALL SELECT 80,90;
>> END IF;
>> RETURN;
>> END;
>> $$ LANGUAGE plpgsql;
>>
>> SELECT * FROM foo(1);
>> SELECT * FROM foo(2);
>>
>> Regards
>>
>> Pavel Stehule
>>
>
> FYI the OP is using 8.2 :) RETURN QUERY is 8.3+
sorry :)
then
RETURN QUERY query -->
DECLARE r record;
BEGIN
FOR r IN SELECT ....
RETURN NEXT r;
END FOR;
...
Regards
Pavel Stehule
>
> --
> Adrian Klaver
> adrian(dot)klaver(at)gmail(dot)com
>
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas | 2010-11-16 05:57:30 | multi table import from 1 denormalized source table |
Previous Message | Adrian Klaver | 2010-11-14 18:37:58 | Re: Need help with plpgsql function. |