Re: Cancelling Requests Frontend/Backend Protocol TCP/IP
От | Craig Ringer |
---|---|
Тема | Re: Cancelling Requests Frontend/Backend Protocol TCP/IP |
Дата | |
Msg-id | 4AEF0AD6.4080107@postnewspapers.com.au обсуждение исходный текст |
Ответ на | Re: Cancelling Requests Frontend/Backend Protocol TCP/IP (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-general |
On 2/11/2009 10:38 PM, Tom Lane wrote: > Craig Ringer <craig@postnewspapers.com.au> writes: >> On 2/11/2009 5:15 PM, Raimon Fernandez wrote: >>> If for example I send a SELECT * from myTable, it has 20000 rows, and >>> postgre starts sending the rows, how I can cancel this operation ? > >> Assuming you're asking "is there any way to cancel a running query using >> the postgresql tcp/ip protocol" then, as you've noted, you can cancel >> the request until you start getting data. > >> After that, you can still cancel the query by establishing another >> connection to the server and calling pg_cancel_backend( ) at the SQL >> level. This does, unfortunately, involve the overhead of setting up and >> tearing down a connection and the associated backend. > > The above distinction is nonsense. Query cancel works the same way > whether you have started receiving data or not --- it will open a > transient connection in any case. Otherwise there would be race > condition problems if the backend is just about to start sending data. Whoops - and thanks for clearing that up. For some reason I though it used the existing connection if possible, but you've rather succinctly pointed out why that wouldn't work sanely. -- Craig Ringer
В списке pgsql-general по дате отправления: