]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix EXIT out of outermost block in plpgsql.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 13 Sep 2021 16:42:03 +0000 (12:42 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 13 Sep 2021 16:42:03 +0000 (12:42 -0400)
commit745abdd951ab31f3276adbbbf67bbc3b7dac0923
treeff9739e43a2a4a01a13738addfb12371d390d788
parentb7b8e2c4a5cb9d520c907f12fe9ebd3837dffc49
Fix EXIT out of outermost block in plpgsql.

Ordinarily, using EXIT this way would draw "control reached end of
function without RETURN".  However, if the function is one where we
don't require an explicit RETURN (such as a DO block), that should
not happen.  It did anyway, because add_dummy_return() neglected to
account for the case.

Per report from Herwig Goemans.  Back-patch to all supported branches.

Discussion: https://postgr.es/m/868ae948-e3ca-c7ec-95a6-83cfc08ef750@gmail.com
src/pl/plpgsql/src/expected/plpgsql_control.out
src/pl/plpgsql/src/pl_comp.c
src/pl/plpgsql/src/sql/plpgsql_control.sql