packages feed

postgresql-libpq 0.9.1.1 → 0.9.2.0

raw patch · 4 files changed

+68/−22 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Database.PostgreSQL.LibPQ: instance Enum Column
- Database.PostgreSQL.LibPQ: instance Enum ExecStatus
- Database.PostgreSQL.LibPQ: instance Enum FieldCode
- Database.PostgreSQL.LibPQ: instance Enum Format
- Database.PostgreSQL.LibPQ: instance Enum Row
- Database.PostgreSQL.LibPQ: instance Enum Verbosity
- Database.PostgreSQL.LibPQ: instance Eq Cancel
- Database.PostgreSQL.LibPQ: instance Eq Column
- Database.PostgreSQL.LibPQ: instance Eq ConnStatus
- Database.PostgreSQL.LibPQ: instance Eq Connection
- Database.PostgreSQL.LibPQ: instance Eq CopyInResult
- Database.PostgreSQL.LibPQ: instance Eq ExecStatus
- Database.PostgreSQL.LibPQ: instance Eq FieldCode
- Database.PostgreSQL.LibPQ: instance Eq FlushStatus
- Database.PostgreSQL.LibPQ: instance Eq Format
- Database.PostgreSQL.LibPQ: instance Eq LoFd
- Database.PostgreSQL.LibPQ: instance Eq Oid
- Database.PostgreSQL.LibPQ: instance Eq PollingStatus
- Database.PostgreSQL.LibPQ: instance Eq Result
- Database.PostgreSQL.LibPQ: instance Eq Row
- Database.PostgreSQL.LibPQ: instance Eq TransactionStatus
- Database.PostgreSQL.LibPQ: instance Eq Verbosity
- Database.PostgreSQL.LibPQ: instance Num Column
- Database.PostgreSQL.LibPQ: instance Num Row
- Database.PostgreSQL.LibPQ: instance Ord Column
- Database.PostgreSQL.LibPQ: instance Ord Format
- Database.PostgreSQL.LibPQ: instance Ord LoFd
- Database.PostgreSQL.LibPQ: instance Ord Oid
- Database.PostgreSQL.LibPQ: instance Ord Row
- Database.PostgreSQL.LibPQ: instance Read Oid
- Database.PostgreSQL.LibPQ: instance Show Cancel
- Database.PostgreSQL.LibPQ: instance Show Column
- Database.PostgreSQL.LibPQ: instance Show ConnStatus
- Database.PostgreSQL.LibPQ: instance Show CopyInResult
- Database.PostgreSQL.LibPQ: instance Show CopyOutResult
- Database.PostgreSQL.LibPQ: instance Show ExecStatus
- Database.PostgreSQL.LibPQ: instance Show FieldCode
- Database.PostgreSQL.LibPQ: instance Show FlushStatus
- Database.PostgreSQL.LibPQ: instance Show Format
- Database.PostgreSQL.LibPQ: instance Show LoFd
- Database.PostgreSQL.LibPQ: instance Show Notify
- Database.PostgreSQL.LibPQ: instance Show Oid
- Database.PostgreSQL.LibPQ: instance Show PollingStatus
- Database.PostgreSQL.LibPQ: instance Show Result
- Database.PostgreSQL.LibPQ: instance Show Row
- Database.PostgreSQL.LibPQ: instance Show TransactionStatus
- Database.PostgreSQL.LibPQ: instance Show Verbosity
- Database.PostgreSQL.LibPQ: instance Storable Notify
- Database.PostgreSQL.LibPQ: instance Storable Oid
- Database.PostgreSQL.LibPQ: instance Typeable Oid
- Database.PostgreSQL.LibPQ: notifyBePid :: Notify -> {-# UNPACK #-} !CPid
- Database.PostgreSQL.LibPQ: notifyExtra :: Notify -> {-# UNPACK #-} !ByteString
- Database.PostgreSQL.LibPQ: notifyRelname :: Notify -> {-# UNPACK #-} !ByteString
+ Database.PostgreSQL.LibPQ: SingleTuple :: ExecStatus
+ Database.PostgreSQL.LibPQ: [notifyBePid] :: Notify -> {-# UNPACK #-} !CPid
+ Database.PostgreSQL.LibPQ: [notifyExtra] :: Notify -> {-# UNPACK #-} !ByteString
+ Database.PostgreSQL.LibPQ: [notifyRelname] :: Notify -> {-# UNPACK #-} !ByteString
+ Database.PostgreSQL.LibPQ: instance Foreign.Storable.Storable Database.PostgreSQL.LibPQ.Notify
+ Database.PostgreSQL.LibPQ: instance Foreign.Storable.Storable Database.PostgreSQL.LibPQ.Oid
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.Cancel
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.Column
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.ConnStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.CopyInResult
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.ExecStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.FieldCode
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.FlushStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.Format
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.LoFd
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.Oid
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.PollingStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.Result
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.Row
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.TransactionStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.Verbosity
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Ord Database.PostgreSQL.LibPQ.Column
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Ord Database.PostgreSQL.LibPQ.Format
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Ord Database.PostgreSQL.LibPQ.LoFd
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Ord Database.PostgreSQL.LibPQ.Oid
+ Database.PostgreSQL.LibPQ: instance GHC.Classes.Ord Database.PostgreSQL.LibPQ.Row
+ Database.PostgreSQL.LibPQ: instance GHC.Enum.Enum Database.PostgreSQL.LibPQ.Column
+ Database.PostgreSQL.LibPQ: instance GHC.Enum.Enum Database.PostgreSQL.LibPQ.ExecStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Enum.Enum Database.PostgreSQL.LibPQ.FieldCode
+ Database.PostgreSQL.LibPQ: instance GHC.Enum.Enum Database.PostgreSQL.LibPQ.Format
+ Database.PostgreSQL.LibPQ: instance GHC.Enum.Enum Database.PostgreSQL.LibPQ.Row
+ Database.PostgreSQL.LibPQ: instance GHC.Enum.Enum Database.PostgreSQL.LibPQ.Verbosity
+ Database.PostgreSQL.LibPQ: instance GHC.Num.Num Database.PostgreSQL.LibPQ.Column
+ Database.PostgreSQL.LibPQ: instance GHC.Num.Num Database.PostgreSQL.LibPQ.Row
+ Database.PostgreSQL.LibPQ: instance GHC.Read.Read Database.PostgreSQL.LibPQ.Oid
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.Cancel
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.Column
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.ConnStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.CopyInResult
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.CopyOutResult
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.ExecStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.FieldCode
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.FlushStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.Format
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.LoFd
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.Notify
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.Oid
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.PollingStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.Result
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.Row
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.TransactionStatus
+ Database.PostgreSQL.LibPQ: instance GHC.Show.Show Database.PostgreSQL.LibPQ.Verbosity
+ Database.PostgreSQL.LibPQ: setSingleRowMode :: Connection -> IO Bool
+ Database.PostgreSQL.LibPQ.Internal: Conn :: {-# UNPACK #-} !(ForeignPtr PGconn) -> {-# UNPACK #-} !(MVar NoticeBuffer) -> Connection
+ Database.PostgreSQL.LibPQ.Internal: data CNoticeBuffer
+ Database.PostgreSQL.LibPQ.Internal: data Connection
+ Database.PostgreSQL.LibPQ.Internal: data PGconn
+ Database.PostgreSQL.LibPQ.Internal: instance GHC.Classes.Eq Database.PostgreSQL.LibPQ.Internal.Connection
+ Database.PostgreSQL.LibPQ.Internal: type NoticeBuffer = Ptr CNoticeBuffer
+ Database.PostgreSQL.LibPQ.Internal: withConn :: Connection -> (Ptr PGconn -> IO b) -> IO b
- Database.PostgreSQL.LibPQ: toColumn :: Integral a => a -> Column
+ Database.PostgreSQL.LibPQ: toColumn :: (Integral a) => a -> Column
- Database.PostgreSQL.LibPQ: toRow :: Integral a => a -> Row
+ Database.PostgreSQL.LibPQ: toRow :: (Integral a) => a -> Row

Files

cbits/noticehandlers.c view
@@ -56,4 +56,5 @@     free(x);     x = nx;   }+  free(arg); }
postgresql-libpq.cabal view
@@ -1,5 +1,5 @@ Name:                postgresql-libpq-Version:             0.9.1.1+Version:             0.9.2.0 Synopsis:            low-level binding to libpq  Description:         This is a binding to libpq: the C application@@ -32,7 +32,7 @@   c-sources:           cbits/noticehandlers.c   include-dirs:        cbits   Exposed-modules:     Database.PostgreSQL.LibPQ-+                       Database.PostgreSQL.LibPQ.Internal   Build-depends:       base >= 4 && < 5                      , bytestring @@ -54,4 +54,4 @@ source-repository this   type:     git   location: http://github.com/lpsmith/postgresql-libpq-  tag:      v0.9.1.1+  tag:      v0.9.2.0
src/Database/PostgreSQL/LibPQ.hsc view
@@ -165,6 +165,7 @@     , isBusy     , setnonblocking     , isnonblocking+    , setSingleRowMode     , FlushStatus(..)     , flush @@ -244,6 +245,8 @@  import Data.Typeable +import Database.PostgreSQL.LibPQ.Internal+ #if __GLASGOW_HASKELL__ >= 700 import Control.Exception (mask_) #else@@ -261,16 +264,6 @@ -- whether a connection was successfully made before queries are sent -- via the connection object. --- | 'Connection' encapsulates a connection to the backend.-data Connection = Conn {-# UNPACK #-} !(ForeignPtr PGconn)-                       {-# UNPACK #-} !(MVar NoticeBuffer)--instance Eq Connection where-    (Conn c _) == (Conn d _) = c == d-    (Conn c _) /= (Conn d _) = c /= d--data PGconn- -- | Makes a new connection to the database server. -- -- This function opens a new database connection using the parameters@@ -972,6 +965,10 @@                 | NonfatalError -- ^ A nonfatal error (a notice or                                 -- warning) occurred.                 | FatalError    -- ^ A fatal error occurred.+                | SingleTuple   -- ^ The PGresult contains a single result tuple+                                -- from the current command. This status occurs+                                -- only when single-row mode has been selected+                                -- for the query.                   deriving (Eq, Show)  instance Enum ExecStatus where@@ -983,6 +980,7 @@     toEnum (#const PGRES_BAD_RESPONSE)   = BadResponse     toEnum (#const PGRES_NONFATAL_ERROR) = NonfatalError     toEnum (#const PGRES_FATAL_ERROR)    = FatalError+    toEnum (#const PGRES_SINGLE_TUPLE)   = SingleTuple     toEnum _ = error "Database.PQ.Enum.ExecStatus.toEnum: bad argument"      fromEnum EmptyQuery    = (#const PGRES_EMPTY_QUERY)@@ -993,6 +991,7 @@     fromEnum BadResponse   = (#const PGRES_BAD_RESPONSE)     fromEnum NonfatalError = (#const PGRES_NONFATAL_ERROR)     fromEnum FatalError    = (#const PGRES_FATAL_ERROR)+    fromEnum SingleTuple   = (#const PGRES_SINGLE_TUPLE)  -- | Returns the result status of the command. resultStatus :: Result@@ -1807,6 +1806,19 @@ isnonblocking connection = enumFromConn connection c_PQisnonblocking  +-- | Select single-row mode for the currently-executing query.+--+-- This function can only be called immediately after PQsendQuery or one of its+-- sibling functions, before any other operation on the connection such as+-- PQconsumeInput or PQgetResult. If called at the correct time, the function+-- activates single-row mode for the current query and returns 1. Otherwise the+-- mode stays unchanged and the function returns 0. In any case, the mode+-- reverts to normal after completion of the current query.+setSingleRowMode :: Connection+                 -> IO Bool+setSingleRowMode connection = enumFromConn connection c_PQsetSingleRowMode++ data FlushStatus = FlushOk                  | FlushFailed                  | FlushWriting@@ -2001,12 +2013,6 @@     enumFromConn connection $ \p ->         c_PQsetErrorVerbosity p $ fromIntegral $ fromEnum verbosity -withConn :: Connection-         -> (Ptr PGconn -> IO b)-         -> IO b-withConn (Conn !fp _) f = withForeignPtr fp f-- enumFromConn :: (Integral a, Enum b) => Connection              -> (Ptr PGconn -> IO a)              -> IO b@@ -2086,9 +2092,6 @@ --     where --       finalizer = touchForeignPtr fp -data CNoticeBuffer-type NoticeBuffer = Ptr CNoticeBuffer- type NoticeReceiver = NoticeBuffer -> Ptr PGresult -> IO ()  data PGnotice@@ -2476,6 +2479,9 @@  foreign import ccall unsafe "libpq-fe.h PQisnonblocking"     c_PQisnonblocking :: Ptr PGconn -> IO CInt++foreign import ccall unsafe "libpq-fe.h PQsetSingleRowMode"+    c_PQsetSingleRowMode :: Ptr PGconn -> IO CInt  foreign import ccall        "libpq-fe.h PQgetResult"     c_PQgetResult :: Ptr PGconn -> IO (Ptr PGresult)
+ src/Database/PostgreSQL/LibPQ/Internal.hs view
@@ -0,0 +1,39 @@+-----------------------------------------------------------------------------+-- |+-- Module      :  Database.PostgreSQL.LibPQ.Internal+-- Copyright   :  (c) 2010 Grant Monroe,+--                (c) 2011 Leon P Smith+-- License     :  BSD3+--+-- This module exports the data constructor for the database connection+-- object so that people may create their own foreign bindings to libpq+-- functions that may not exist yet in vanilla postgresql-libpq.+--+-----------------------------------------------------------------------------++{-# LANGUAGE BangPatterns, EmptyDataDecls #-}++module Database.PostgreSQL.LibPQ.Internal where++import Foreign+import Control.Concurrent.MVar ( MVar )+++-- | 'Connection' encapsulates a connection to the backend.+data Connection = Conn {-# UNPACK #-} !(ForeignPtr PGconn)+                       {-# UNPACK #-} !(MVar NoticeBuffer)++instance Eq Connection where+    (Conn c _) == (Conn d _) = c == d+    (Conn c _) /= (Conn d _) = c /= d++withConn :: Connection+         -> (Ptr PGconn -> IO b)+         -> IO b+withConn (Conn !fp _) f = withForeignPtr fp f+{-# INLINE withConn #-}++data PGconn++data CNoticeBuffer+type NoticeBuffer = Ptr CNoticeBuffer