pike.git/lib/modules/Sql.pmod/pgsql.pike:1217: Inside #if defined(PG_STATS)
portal._tprepared = tp;
#ifdef PG_STATS
portalsopened++;
#endif
proxy.clearmessage = 1;
// Do not run a query in the local_backend to prevent deadlocks
if (Thread.this_thread() == .pgsql_util.local_backend.executing_thread())
Thread.Thread(startquery, forcetext, portal, q, tp, preparedname);
else
startquery(forcetext, portal, q, tp, preparedname);
+ if (portal) // Catches race where portal already imploded
throwdelayederror(portal);
return portal;
}
//! This is an alias for @[big_query()], since @[big_query()] already supports
//! streaming of multiple simultaneous queries through the same connection.
//!
//! @seealso
//! @[big_query()], @[big_typed_query()], @[streaming_typed_query()],
//! @[Sql.Connection], @[Sql.Result]