diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike index 62bb09f3a79c9581fc32df3885d5249a5b3f057c..d9813e3914dd5e7c67dcaf83769a38c2a9b15dd7 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;