Thread: PL/pgSQL Return statements

PL/pgSQL Return statements

From
"Donald Fraser"
Date:
Hello,
I am currently trying to upgrade PostgreSQL from 8.0 to 8.1 on our development machine and have run into a problem with RETURN VOID; statements in PL/pgSQL functions that have a return type of void.
I'm getting errors like the following:
 
ERROR:  RETURN cannot have a parameter in function returning void at or near "VOID" at character 2983.
 
Does this mean I must edit every function that is declared with RETURNS VOID and remove the RETURN VOID; statement from the body?
 
I did a pg_dumpall using the 8.1 libraries on the 8.0 database and this made no difference.
 
Thanks in advance,
regards
Donald Fraser

Re: PL/pgSQL Return statements

From
Tom Lane
Date:
"Donald Fraser" <postgres@kiwi-fraser.net> writes:
> I'm getting errors like the following:

> ERROR:  RETURN cannot have a parameter in function returning void at or =
> near "VOID" at character 2983.

> Does this mean I must edit every function that is declared with RETURNS =
> VOID and remove the RETURN VOID; statement from the body?

Yup.  That was never correct code, but plpgsql used to completely ignore
anything after RETURN in a function declared to return VOID.  Which
surprised enough people that we changed it ...

            regards, tom lane