Re: ERROR: control reached end of function without RETURN, except, it is not a function it is a procedure or a nameless block.

From: Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com>
To: Herwig Goemans <herwig(dot)goemans(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: ERROR: control reached end of function without RETURN, except, it is not a function it is a procedure or a nameless block.
Date: 2021-09-13 11:44:10
Message-ID: CAFj8pRDLR-g_0-xR=Gue=9tm-k-aU5xGJ0wTNL8MW3H14HegPw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi

po 13. 9. 2021 v 13:23 odesílatel Herwig Goemans <herwig(dot)goemans(at)gmail(dot)com>
napsal:

> Hi Support,
>
>
> I get an error in a stored procedure - not a stored function mind you -
> control reached end of function without RETURN
>
> The error occurs when doing an exit <label> in a stored procedure. Now
> I cannot give all of the stored procedures involved but I can simulate
> te problem with a very simple block:
>
>
>
> DO
> $BODY$
> <<simple_block>>
> BEGIN
> begin
> exit simple_block;
> -- for demo purposes
> raise notice '%', 'unreachable!';
> end;
> raise notice '%', 'End of block';
> end;
> $BODY$
>
> This will return the error on Postgres version 13, Version 12 and 9.
>
>
> Now I thought this was text-book behaviour of exiting a code block. I do
> not like programming this way but it is part of a migration project of
> Oracle to PG.
>
> What do I miss ?
>

This is Postgres's bug

You can use an just workaround - extra outer block BEGIN END;

Regards

Pavel

> Kind regards,
>
>
> If you put this code snippet in a file and execute like:
>
> postgres(at)herwig-NUC10i7FNH:~$ psql -f do_test.sql
> psql:do_test.sql:12: ERROR: control reached end of function without RETURN
> CONTEXT: PL/pgSQL function inline_code_block
>
> Herwig
>
>
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2021-09-13 16:04:48 Re: ERROR: control reached end of function without RETURN, except, it is not a function it is a procedure or a nameless block.
Previous Message Herwig Goemans 2021-09-13 11:23:06 ERROR: control reached end of function without RETURN, except, it is not a function it is a procedure or a nameless block.