Hi John,<br><br>My current usage of hdbc is in a server process that takes requests from multiple clients, queries the database, and returns a result.  Having a single db query block everything else isn&#39;t really workable for me.  I suspect this will also be an issue for others.  As an example, the persistent-postgresql package which is part of the new Yesod web framework will have the same problem.<br>
<br>I can send you a patch, but I am concerned with the issue Leon raised about libpq needing to be compiled with thread support.  This is the default on my platforms (macosx, debian), but probably is dangerous to rely on.  I guess we can just test the result of &#39;PQisthreadsafe()&#39;, in connectPostgreSQL and raise an error if it is false.<br>
<br>Cheers,<br><br>-- David<br><br><br><div class="gmail_quote">On Fri, Sep 3, 2010 at 1:36 AM, John Goerzen <span dir="ltr">&lt;<a href="mailto:jgoerzen@complete.org">jgoerzen@complete.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi David,<br>
<br>
I&#39;ve had varying arguments from people that want me to mark things safe or unsafe for various performance reasons.  I&#39;m happy to apply your change if you like.  Can you send me a diff (and attach your explanation here to it, which I&#39;ll use as a commit message for future reference)?<br>

<br>
Thanks,<br><font color="#888888">
<br>
-- John</font><div><div></div><div class="h5"><br>
<br>
On 09/01/2010 09:40 PM, David Powell wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Greetings,<br>
<br>
I&#39;m having an issue with the HDBC-postgresql package that requires me to<br>
manually patch it before installation for most of my use cases.<br>
<br>
All the FFI calls in this package are marked &quot;unsafe&quot;.  Unfortunately,<br>
this means that whenever I issue a slow sql query, all other processing<br>
stops.  In most places that I want to use this module, I&#39;ve had to<br>
manually patch it to at least mark the PQexec and PQexecParams calls as<br>
&quot;safe&quot;.<br>
<br>
Is there any reason these calls should not be marked as &quot;safe&quot;?  I<br>
understand that there a little extra runtime overhead with this, but I&#39;d<br>
have thought that negligible given all the other processing that goes on<br>
with these particular calls under the hood.<br>
<br>
Cheers,<br>
<br>
--<br>
David Powell<br>
</blockquote>
<br>
</div></div></blockquote></div><br>