Throw PersistMarshalError instead of using fail.

This commit is contained in:
Felipe Lessa 2012-09-04 00:27:18 -03:00
parent f3e47321e2
commit 7ebb2d87bf

View File

@ -9,8 +9,8 @@ module Database.Esqueleto.Internal.Sql
import Control.Applicative (Applicative(..), (<$>)) import Control.Applicative (Applicative(..), (<$>))
import Control.Arrow (first) import Control.Arrow (first)
import Control.Exception (throwIO)
import Control.Monad (ap) import Control.Monad (ap)
import Control.Monad.IO.Class (MonadIO)
import Control.Monad.Logger (MonadLogger) import Control.Monad.Logger (MonadLogger)
import Data.List (intersperse) import Data.List (intersperse)
import Data.Monoid (Monoid(..), (<>)) import Data.Monoid (Monoid(..), (<>))
@ -168,7 +168,7 @@ selectSource query = src
mrow <- C.await mrow <- C.await
case process <$> mrow of case process <$> mrow of
Just (Right r) -> C.yield r >> massage Just (Right r) -> C.yield r >> massage
Just (Left err) -> fail (T.unpack err) Just (Left err) -> liftIO $ throwIO $ PersistMarshalError err
Nothing -> return () Nothing -> return ()
process = sqlSelectProcessRow process = sqlSelectProcessRow