Re: Apache - DBI - Postgresql: Cancelling queries - Mailing list pgsql-general

From Jonathan Bartlett
Subject Re: Apache - DBI - Postgresql: Cancelling queries
Date
Msg-id Pine.GSU.4.44.0308011551370.10152-100000@eskimo.com
Whole thread Raw
In response to Apache - DBI - Postgresql: Cancelling queries  (Mat <psql-mail@freeuk.com>)
List pgsql-general
> The first problem was the lack of cancel query, second problem seems to
> be that the DBI database handles cannot be shared between thread - so i
> will have to pass a signal to the thread waiting for query to return to
> cancel it? anyone else tried this? any more gaping pitfalls that i
> should be aware of?!

Never fork() a process using DBI;  When either the child or the parent
dies, the connection on both of them will close, even if it wasn't
actively using it.

As for #1, here's the answer from perldoc DBI:

       To assist in implementing these operations, the DBI pro
       vides a "cancel" method for statement handles. The "can
       cel" method should abort the current operation and is
       designed to be called from a signal handler.

       However, it must be stressed that: a) few drivers imple
       ment this at the moment (the DBI provides a default method
       that just returns "undef"); and b) even if implemented,
       there is still a possibility that the statement handle,
       and possibly the parent database handle, will not be
       usable afterwards.

       If "cancel" returns true, then it has successfully invoked
       the database engines own cancel function.  If it returns
       false, then "cancel" failed. If it returns "undef", then
       the database engine does not have cancel implemented.

Jon


pgsql-general by date:

Previous
From: elein
Date:
Subject: Re: CREATE TABLE with a column of type {table name}
Next
From: b b
Date:
Subject: last inserted raw (identity)