| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Daniel Frey <d(dot)frey(at)gmx(dot)de> |
| Cc: | pgsql-general(at)lists(dot)postgresql(dot)org |
| Subject: | Re: libpq: How to cancel a COPY ... TO statement? |
| Date: | 2021-11-08 19:05:41 |
| Message-ID: | 991131.1636398341@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Daniel Frey <d(dot)frey(at)gmx(dot)de> writes:
> after sending a COPY ... TO statement with PQsendQuery(), how can I cancel it properly?
> I tried using PQcancel(),
That's the correct way.
> but it seems to have no effect. Calling PQgetCopyData() or PQgetResult() afterwards does not go into a failure state. And I don't want to call PQgetCopyData() until it returns -1, as this might be a lot of data being read from the server that I don't need.
You can't expect instantaneous response to a cancel. For one thing, the
server might have already stuffed a good deal of data down the pipe.
You should keep pulling (and discarding) data until you get the end
or error response.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Christophe Pettus | 2021-11-08 19:13:25 | Re: Question: Is it possible to get the new xlog position after query execution? |
| Previous Message | Daniel Frey | 2021-11-08 18:59:01 | libpq: How to cancel a COPY ... TO statement? |