I have a need to do asynchronous query processing. I am a little confused by the order and frequency of calls. Can someone tell me if the below is correct? The code comments are littered with my questions.
PQsendQueryParams(pgconn, "SELECT ..", ....);
while(1)
{
epoll/poll/select PQsocket(pgconn) [read]
// call this each time poll indicates data is ready?
PQconsumeInput(pgconn);
// If isBusy returns 1, just poll again? Will this indicate 0 when I have a full PGResult set?
// Or, can it split the results of a single statement across multiple result sets.
if(PQisBusy())
conitnue;
// I know the docs say keep calling getResult until it returns NULL. In my
// case, I am wondering if that is needed. I only send one statement at a
// time to the server. The connection is not listening for notifies either. Do
// I still need to call getResult multiple times? I saw many examples online
// that DO NOT call it multiple times, all of them executed a single statement.
res = PQgetResult(pgconn);
process_results(res);
}
thanks, brendon