0 | module Postgres.DB.Core
2 | import Postgres.FFI.Utility
3 | import Postgres.Data.Conn
4 | import Postgres.Data.ConnectionStatus
9 | %foreign libpq "PQconnectdb"
10 | nLibpq "PQconnectdb"
11 | prim__dbOpen : String -> PrimIO (Ptr PGconn)
20 | pgOpen : HasIO io => (pgUrl: String) -> io Conn
21 | pgOpen url = (map MkConn (primIO $
prim__dbOpen url))
26 | %foreign libpq "PQfinish"
28 | prim__dbClose : Ptr PGconn -> PrimIO ()
32 | pgClose : HasIO io => Conn -> io ()
33 | pgClose (MkConn conn) = primIO $
prim__dbClose conn
38 | %foreign libpq "PQstatus"
40 | prim__dbStatus : Ptr PGconn -> Int
42 | connectionStatus: Int -> ConnectionStatus
49 | 4 => AWAITING_RESPONSE
58 | pgStatus : Conn -> ConnectionStatus
59 | pgStatus (MkConn conn) = connectionStatus $
prim__dbStatus conn
61 | %foreign cHelper "connErrorMessage"
62 | nLibpq "PQerrorMessage"
63 | prim__dbErrorMessage : Ptr PGconn -> PrimIO String
67 | pgErrorMessage : HasIO io => Conn -> io String
68 | pgErrorMessage (MkConn conn) = primIO $
prim__dbErrorMessage conn
74 | %foreign libpq "PQconsumeInput"
75 | nLibpq "PQconsumeInput"
76 | prim__dbConsumeInput : Ptr PGconn -> PrimIO Int
90 | export pgConsumeInput : Conn -> IO Bool
91 | pgConsumeInput (MkConn conn) = (map intToBool (primIO $
prim__dbConsumeInput conn))