From 819bf4ec149b06089a70a94b3ac22ed004ee9e44 Mon Sep 17 00:00:00 2001 From: "Stephen R. van den Berg" <srb@cuci.nl> Date: Mon, 7 Nov 2016 13:51:41 +0100 Subject: [PATCH] pgsql: Release started statements upon destruct. --- lib/modules/Sql.pmod/pgsql.pike | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike index 62bb09f3a7..d9813e3914 100644 --- a/lib/modules/Sql.pmod/pgsql.pike +++ b/lib/modules/Sql.pmod/pgsql.pike @@ -1958,9 +1958,13 @@ private inline void throwdelayederror(object parent) { } if((portal._tprepared=tp) && tp.datatypeoid) { mixed e=catch(portal->_preparebind(tp.datatypeoid)); - if(e && !portal._delayederror) + if (e && !portal._delayederror) { + portal._unnamedstatementkey = 0; // Release early, release often throw(e); + } } + if (!unnamedstatement) + portal._unnamedstatementkey = 0 // Cover for a destruct race } throwdelayederror(portal); return portal; -- GitLab