Daniel Caune wrote:

> Is there any suggestion against using OUT parameter for local
> calculation such as using a local variable?
> 
> CREATE OR REPLACE FUNCTION foo(a IN int,
>                                b1 OUT int,
>                                b2 OUT int)
> AS $$
> BEGIN
>   FOR (...) LOOP
>     b1 = (...);
>     b2 = (...);
>   END LOOP;
> END;
> $$ LANGUAGE PLPGSQL;

I'd say there's no problem with this, PROVIDED you can ensure you'll never 
abort before completing the computation.  It's not a good idea to modify out 
parameters partway; programmers (myself included) have this nasty habit of 
assuming, rightly or wrongly, that a failed function call won't have destroyed 
the parameters.

If you can't ensure you'll always complete, use locals.

-Owen

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

Reply via email to