Subject SPs and recursion
Author duilio_fos <irel_llc@libero.it>
this is a recursive SP I found in the net:

CREATE PROCEDURE FACTORIAL (num INT)
RETURNS (n_factorial DOUBLE PRECISION)
AS
DECLARE VARIABLE num_less_one INT;
BEGIN
IF (num = 1) THEN
BEGIN
n_factorial = 1;
SUSPEND;
END
ELSE
BEGIN
num_less_one = :num - 1;
EXECUTE PROCEDURE FACTORIAL :num_less_one
RETURNING_VALUES :n_factorial;
n_factorial = :n_factorial * :num;

SUSPEND;
END
END

If I write

select * from factorial(5)

I get

120

which is the correct result allright.

In order to understand better how SPs work, I tried to modify the
code, so to get

5
20
60
120

i.e. to have the result returned at every call.

I could not find a way to do it.

Can you ?

TIA

Duilio Foschi

PS temporary tables make a too easy solution...