pike.git/lib/modules/Sql.pmod/pgsql.pike:1214: 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()], @[Sql.Sql], @[Sql.sql_result]
/*semi*/final inline .pgsql_util.sql_result streaming_query(string q,