libpq: Which functions may hang due to network issues? - Mailing list pgsql-general

From Daniel Frey
Subject libpq: Which functions may hang due to network issues?
Date
Msg-id 2B29B70E-2A78-49D3-9861-5DD289DC30DD@gmx.de
Whole thread Raw
List pgsql-general
I need to know which functions of libpq may "hang", depending on network issues. For some functions is seems to be
clear,as they only work locally, other functions are clearly documented to wait on some network interaction. But for
somefunctions, it is unclear on whether they are guaranteed to work locally without any possibility to hang or not,
e.g.PQfinish(), PQstatus(), PQtransactionStatus(), etc. 

Is there a complete list of methods that might wait for network communication?

Some background: I'm writing a C++ wrapper for libpq <https://github.com/taocpp/taopq/> and our applications, which are
goingto use that library, should never hang, even when there is a network problem and network communication breaks down
fora connection. For that reason I'm using asynchronous calls for libpq only and I use timeouts when polling on the
socket/FD.When a timeout occurs, I need to handle the situation in a reasonable manner. In my case, I currently close
theconnection by calling PQfinish(). Also, later I might call PQstatus() or PQtransactionStatus() in order to decide
whethera connection is still valid and should be returned to the connection pool or if it needs to be discarded. 




pgsql-general by date:

Previous
From: Dilip Kumar
Date:
Subject: Re: Max connections reached without max connections reached
Next
From: Sebastien Flaesch
Date:
Subject: SUM() of INTERVAL type produces INTERVAL with no precision