From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | pgsql-committers(at)postgresql(dot)org |
Subject: | pgsql: Fix error handling in pltcl_returnnext. |
Date: | 2017-01-09 22:47:48 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-committers |
Fix error handling in pltcl_returnnext.
We can't throw elog(ERROR) out of a Tcl command procedure; we have
to catch the error and return TCL_ERROR to the Tcl interpreter.
pltcl_returnnext failed to meet this requirement, so that errors
detected by pltcl_build_tuple_result or other functions called here
led to longjmp'ing out of the Tcl interpreter and thereby leaving it
in a bad state. Use the existing subtransaction support to prevent
that. Oversight in commit 26abb50c4, found more or less accidentally
by the buildfarm thanks to the tests added in 961bed020.
Report: https://postgr.es/m/[email protected]
Branch
------
master
Modified Files
--------------
src/pl/tcl/pltcl.c | 99 ++++++++++++++++++++++++++++++++----------------------
1 file changed, 59 insertions(+), 40 deletions(-)
From | Date | Subject | |
---|---|---|---|
Next Message | Stephen Frost | 2017-01-10 04:10:37 | pgsql: Fix invalid-parallel-jobs error message |
Previous Message | Alvaro Herrera | 2017-01-09 22:27:54 | pgsql: Fix ALTER TABLE / SET TYPE for irregular inheritance |