PL/pgSQL proposal: using list of scalars in assign stmts, fore and fors stmts

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема PL/pgSQL proposal: using list of scalars in assign stmts, fore and fors stmts
Дата
Msg-id BAY20-F2006DAA09F8162F0A40FC4F9300@phx.gbl
обсуждение исходный текст
Ответы Re: PL/pgSQL proposal: using list of scalars in assign stmts, fore and fors stmts  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: PL/pgSQL proposal: using list of scalars in assign stmts, fore and fors stmts  (David Fetter <david@fetter.org>)
Список pgsql-hackers
Hello

Now, statements EXECUTE INTO and SELECT INTO allow using list of scalars. 
FORe and FORs allow only ROW o RECORD VARIABLE. I'll plan and I did it 
enhance this stmts:

<for> := FOR <target> IN {SELECT | EXECUTE} ... LOOP
<target> := {row|record|comma separated list of scalar vars}

<assign> := <target2> ':=' <expression>
<target2> := {row|record|variable|'ROW(' comma separated list of scalar vars 
')'}

for example:
CREATE OR REPLACE FUNCTION test(OUT _rc, OUT _x varchar, OUT _y varchar)
RETURNS SETOF RECORD  AS $$
DECLARE _r RECORD;
BEGIN rc := 0; -- old style; FOR _r IN SELECT generate_series AS x, generateseries + 1 AS y FROM 
generate_series(1,4) LOOP   _rc := _rc + 1; _x := _r.x; _y := _r.y;   RETURN NEXT; END LOOP; -- new one FOR _x,_y IN
SELECTgenerate_series, generateseries + 1 FROM 
 
generate_series(1,4) LOOP   _rc := _rc + 1;   RETURN NEXT; END LOOP; -- new two   FOR _r IN SELECT generate_series AS
x,generateseries + 1 AS y FROM 
 
generate_series(1,4)    LOOP   _rc := _rc + 1; ROW(_x,_y) := _r;   RETURN NEXT; END LOOP; RETURN;
END; $$ LANGUAGE plpgsql;

any comments?
Regards
Pavel Stehule

_________________________________________________________________
Najdete si svou lasku a nove pratele na Match.com. http://www.msn.cz/



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

Предыдущее
От: Lukas Smith
Дата:
Сообщение: Re: Automatic function replanning
Следующее
От: REYNAUD Jean-Samuel
Дата:
Сообщение: Re: Function call with offset and limit