Thread: libpq: How to cancel a COPY ... TO statement?
Hi, after sending a COPY ... TO statement with PQsendQuery(), how can I cancel it properly? I tried using PQcancel(), but it seems to have no effect. Calling PQgetCopyData() or PQgetResult() afterwards does not gointo a failure state. And I don't want to call PQgetCopyData() until it returns -1, as this might be a lot of data beingread from the server that I don't need. BR, Daniel
Daniel Frey <d.frey@gmx.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. AndI don't want to call PQgetCopyData() until it returns -1, as this might be a lot of data being read from the server thatI 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