Browse files

Properly discover a connection is closed in postgresql_adapter

PQstatus doesn't properly test if future operations will succeed. A
PQping function is added to libpq in PostgreSQL 9.1, but if we rely
on it, everyone on earlier versions of Postgres is out of luck,
and the pg gem wouldn't have the 'fix' until the next release.

Thanks to @cbrecabarren and @ged for handling all the dirty details.

Closes #3392.
  • Loading branch information...
steveklabnik committed May 24, 2012
1 parent abccf82 commit 4dacac3baa271597e6bcf3527c557182d64a6a95
Showing with 2 additions and 1 deletion.
  1. +2 −1 activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb
@@ -457,7 +457,8 @@ def clear_cache!
# Is this connection alive and ready for queries?
def active?
@connection.status == PGconn::CONNECTION_OK
@connection.query 'SELECT 1'
rescue PGError

1 comment on commit 4dacac3


This comment has been minimized.

Show comment
Hide comment

ghazel Oct 17, 2012


Why @connection.query instead of @connection.async_exec?


ghazel commented on 4dacac3 Oct 17, 2012

Why @connection.query instead of @connection.async_exec?

Please sign in to comment.