| От | Tom Lane |
|---|---|
| Тема | Re: return next in recursive function |
| Дата | |
| Msg-id | 27424.1065107531@sss.pgh.pa.us обсуждение |
| Ответ на | return next in recursive function (Petr Bravenec <pbravenec@solartec.cz>) |
| Список | pgsql-general |
Petr Bravenec <pbravenec@solartec.cz> writes:
> FOR rec in select * from foo
> where foo.pid=pid LOOP
> return next rec;
> raise warning ''uid=% pid=%'',rec.uid,rec.pid;
> select into rec * from foo (rec.uid);
> END LOOP;
> return null;
This is simply throwing away the results of the recursive call.
If you are trying to append those results to the outer call's
results, maybe do this:
FOR rec in select * from foo
where foo.pid=pid LOOP
return next rec;
raise warning ''uid=% pid=%'',rec.uid,rec.pid;
FOR rec2 in select * from foo (rec.uid) LOOP
return next rec2;
END LOOP;
END LOOP;
return null;
regards, tom lane
В списке pgsql-general по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера