Re: Recusrive Functions in 7.0.3

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: m(dot)proctor(at)bigfoot(dot)com
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Recusrive Functions in 7.0.3
Date: 2001-02-10 03:29:19
Message-ID: 28783.981775759@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

<plpgsql(at)polar-digital(dot)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

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2001-02-10 08:42:11 Re: Recusrive Functions in 7.0.3
Previous Message guard 2001-02-10 01:54:00 how to download postgresql 7.1 beta