| Takusen-0.8.2: Database library with left-fold interface, for PostgreSQL, Oracle, SQLite, ODBC. | Contents | Index |
|
Database.PostgreSQL.PGFunctions | Portability | non-portable | Stability | experimental | Maintainer | oleg@pobox.com, alistair@abayley.org |
|
|
|
|
|
Description |
Simple wrappers for PostgreSQL functions (FFI) plus middle-level
wrappers (in the second part of this file)
|
|
Synopsis |
|
data DBHandleStruct = PGconn | | type DBHandle = Ptr DBHandleStruct | | data StmtStruct = PGresult | | type ResultSetHandle = Ptr StmtStruct | | type Oid = CUInt | | type Format = CInt | | type Void = () | | type ParamLen = CInt | | data PGException = PGException Int String | | catchPG :: IO a -> (PGException -> IO a) -> IO a | | throwPG :: Integral a => a -> String -> any | | rethrowPG :: PGException -> any | | cStr :: CStringLen -> CString | | cStrLen :: CStringLen -> CInt | | fPQconnectdb :: CString -> IO DBHandle | | fPQfinish :: DBHandle -> IO () | | fPQreset :: DBHandle -> IO () | | fPQdb :: DBHandle -> CString | | type ConnStatusType = CInt | | fPQstatus :: DBHandle -> IO ConnStatusType | | fPQerrorMessage :: DBHandle -> IO CString | | fPQsetClientEncoding :: DBHandle -> CString -> IO CString | | type NoticeReceiver = Ptr () -> ResultSetHandle -> IO () | | type NoticeProcessor = Ptr () -> CString -> IO () | | mkNoticeReceiver :: NoticeReceiver -> IO (FunPtr NoticeReceiver) | | mkNoticeProcessor :: NoticeProcessor -> IO (FunPtr NoticeProcessor) | | fPQsetNoticeReceiver :: DBHandle -> FunPtr NoticeReceiver -> Ptr () -> IO (FunPtr NoticeReceiver) | | fPQsetNoticeProcessor :: DBHandle -> FunPtr NoticeProcessor -> Ptr () -> IO (FunPtr NoticeProcessor) | | fPQexecParams :: DBHandle -> CString -> CInt -> Ptr Oid -> Ptr Void -> Ptr ParamLen -> Ptr Format -> CInt -> IO ResultSetHandle | | fPQprepare :: DBHandle -> CString -> CString -> CInt -> Ptr Oid -> IO ResultSetHandle | | fPQexecPrepared :: DBHandle -> CString -> CInt -> Ptr Void -> Ptr ParamLen -> Ptr Format -> CInt -> IO ResultSetHandle | | fPQresultStatus :: ResultSetHandle -> IO ExecStatusType | | type ExecStatusType = CInt | | fPQresultErrorMessage :: ResultSetHandle -> IO CString | | fPQclear :: ResultSetHandle -> IO () | | fPQntuples :: ResultSetHandle -> IO CInt | | fPQnfields :: ResultSetHandle -> IO CInt | | fPQfname :: ResultSetHandle -> CInt -> IO CString | | fPQfformat :: ResultSetHandle -> CInt -> IO CInt | | fPQftype :: ResultSetHandle -> CInt -> IO Oid | | fPQgetvalue :: ResultSetHandle -> CInt -> CInt -> IO (Ptr Word8) | | fPQgetisnull :: ResultSetHandle -> CInt -> CInt -> IO CInt | | fPQgetlength :: ResultSetHandle -> CInt -> CInt -> IO CInt | | fPQcmdStatus :: ResultSetHandle -> IO CString | | fPQcmdTuples :: ResultSetHandle -> IO CString | | fPQoidValue :: ResultSetHandle -> IO Oid | | fPQputCopyData :: DBHandle -> Ptr Word8 -> CInt -> IO CInt | | fPQputCopyEnd :: DBHandle -> CString -> IO CInt | | fPQgetResult :: DBHandle -> IO ResultSetHandle | | type PGVerbosity = CInt | | fPQsetErrorVerbosity :: DBHandle -> PGVerbosity -> IO PGVerbosity | | type LOAccessType = CInt | | type WhenceType = CInt | | flo_creat :: DBHandle -> LOAccessType -> IO Oid | | flo_import :: DBHandle -> CString -> IO Oid | | flo_export :: DBHandle -> Oid -> CString -> IO CInt | | flo_open :: DBHandle -> Oid -> LOAccessType -> IO CInt | | flo_write :: DBHandle -> CInt -> Ptr Word8 -> CUInt -> IO CInt | | flo_read :: DBHandle -> CInt -> Ptr Word8 -> CUInt -> IO CInt | | flo_lseek :: DBHandle -> CInt -> CInt -> WhenceType -> IO CInt | | flo_tell :: DBHandle -> CInt -> IO CInt | | flo_close :: DBHandle -> CInt -> IO CInt | | flo_unlink :: DBHandle -> Oid -> IO CInt | | getError :: DBHandle -> IO String | | openDb :: String -> IO DBHandle | | closeDb :: DBHandle -> IO () | | class PGType a where | | | data PGBindVal = PGBindVal {} | | toCChar :: Char -> CChar | | fromCChar :: CChar -> Char | | toCInt :: Int -> CInt | | check'stmt :: DBHandle -> ExecStatusType -> ResultSetHandle -> IO ResultSetHandle | | stmtPrepare :: DBHandle -> String -> String -> [Oid] -> IO String | | nqExec :: DBHandle -> String -> IO (String, String, Oid) | | execCommand :: DBHandle -> String -> [PGBindVal] -> IO (String, String, Oid) | | execPreparedCommand :: DBHandle -> String -> [PGBindVal] -> IO (String, String, Oid) | | stmtExecImm :: DBHandle -> String -> [PGBindVal] -> IO (ResultSetHandle, Int) | | stmtExecImm0 :: DBHandle -> String -> IO (ResultSetHandle, Int) | | stmtExec0 :: DBHandle -> String -> IO (ResultSetHandle, Int) | | stmtExec0t :: DBHandle -> String -> IO (ResultSetHandle, Int) | | stmtExec :: DBHandle -> String -> [PGBindVal] -> IO (ResultSetHandle, Int) | | execPrepared :: DBHandle -> String -> [PGBindVal] -> CInt -> IO (ResultSetHandle, Int) | | prepare'n'exec :: DBHandle -> String -> String -> [PGBindVal] -> IO (ResultSetHandle, Int) | | stmtFinalise :: ResultSetHandle -> IO () | | colValPtr :: ResultSetHandle -> Int -> Int -> IO (Ptr Word8) | | colVal :: PGType a => ResultSetHandle -> Int -> Int -> IO a | | colValString :: ResultSetHandle -> Int -> Int -> IO String | | colValInt :: ResultSetHandle -> Int -> Int -> IO Int | | colValInt64 :: ResultSetHandle -> Int -> Int -> IO Int64 | | colValDouble :: ResultSetHandle -> Int -> Int -> IO Double | | colValFloat :: ResultSetHandle -> Int -> Int -> IO Float | | colValUTCTime :: ResultSetHandle -> Int -> Int -> IO UTCTime | | colValCalTime :: ResultSetHandle -> Int -> Int -> IO CalendarTime | | colValNull :: ResultSetHandle -> Int -> Int -> IO Bool | | sbph :: String -> Int -> Bool -> String -> String | | nqCopyIn_buflen :: Int | | nqCopyIn :: DBHandle -> String -> Handle -> IO () |
|
|
Documentation |
|
data DBHandleStruct |
|
|
type DBHandle = Ptr DBHandleStruct |
|
data StmtStruct |
|
|
type ResultSetHandle = Ptr StmtStruct |
|
type Oid = CUInt |
|
type Format = CInt |
|
type Void = () |
|
type ParamLen = CInt |
|
data PGException |
Constructors | | Instances | |
|
|
catchPG :: IO a -> (PGException -> IO a) -> IO a |
|
throwPG :: Integral a => a -> String -> any |
|
rethrowPG :: PGException -> any |
|
cStr :: CStringLen -> CString |
|
cStrLen :: CStringLen -> CInt |
|
fPQconnectdb :: CString -> IO DBHandle |
|
fPQfinish :: DBHandle -> IO () |
|
fPQreset :: DBHandle -> IO () |
|
fPQdb :: DBHandle -> CString |
|
type ConnStatusType = CInt |
|
fPQstatus :: DBHandle -> IO ConnStatusType |
|
fPQerrorMessage :: DBHandle -> IO CString |
|
fPQsetClientEncoding :: DBHandle -> CString -> IO CString |
|
type NoticeReceiver = Ptr () -> ResultSetHandle -> IO () |
|
type NoticeProcessor = Ptr () -> CString -> IO () |
|
mkNoticeReceiver :: NoticeReceiver -> IO (FunPtr NoticeReceiver) |
|
mkNoticeProcessor :: NoticeProcessor -> IO (FunPtr NoticeProcessor) |
|
fPQsetNoticeReceiver :: DBHandle -> FunPtr NoticeReceiver -> Ptr () -> IO (FunPtr NoticeReceiver) |
|
fPQsetNoticeProcessor :: DBHandle -> FunPtr NoticeProcessor -> Ptr () -> IO (FunPtr NoticeProcessor) |
|
fPQexecParams :: DBHandle -> CString -> CInt -> Ptr Oid -> Ptr Void -> Ptr ParamLen -> Ptr Format -> CInt -> IO ResultSetHandle |
|
fPQprepare :: DBHandle -> CString -> CString -> CInt -> Ptr Oid -> IO ResultSetHandle |
|
fPQexecPrepared :: DBHandle -> CString -> CInt -> Ptr Void -> Ptr ParamLen -> Ptr Format -> CInt -> IO ResultSetHandle |
|
fPQresultStatus :: ResultSetHandle -> IO ExecStatusType |
|
type ExecStatusType = CInt |
|
fPQresultErrorMessage :: ResultSetHandle -> IO CString |
|
fPQclear :: ResultSetHandle -> IO () |
|
fPQntuples :: ResultSetHandle -> IO CInt |
|
fPQnfields :: ResultSetHandle -> IO CInt |
|
fPQfname :: ResultSetHandle -> CInt -> IO CString |
|
fPQfformat :: ResultSetHandle -> CInt -> IO CInt |
|
fPQftype :: ResultSetHandle -> CInt -> IO Oid |
|
fPQgetvalue :: ResultSetHandle -> CInt -> CInt -> IO (Ptr Word8) |
|
fPQgetisnull :: ResultSetHandle -> CInt -> CInt -> IO CInt |
|
fPQgetlength :: ResultSetHandle -> CInt -> CInt -> IO CInt |
|
fPQcmdStatus :: ResultSetHandle -> IO CString |
|
fPQcmdTuples :: ResultSetHandle -> IO CString |
|
fPQoidValue :: ResultSetHandle -> IO Oid |
|
fPQputCopyData :: DBHandle -> Ptr Word8 -> CInt -> IO CInt |
|
fPQputCopyEnd :: DBHandle -> CString -> IO CInt |
|
fPQgetResult :: DBHandle -> IO ResultSetHandle |
|
type PGVerbosity = CInt |
|
fPQsetErrorVerbosity :: DBHandle -> PGVerbosity -> IO PGVerbosity |
|
type LOAccessType = CInt |
|
type WhenceType = CInt |
|
flo_creat :: DBHandle -> LOAccessType -> IO Oid |
|
flo_import :: DBHandle -> CString -> IO Oid |
|
flo_export :: DBHandle -> Oid -> CString -> IO CInt |
|
flo_open :: DBHandle -> Oid -> LOAccessType -> IO CInt |
|
flo_write :: DBHandle -> CInt -> Ptr Word8 -> CUInt -> IO CInt |
|
flo_read :: DBHandle -> CInt -> Ptr Word8 -> CUInt -> IO CInt |
|
flo_lseek :: DBHandle -> CInt -> CInt -> WhenceType -> IO CInt |
|
flo_tell :: DBHandle -> CInt -> IO CInt |
|
flo_close :: DBHandle -> CInt -> IO CInt |
|
flo_unlink :: DBHandle -> Oid -> IO CInt |
|
getError :: DBHandle -> IO String |
|
openDb :: String -> IO DBHandle |
|
closeDb :: DBHandle -> IO () |
|
class PGType a where |
| Methods | pgTypeFormat | :: a | | -> Format | 1 == binary (default), 0 == text
|
| | pgTypeOid :: a -> Oid | | pgNewValue :: a -> IO (Ptr Word8) | | pgPeek :: Ptr Word8 -> IO a | | pgSize :: a -> Int |
| | Instances | |
|
|
data PGBindVal |
Constructors | PGBindVal | | bindValOid :: Oid | | bindValFormat :: Format | | bindValSize :: CInt | | bindValPtr :: (IO (Ptr Word8)) | |
|
|
|
|
toCChar :: Char -> CChar |
|
fromCChar :: CChar -> Char |
|
toCInt :: Int -> CInt |
|
check'stmt :: DBHandle -> ExecStatusType -> ResultSetHandle -> IO ResultSetHandle |
|
stmtPrepare :: DBHandle -> String -> String -> [Oid] -> IO String |
|
nqExec :: DBHandle -> String -> IO (String, String, Oid) |
|
execCommand :: DBHandle -> String -> [PGBindVal] -> IO (String, String, Oid) |
|
execPreparedCommand :: DBHandle -> String -> [PGBindVal] -> IO (String, String, Oid) |
This is for commands, as opposed to queries.
The query equivalent of execPreparedCommand is stmtExec.
|
|
stmtExecImm :: DBHandle -> String -> [PGBindVal] -> IO (ResultSetHandle, Int) |
|
stmtExecImm0 :: DBHandle -> String -> IO (ResultSetHandle, Int) |
|
stmtExec0 :: DBHandle -> String -> IO (ResultSetHandle, Int) |
|
stmtExec0t :: DBHandle -> String -> IO (ResultSetHandle, Int) |
|
stmtExec :: DBHandle -> String -> [PGBindVal] -> IO (ResultSetHandle, Int) |
|
execPrepared :: DBHandle -> String -> [PGBindVal] -> CInt -> IO (ResultSetHandle, Int) |
|
prepare'n'exec :: DBHandle -> String -> String -> [PGBindVal] -> IO (ResultSetHandle, Int) |
|
stmtFinalise :: ResultSetHandle -> IO () |
|
colValPtr :: ResultSetHandle -> Int -> Int -> IO (Ptr Word8) |
Column numbers are zero-indexed, so subtract one
from given index (we present a one-indexed interface).
So are the row numbers.
|
|
colVal :: PGType a => ResultSetHandle -> Int -> Int -> IO a |
|
colValString :: ResultSetHandle -> Int -> Int -> IO String |
|
colValInt :: ResultSetHandle -> Int -> Int -> IO Int |
|
colValInt64 :: ResultSetHandle -> Int -> Int -> IO Int64 |
|
colValDouble :: ResultSetHandle -> Int -> Int -> IO Double |
|
colValFloat :: ResultSetHandle -> Int -> Int -> IO Float |
|
colValUTCTime :: ResultSetHandle -> Int -> Int -> IO UTCTime |
|
colValCalTime :: ResultSetHandle -> Int -> Int -> IO CalendarTime |
|
colValNull :: ResultSetHandle -> Int -> Int -> IO Bool |
|
sbph :: String -> Int -> Bool -> String -> String |
|
nqCopyIn_buflen :: Int |
|
nqCopyIn :: DBHandle -> String -> Handle -> IO () |
|
Produced by Haddock version 0.7 |