Thanks David, You are correct. I was giving an example of what I was hoping to achieve, not what I expected to work with the current interface. I found some discussion in the past relating to batch processing which appears to support some kind of pipelining: https://2ndquadrant.github.io/postgres/libpq-batch-mode.html However it seems to be abandoned. Kind regards, Samuel On Sat, 27 Jun 2020 at 16:15, David G. Johnston <david.g.johnston@xxxxxxxxx> wrote: > > On Friday, June 26, 2020, Samuel Williams <space.ship.traveller@xxxxxxxxx> wrote: >> >> Hello, >> >> Using the asynchronous interface of libpq, is it possible to pipeline >> multiple queries? >> >> i.e. >> >> PQsendQuery(query1) >> PQsendQuery(query2) >> >> followed by >> >> query1_results = PQgetResult(...) >> query2_results = PQgetResult(...) >> >> I tried it but got "another command is already in progress" error. > > > The documentation seems to leave zero ambiguity: > > After successfully calling PQsendQuery, call PQgetResult one or more times to obtain the results. PQsendQuery cannot be called again (on the same connection) until PQgetResult has returned a null pointer, indicating that the command is done. > > David J. >