@@ -48,7 +48,7 @@ import Data.Word (Word64)
48import Database.PostgreSQL.Simple.Internal
48import Database.PostgreSQL.Simple.Internal
49import Database.PostgreSQL.Simple.Field (Field(..), RawResult(..))
49import Database.PostgreSQL.Simple.Field (Field(..), RawResult(..))
50import Database.PostgreSQL.Simple.BuiltinTypes
50import Database.PostgreSQL.Simple.BuiltinTypes
51−import Database.PostgreSQL.Simple.Types (Binary(..))
51+import Database.PostgreSQL.Simple.Types (Binary(..), Null(..))
52import qualified Database.PostgreSQL.LibPQ as PQ
52import qualified Database.PostgreSQL.LibPQ as PQ
53import System.IO.Unsafe (unsafePerformIO)
53import System.IO.Unsafe (unsafePerformIO)
54import System.Locale (defaultTimeLocale)
54import System.Locale (defaultTimeLocale)
@@ -98,6 +98,10 @@ instance (Result a) => Result (Maybe a) where
98 convert _ Nothing = pure Nothing
98 convert _ Nothing = pure Nothing
99 convert f bs = Just <$> convert f bs
99 convert f bs = Just <$> convert f bs
101+instance Result Null where
102+ convert _ Nothing = pure Null
103+ convert f (Just _) = returnError ConversionFailed f "data is not null"
101instance Result Bool where
105instance Result Bool where
102 convert f bs
106 convert f bs
103 | typeOid f /= builtin2oid Bool = returnError Incompatible f ""
107 | typeOid f /= builtin2oid Bool = returnError Incompatible f ""