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
, 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
, sqlErrorMsg = msg
, sqlState = "" }
Just x -> return x