Re: plpqsql and RETURN NEXT requires a LOOP?

Поиск
Список
Период
Сортировка
От Owen Jacobson
Тема Re: plpqsql and RETURN NEXT requires a LOOP?
Дата
Msg-id 144D12D7DD4EC04F99241498BB4EEDCC25E7EA@nelson.osl.com
обсуждение исходный текст
Ответ на plpqsql and RETURN NEXT requires a LOOP?  ("Davidson, Robert" <robdavid@amazon.com>)
Список pgsql-sql
In general, to do anything useful with RETURN NEXT you need a loop.  However, it doesn't need to be a loop over another
resultset:you can do a computation in a loop, returning values as you go. 

Excuse the outlook-ism.

-Owen

-----Original Message-----
From: pgsql-sql-owner@postgresql.org [mailto:pgsql-sql-owner@postgresql.org]On Behalf Of Davidson, Robert
Sent: Tuesday, March 21, 2006 9:51 AM
To: pgsql-sql@postgresql.org
Subject: [SQL] plpqsql and RETURN NEXT requires a LOOP?


From my reading of 36.7.1 Returning from a Function
http://www.postgresql.org/docs/8.1/interactive/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-RETURNING
it appears that RETURN NEXT in a plpgsql function requires you to loop through the result set. Is this correct? If so,
Iwould be happy to post this example to the interactive docs (which could use a RETURN NEXT example), but wanted to
makesure that I wasn't missing something more elegant or more efficient. 
Best Regards,
Robert Davidson
-----------------------------------------
CREATE TABLE test (textcol varchar(10), intcol int);
INSERT INTO test VALUES ('a', 1);
INSERT INTO test VALUES ('a', 2);
INSERT INTO test VALUES ('b', 5);
INSERT INTO test VALUES ('b', 6);
CREATE OR REPLACE FUNCTION ReturnNexting(pText Text) RETURNS SETOF test AS $$       DECLARE               rec RECORD;
   BEGIN               FOR rec IN SELECT * FROM test WHERE textcol = pText LOOP                       RETURN NEXT rec;
            END LOOP;               RETURN;       END; 
$$
LANGUAGE plpgsql;
SELECT * FROM ReturnNexting('a');


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

Предыдущее
От: "Davidson, Robert"
Дата:
Сообщение: plpqsql and RETURN NEXT requires a LOOP?
Следующее
От:
Дата:
Сообщение: Re: Referential integrity broken (8.0.3), sub-select help