Re: Cancelling Requests Frontend/Backend Protocol TCP/IP

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>
Cc: Raimon Fernandez <coder(at)montx(dot)com>, pgsql-general(at)postgresql(dot)org
Subject: Re: Cancelling Requests Frontend/Backend Protocol TCP/IP
Date: 2009-11-02 14:38:00
Message-ID: 24308.1257172680@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-interfaces

Craig Ringer <craig(at)postnewspapers(dot)com(dot)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.

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2009-11-02 14:41:49 Re: Error on compile for Windows
Previous Message Grzegorz Jaśkiewicz 2009-11-02 14:33:52 Re: [PERFORM] Problem with database performance, Debian 4gb ram ?

Browse pgsql-interfaces by date

  From Date Subject
Next Message Raimon Fernandez 2009-11-02 15:50:49 Re: Cancelling Requests Frontend/Backend Protocol TCP/IP
Previous Message John DeSoi 2009-11-02 14:12:17 Re: Cancelling Requests Frontend/Backend Protocol TCP/IP