The following bug has been logged online: Bug reference: 5837 Logged by: Murray S. Kucherawy Email address: m...@cloudmark.com PostgreSQL version: 9.0.2 Operating system: FreeBSD Description: PQstatus() fails to report lost connection Details:
I'm accessing libpq via OpenDBX, but it appears to be doing the right thing. This is reproducible. 1) establish a connection to postgresql 2) initiate a query, collect results, etc.; all normal 3) while client is idle, restart the server 4) initiate the very same query as before 5) call PQgetResult(), returns non-NULL 6) call PQresultStatus(), returns PGRES_FATAL_ERROR 7) call PQstatus(), returns CONNECTION_OK This causes the caller not to try PQreset() or equivalent, because the connection is presumably fine. However, of course, no further queries will succeed. A call to PQerrorMessage() returns the string "FATAL: terminating connection due to administrator command", which would be expected. I would hate to have to have the application pull that out each time and look for this specific string to detect the dead connection. What happens internally prior to (7) appears to be a bug. I looked through the "TODO" list and didn't see any mention of this. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs