git.iko.soy/typeable/postgresql-simple
on master help sign in
Check the connection status after a connection attempt
e9f8aadLeon P Smith
src/Database/PostgreSQL/Simple/Internal.hs+11−3
@@ -90,9 +90,17 @@ connect = connectPostgreSQL . postgreSQLConnectionString
90connectPostgreSQL :: ByteString -> IO Connection
90connectPostgreSQL :: ByteString -> IO Connection
91connectPostgreSQL connstr = do
91connectPostgreSQL connstr = do
92 conn <- PQ.connectdb connstr
92 conn <- PQ.connectdb connstr
93+ stat <- PQ.status conn
94+ case stat of
95+ PQ.ConnectionOk -> do
93− connectionHandle <- newMVar (Just conn)
96+ connectionHandle <- newMVar (Just conn)
94− connectionObjects <- newMVar (IntMap.empty)
97+ connectionObjects <- newMVar (IntMap.empty)
95− return Connection{..}
98+ return Connection{..}
99+ _ -> do
100+ msg <- maybe "connectPostgreSQL error" id <$> PQ.errorMessage conn
101+ throwIO $ SqlError { sqlNativeError = -1 -- FIXME?
102+ , sqlErrorMsg = msg
103+ , sqlState = "" }
96
104
97postgreSQLConnectionString :: ConnectInfo -> ByteString
105postgreSQLConnectionString :: ConnectInfo -> ByteString
98postgreSQLConnectionString connectInfo = fromString connstr
106postgreSQLConnectionString connectInfo = fromString connstr