On Thu, Oct 28, 2010 at 11:15 AM, A.M. <age...@themactionfaction.com> wrote:

>
> On Oct 28, 2010, at 11:08 AM, Michael Clark wrote:
>
> > Hello all.
> >
> > Thanks a lot for the responses, they are appreciated.
> >
> > I think I now understand the folly of my loop, and how that was
> negatively
> > impacting my "test".
> >
> > I tried the suggestion Alex and Tom made to change my loop with a
> select()
> > and my results are now very close to the non-async version.
> >
> > The main reason for looking at this API is not to support async in our
> > applications, that is being achieved architecturally in a PG agnostic
> way.
> > It is to give our PG agnostic layer the ability to cancel queries.
> > (Admittedly the queries I mention in these emails are not candidates for
> > cancelling...).
>
> Hm- I'm not sure how the async API will allow you to cancel queries. In
> PostgreSQL, query canceling is implemented by opening a second connection
> and passing specific data which is received from the first connection
> (effectively sending a cancel signal to the connection instead of a specific
> query). This implementation is necessitated by the fact that the PostgreSQL
> backend isn't asynchronous.
>
> Even if you cancel the query, you still need to consume the socket input.
> Query cancellation is available for libpq both in sync and async modes.
>
>
Oh.  I misunderstood that.

I guess I can have one thread performing the query using the non async PG
calls, then from another thread issue the cancellation.  Both threads
accessing the same PGconn ?

I am glad I added that extra bit of info in my reply, and that your caught
it!!

Thank you!
Michael.

Reply via email to