postgresql-simple-0.0: src/Database/PostgreSQL/Simple/LargeObjects.hs
{-# LANGUAGE OverloadedStrings #-}
-----------------------------------------------------------------------------
-- |
-- Module : Database.PostgreSQL.Simple.LargeObjects
-- Copyright : (c) 2011 Leon P Smith
-- License : BSD3
--
-- Maintainer : leon@melding-monads.com
--
-----------------------------------------------------------------------------
module Database.PostgreSQL.Simple.LargeObjects
( loImport
, loExport
, Oid(..)
) where
import Control.Applicative ((<$>))
import Control.Exception (throwIO)
import Database.PostgreSQL.LibPQ (Oid(..))
import qualified Database.PostgreSQL.LibPQ as PQ
import Database.PostgreSQL.Simple.Internal
import Foreign.C.Types(CInt)
loImport :: Connection -> FilePath -> IO Oid
loImport conn path = withConnection conn $ \c -> do
res <- PQ.loImport c path
case res of
Nothing -> do
msg <- maybe "loImport error" id <$> PQ.errorMessage c
throwIO $ SqlError { sqlNativeError = -1 -- FIXME?
, sqlErrorMsg = msg
, sqlState = "" }
Just x -> return x
loExport :: Connection -> Oid -> FilePath -> IO ()
loExport conn oid path = withConnection conn $ \c -> do
res <- PQ.loExport c oid path
case res of
Nothing -> do
msg <- maybe "loExport error" id <$> PQ.errorMessage c
throwIO $ SqlError { sqlNativeError = -1 -- FIXME?
, sqlErrorMsg = msg
, sqlState = "" }
Just x -> return x