Re: Recusrive Functions in 7.0.3

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Recusrive Functions in 7.0.3
Дата
Msg-id 28783.981775759@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Recusrive Functions in 7.0.3  (<plpgsql@polar-digital.com>)
Ответы Recusrive Functions in 7.0.3  (mark proctor <m.proctor@bigfoot.com>)
Список pgsql-sql
<plpgsql@polar-digital.com> writes:
> Are recursive functions allowed in in 7.0.3

Sure.

play=> create function myfactorial(int) returns int as '
play'> begin
play'>   if $1 > 1 then
play'>     return $1 * myfactorial($1 - 1);
play'>   end if;
play'>   return $1;
play'> end;' language 'plpgsql';
CREATE
play=> select myfactorial(1);myfactorial
-------------          1
(1 row)

play=> select myfactorial(10);myfactorial
-------------    3628800
(1 row)

play=>

I get a stack overflow crash at about myfactorial(7500), but that seems
like a sufficient level of recursion depth for normal purposes ...

> as I seem to be unable to
> get them to work in plpgsql,

Are you sure you aren't asking for infinite recursion, eg by invoking
the same function with the same argument?
        regards, tom lane


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

Предыдущее
От: "guard"
Дата:
Сообщение: how to download postgresql 7.1 beta
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Recusrive Functions in 7.0.3