@@ -32,7 +32,7 @@ module Database.PostgreSQL.Simple.Result
32#include "MachDeps.h"
32#include "MachDeps.h"
34import Control.Applicative (Applicative, (<$>), (<*>), (<*), pure)
34import Control.Applicative (Applicative, (<$>), (<*>), (<*), pure)
35−import Control.Exception (SomeException(..), Exception, throw)
35+import Control.Exception (SomeException(..), Exception)
36import Data.Attoparsec.Char8 hiding (Result)
36import Data.Attoparsec.Char8 hiding (Result)
37import Data.Bits ((.&.), (.|.), shiftL)
37import Data.Bits ((.&.), (.|.), shiftL)
38import Data.ByteString (ByteString)
38import Data.ByteString (ByteString)
@@ -44,10 +44,9 @@ import Data.Time.Calendar (Day, fromGregorian)
44import Data.Time.Clock (UTCTime)
44import Data.Time.Clock (UTCTime)
45import Data.Time.Format (parseTime)
45import Data.Time.Format (parseTime)
46import Data.Time.LocalTime (TimeOfDay, makeTimeOfDayValid)
46import Data.Time.LocalTime (TimeOfDay, makeTimeOfDayValid)
47−import Data.Typeable (TypeRep, Typeable, typeOf)
47+import Data.Typeable (Typeable, typeOf)
48import Data.Word (Word64)
48import Data.Word (Word64)
49import Database.PostgreSQL.Simple.Internal
49import Database.PostgreSQL.Simple.Internal
50−import Database.PostgreSQL.Simple.Field (Field(..), RawResult(..))
51import Database.PostgreSQL.Simple.BuiltinTypes
50import Database.PostgreSQL.Simple.BuiltinTypes
52import Database.PostgreSQL.Simple.Types (Binary(..), Null(..))
51import Database.PostgreSQL.Simple.Types (Binary(..), Null(..))
53import qualified Database.PostgreSQL.LibPQ as PQ
52import qualified Database.PostgreSQL.LibPQ as PQ
@@ -58,7 +57,6 @@ import qualified Data.ByteString.Char8 as B8
58import qualified Data.ByteString.Lazy as LB
57import qualified Data.ByteString.Lazy as LB
59import qualified Data.Text as ST
58import qualified Data.Text as ST
60import qualified Data.Text.Encoding as ST
59import qualified Data.Text.Encoding as ST
61−import qualified Data.Text.Encoding.Error (UnicodeException)
62import qualified Data.Text.Lazy as LT
60import qualified Data.Text.Lazy as LT
64-- | Exception thrown if conversion from a SQL value to a Haskell
62-- | Exception thrown if conversion from a SQL value to a Haskell
@@ -140,6 +138,7 @@ instance Result (Ratio Integer) where
140 convert = atto ok rational
138 convert = atto ok rational
141 where ok = mkCompats [Float4,Float8,Int2,Int4,Numeric]
139 where ok = mkCompats [Float4,Float8,Int2,Int4,Numeric]
141+unBinary :: Binary t -> t
143unBinary (Binary x) = x
142unBinary (Binary x) = x
145instance Result SB.ByteString where
144instance Result SB.ByteString where
@@ -228,7 +227,7 @@ mkCompat = Compat . shiftL 1 . fromEnum
228compat :: Compat -> Compat -> Bool
227compat :: Compat -> Compat -> Bool
229compat (Compat a) (Compat b) = a .&. b /= 0
228compat (Compat a) (Compat b) = a .&. b /= 0
231−okText, okText', ok16, ok32, ok64 :: Compat
230+okText, okText', okBinary, ok16, ok32, ok64, okInt :: Compat
232okText = mkCompats [Name,Text,Char,Bpchar,Varchar]
231okText = mkCompats [Name,Text,Char,Bpchar,Varchar]
233okText' = mkCompats [Name,Text,Char,Bpchar,Varchar,Unknown]
232okText' = mkCompats [Name,Text,Char,Bpchar,Varchar,Unknown]
234okBinary = mkCompats [Bytea]
233okBinary = mkCompats [Bytea]