Re: Apache - DBI - Postgresql: Cancelling queries

Поиск
Список
Период
Сортировка
От Jonathan Bartlett
Тема Re: Apache - DBI - Postgresql: Cancelling queries
Дата
Msg-id Pine.GSU.4.44.0308011551370.10152-100000@eskimo.com
обсуждение исходный текст
Ответ на Apache - DBI - Postgresql: Cancelling queries  (Mat <psql-mail@freeuk.com>)
Список 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 по дате отправления:

Предыдущее
От: elein
Дата:
Сообщение: Re: CREATE TABLE with a column of type {table name}
Следующее
От: b b
Дата:
Сообщение: last inserted raw (identity)