pgsql: Fix error-cleanup mistakes in exec_stmt_call(). - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix error-cleanup mistakes in exec_stmt_call().
Date
Msg-id E1gLJZQ-0001sO-F3@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix error-cleanup mistakes in exec_stmt_call().

Commit 15c729347 was a couple bricks shy of a load: we need to
ensure that expr->plan gets reset to NULL on any error exit,
if it's not supposed to be saved.  Also ensure that the
stmt->target calculation gets redone if needed.

The easy way to exhibit a problem is to set up code that
violates the writable-argument restriction and then execute
it twice.  But error exits out of, eg, setup_param_list()
could also break it.  Make the existing PG_TRY block cover
all of that code to be sure.

Per report from Pavel Stehule.

Discussion: https://postgr.es/m/CAFj8pRAeXNTO43W2Y0Cn0YOVFPv1WpYyOqQrrzUiN6s=dn7gCg@mail.gmail.com

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/8e02ee788fb5a4aa8be9deb5c0af5ab5ac40007b

Modified Files
--------------
src/pl/plpgsql/src/pl_exec.c | 82 ++++++++++++++++++++++++--------------------
1 file changed, 45 insertions(+), 37 deletions(-)


pgsql-committers by date:

Previous
From: David Steele
Date:
Subject: Re: pgsql: Make WAL segment size configurable at initdb time.
Next
From: Andres Freund
Date:
Subject: pgsql: docs: Adapt wal_segment_size docs to fc49e24fa69.