v11: RETURN syntax for procedure

Started by fn lnover 7 years ago2 messagesdocs
Jump to latest
#1fn ln
emuser20140816@gmail.com

Hello.

I've found this on the docs:
https://www.postgresql.org/docs/devel/static/plpgsql-control-structures.html#PLPGSQL-STATEMENTS-RETURNING-PROCEDURE

If a RETURN statement is desired to exit the code early, then NULL must

be returned.

But isn't actual syntax just RETURN without an expression?

#2Bruce Momjian
bruce@momjian.us
In reply to: fn ln (#1)
Re: v11: RETURN syntax for procedure

On Wed, Oct 10, 2018 at 10:14:23PM +0900, fn ln wrote:

Hello.

I've found this on the docs:
https://www.postgresql.org/docs/devel/static/plpgsql-control-structures.html#
PLPGSQL-STATEMENTS-RETURNING-PROCEDURE

If a RETURN statement is desired to exit the code early, then NULL must be

returned.

But isn't actual syntax just RETURN without an expression?

I think you might be right:

CREATE OR REPLACE PROCEDURE triple()
LANGUAGE plpgsql
AS $$
BEGIN
RETURN NULL;
END;
$$;
ERROR: RETURN cannot have a parameter in a procedure
--> LINE 5: RETURN NULL;
^

CREATE OR REPLACE PROCEDURE triple()
LANGUAGE plpgsql
AS $$
BEGIN
RETURN;
END;
$$;

--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com

+ As you are, so once was I.  As I am, so you will be. +
+                      Ancient Roman grave inscription +