git.iko.soy/typeable/postgresql-simple
on master help sign in
Compile with -Wall, and fix compile warnings
8fa277aJoey Adams
postgresql-simple.cabal+2
@@ -49,6 +49,8 @@ Library
49 text >= 0.11.1,
49 text >= 0.11.1,
50 time
50 time
51
51
52+ ghc-options: -Wall -fno-warn-name-shadowing
53+
52source-repository head
54source-repository head
53 type: git
55 type: git
54 location: http://github.com/lpsmith/postgresql-simple
56 location: http://github.com/lpsmith/postgresql-simple
src/Database/PostgreSQL/Simple.hs+5−3
@@ -110,7 +110,6 @@ import Control.Applicative ((<$>), pure)
110import Control.Concurrent.MVar
110import Control.Concurrent.MVar
111import Control.Exception (Exception, onException, throw, throwIO, finally)
111import Control.Exception (Exception, onException, throw, throwIO, finally)
112import Control.Monad (foldM)
112import Control.Monad (foldM)
113−import Control.Monad.Fix (fix)
114import Data.ByteString (ByteString)
113import Data.ByteString (ByteString)
115import Data.Char(ord)
114import Data.Char(ord)
116import Data.Int (Int64)
115import Data.Int (Int64)
@@ -195,6 +194,7 @@ formatMany conn q@(Query template) qs = do
195 \([^?]*)$"
194 \([^?]*)$"
196 [caseless]
195 [caseless]
197
196
197+escapeStringConn :: Connection -> ByteString -> IO (Maybe ByteString)
198escapeStringConn conn s = withConnection conn $ \c -> do
198escapeStringConn conn s = withConnection conn $ \c -> do
199 PQ.escapeStringConn c s
199 PQ.escapeStringConn c s
200
200
@@ -242,7 +242,7 @@ executeMany conn q qs = do
242 finishExecute conn q result
242 finishExecute conn q result
243
243
244finishExecute :: Connection -> Query -> PQ.Result -> IO Int64
244finishExecute :: Connection -> Query -> PQ.Result -> IO Int64
245−finishExecute conn q result = do
245+finishExecute _conn q result = do
246 status <- PQ.resultStatus result
246 status <- PQ.resultStatus result
247 case status of
247 case status of
248 PQ.CommandOk -> do
248 PQ.CommandOk -> do
@@ -344,6 +344,7 @@ data FoldOptions
344 transactionMode :: !TransactionMode
344 transactionMode :: !TransactionMode
345 }
345 }
346
346
347+defaultFoldOptions :: FoldOptions
347defaultFoldOptions = FoldOptions {
348defaultFoldOptions = FoldOptions {
348 fetchQuantity = Automatic,
349 fetchQuantity = Automatic,
349 transactionMode = TransactionMode ReadCommitted ReadOnly
350 transactionMode = TransactionMode ReadCommitted ReadOnly
@@ -559,7 +560,8 @@ beginLevel lvl = beginMode defaultTransactionMode { isolationLevel = lvl }
559-- | Begin a transaction with a given transaction mode
560-- | Begin a transaction with a given transaction mode
560beginMode :: TransactionMode -> Connection -> IO ()
561beginMode :: TransactionMode -> Connection -> IO ()
561beginMode mode conn = do
562beginMode mode conn = do
562− execute_ conn $! case mode of
563+ _ <- execute_ conn $!
564+ case mode of
563 TransactionMode ReadCommitted ReadWrite ->
565 TransactionMode ReadCommitted ReadWrite ->
564 "BEGIN"
566 "BEGIN"
565 TransactionMode ReadCommitted ReadOnly ->
567 TransactionMode ReadCommitted ReadOnly ->
src/Database/PostgreSQL/Simple/Internal.hs+1
@@ -195,6 +195,7 @@ exec conn sql =
195 Just res -> do
195 Just res -> do
196 return res
196 return res
197
197
198+disconnectedError :: SqlError
198disconnectedError = SqlError {
199disconnectedError = SqlError {
199 sqlNativeError = -1,
200 sqlNativeError = -1,
200 sqlErrorMsg = "connection disconnected",
201 sqlErrorMsg = "connection disconnected",
src/Database/PostgreSQL/Simple/LargeObjects.hs−1
@@ -36,7 +36,6 @@ import qualified Data.ByteString as B
36import Database.PostgreSQL.LibPQ (Oid(..),LoFd(..))
36import Database.PostgreSQL.LibPQ (Oid(..),LoFd(..))
37import qualified Database.PostgreSQL.LibPQ as PQ
37import qualified Database.PostgreSQL.LibPQ as PQ
38import Database.PostgreSQL.Simple.Internal
38import Database.PostgreSQL.Simple.Internal
39−import Foreign.C.Types (CInt)
40import System.IO (IOMode(..),SeekMode(..))
39import System.IO (IOMode(..),SeekMode(..))
41
40
42liftPQ :: B.ByteString -> Connection -> (PQ.Connection -> IO (Maybe a)) -> IO a
41liftPQ :: B.ByteString -> Connection -> (PQ.Connection -> IO (Maybe a)) -> IO a
src/Database/PostgreSQL/Simple/Notification.hs+1
@@ -29,6 +29,7 @@ data Notification = Notification
29 , notificationData :: B.ByteString
29 , notificationData :: B.ByteString
30 }
30 }
31
31
32+errfd :: String
32errfd = "Database.PostgreSQL.Simple.Notification.getNotification: \
33errfd = "Database.PostgreSQL.Simple.Notification.getNotification: \
33 \failed to fetch file descriptor"
34 \failed to fetch file descriptor"
34
35
src/Database/PostgreSQL/Simple/QueryResults.hs+2−2
@@ -24,14 +24,13 @@ module Database.PostgreSQL.Simple.QueryResults
24 ) where
24 ) where
25
25
26import Control.Applicative (Applicative(..), (<$>))
26import Control.Applicative (Applicative(..), (<$>))
27−import Control.Exception (SomeException(..), throw)
27+import Control.Exception (SomeException(..))
28import Data.ByteString (ByteString)
28import Data.ByteString (ByteString)
29import qualified Data.ByteString.Char8 as B
29import qualified Data.ByteString.Char8 as B
30import Data.Either()
30import Data.Either()
31import Database.PostgreSQL.Simple.Internal
31import Database.PostgreSQL.Simple.Internal
32import Database.PostgreSQL.Simple.Result (ResultError(..), Result(..))
32import Database.PostgreSQL.Simple.Result (ResultError(..), Result(..))
33import Database.PostgreSQL.Simple.Types (Only(..))
33import Database.PostgreSQL.Simple.Types (Only(..))
34−import qualified Database.PostgreSQL.LibPQ as LibPQ (Result)
35
34
36-- | A collection type that can be converted from a list of strings.
35-- | A collection type that can be converted from a list of strings.
37--
36--
@@ -212,6 +211,7 @@ instance (Result a, Result b, Result c, Result d, Result e, Result f,
212 return (a,b,c,d,e,f,g,h,i,j)
211 return (a,b,c,d,e,f,g,h,i,j)
213 convertResults fs vs = convertError fs vs 10
212 convertResults fs vs = convertError fs vs 10
214
213
214+(<$!>) :: Functor f => (a -> b) -> f a -> f b
215f <$!> (!x) = f <$> x
215f <$!> (!x) = f <$> x
216infixl 4 <$!>
216infixl 4 <$!>
217
217
src/Database/PostgreSQL/Simple/Result.hs+4−5
@@ -32,7 +32,7 @@ module Database.PostgreSQL.Simple.Result
32#include "MachDeps.h"
32#include "MachDeps.h"
33
33
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
63
61
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]
142
140
141+unBinary :: Binary t -> t
143unBinary (Binary x) = x
142unBinary (Binary x) = x
144
143
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
230
229
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]