packages feed

cassy 0.5.2 → 0.6

raw patch · 6 files changed

+86/−80 lines, 6 filesdep +lifted-basedep +monad-controldep +transformers-basedep −MonadCatchIO-transformersdep ~retry

Dependencies added: lifted-base, monad-control, transformers-base

Dependencies removed: MonadCatchIO-transformers

Dependency ranges changed: retry

Files

cassy.cabal view
@@ -1,5 +1,5 @@ Name:                cassy-Version:             0.5.2+Version:             0.6 Synopsis:            A high level driver for the Cassandra datastore License:             BSD3 License-file:        LICENSE@@ -10,7 +10,7 @@ Build-type:          Simple description:   The objective is to completely isolate away the thrift layer, providing-  a more idiomatic Haskell experience working with Cassandra. Be sure+  a more idiomatic and naruall Haskell experience working with Cassandra. Be sure   to check out the README on Github for some more explanation and   Release Notes, which is helpful in talking about what this library   can do.@@ -91,8 +91,10 @@     , data-default     , async     , errors-    , MonadCatchIO-transformers >= 0.3-    , retry < 0.3+    , monad-control+    , transformers-base+    , lifted-base+    , retry >= 0.3     , conduit >= 0.5  @@ -121,8 +123,10 @@     , resource-pool     , data-default     , errors-    , MonadCatchIO-transformers >= 0.3-    , retry < 0.3+    , monad-control+    , transformers-base+    , lifted-base+    , retry >= 0.3      , test-framework >= 0.6     , test-framework-quickcheck2 >= 0.2.12.2
src/Database/Cassandra/Basic.hs view
@@ -1,6 +1,7 @@ {-# LANGUAGE FlexibleContexts           #-} {-# LANGUAGE FlexibleInstances          #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE MultiParamTypeClasses      #-} {-# LANGUAGE NamedFieldPuns             #-} {-# LANGUAGE NoMonomorphismRestriction  #-} {-# LANGUAGE OverloadedStrings          #-}@@ -85,27 +86,19 @@     , CKey (..)     , fromColKey' -    -- * Working with column types-    , CasType (..)-    , TAscii (..)-    , TBytes (..)-    , TCounter (..)-    , TInt (..)-    , TInt32 (..)-    , TUtf8 (..)-    , TUUID (..)-    , TLong (..)-    , Exclusive (..)+    -- * Cassandra Column Key Types+    , module Database.Cassandra.Pack+     ) where   ------------------------------------------------------------------------------- import           Control.Applicative import           Control.Concurrent.Async-import           Control.Exception+import           Control.Exception.Lifted                   as E import           Control.Monad-import qualified Control.Monad.CatchIO                      as MCIO import           Control.Monad.Reader+import           Control.Monad.Trans.Control import           Control.Retry                              as R import           Data.ByteString.Lazy                       (ByteString) import           Data.Map                                   (Map)@@ -395,7 +388,7 @@ -- -- 'UnavailableException', 'TimedOutException' and -- 'SchemaDisagreementException' will be automatically retried.-retryCas :: MCIO.MonadCatchIO m+retryCas :: (MonadBaseControl IO m, MonadIO m)          => R.RetrySettings          -- ^ For default settings, just use 'def'          -> m a
src/Database/Cassandra/JSON.hs view
@@ -6,20 +6,19 @@ {-# LANGUAGE RecordWildCards           #-} {-# LANGUAGE ScopedTypeVariables       #-} {-# LANGUAGE TypeSynonymInstances      #-}--{-|-    A higher level module for working with Cassandra.---    All row and column keys are standardized to be of strict types.-    Row keys are Text, while Column keys are ByteString. This might change-    in the future and we may revert to entirely ByteString keys.---    Serialization and de-serialization of Column values are taken care of-    automatically using the ToJSON and FromJSON typeclasses.---}+-----------------------------------------------------------------------------+-- |+-- Module      :  Database.Cassandra.JSON+-- Copyright   :  Ozgun Ataman+-- License     :  BSD3+--+-- Maintainer  :  Ozgun Ataman+-- Stability   :  experimental+--+-- This module has been deprecated and will be removed in version 0.7.+-- Every bit of functionality here is also available in the+-- Database.Cassandra.Marshall module, which is what you should use instead.+----------------------------------------------------------------------------  module Database.Cassandra.JSON     (@@ -71,17 +70,9 @@     , CKey (..)     , fromColKey' -    -- * Working with column types-    , CasType (..)-    , TAscii (..)-    , TBytes (..)-    , TCounter (..)-    , TInt (..)-    , TInt32 (..)-    , TUtf8 (..)-    , TUUID (..)-    , TLong (..)-    , Exclusive (..)+    -- * Cassandra Column Key Types+    , module Database.Cassandra.Pack+     ) where  -------------------------------------------------------------------------------@@ -101,6 +92,7 @@ import           Database.Cassandra.Basic   hiding (KeySelector (..), delete,                                              get, getCol, getMulti) import qualified Database.Cassandra.Basic   as CB+import           Database.Cassandra.Pack -------------------------------------------------------------------------------  
src/Database/Cassandra/Marshall.hs view
@@ -107,29 +107,30 @@  ------------------------------------------------------------------------------- import           Control.Error+import           Control.Exception.Lifted    as E import           Control.Monad-import           Control.Monad.CatchIO import           Control.Monad.Trans-import           Control.Retry              as R-import qualified Data.Aeson                 as A-import qualified Data.Attoparsec            as Atto (IResult (..), parse)-import qualified Data.Binary                as BN-import qualified Data.Binary.Get            as BN-import qualified Data.ByteString.Char8      as B-import           Data.ByteString.Lazy.Char8 (ByteString)-import qualified Data.ByteString.Lazy.Char8 as LB+import           Control.Monad.Trans.Control+import           Control.Retry               as R+import qualified Data.Aeson                  as A+import qualified Data.Attoparsec             as Atto (IResult (..), parse)+import qualified Data.Binary                 as BN+import qualified Data.Binary.Get             as BN+import qualified Data.ByteString.Char8       as B+import           Data.ByteString.Lazy.Char8  (ByteString)+import qualified Data.ByteString.Lazy.Char8  as LB import           Data.Conduit-import qualified Data.Conduit.List          as C-import           Data.Int                   (Int32)-import           Data.Map                   (Map)-import qualified Data.Map                   as M-import qualified Data.SafeCopy              as SC-import qualified Data.Serialize             as SL-import           Prelude                    hiding (catch)+import qualified Data.Conduit.List           as C+import           Data.Int                    (Int32)+import           Data.Map                    (Map)+import qualified Data.Map                    as M+import qualified Data.SafeCopy               as SC+import qualified Data.Serialize              as SL+import           Prelude                     hiding (catch) --------------------------------------------------------------------------------import           Database.Cassandra.Basic   hiding (KeySelector (..), delete,-                                             get, getCol, getMulti)-import qualified Database.Cassandra.Basic   as CB+import           Database.Cassandra.Basic    hiding (KeySelector (..), delete,+                                              get, getCol, getMulti)+import qualified Database.Cassandra.Basic    as CB import           Database.Cassandra.Pack import           Database.Cassandra.Types -------------------------------------------------------------------------------@@ -421,7 +422,7 @@ -- given 'Selector'. The 'Selector' must be a 'Range' selector, or -- else this funtion will raise an exception. paginate-  :: (MonadCassandra m, MonadCatchIO m, CasType k)+  :: (MonadCassandra m, MonadBaseControl IO m, CasType k)   => Marshall a   -- ^ Serialization strategy   -> ColumnFamily@@ -448,7 +449,7 @@  ------------------------------------------------------------------------------- -- | Convenience layer: Convert a pagination scheme to a conduit 'Source'.-pageToSource :: (MonadCatchIO m, Monad m) => PageResult m a -> Source m a+pageToSource :: (MonadBaseControl IO m, Monad m) => PageResult m a -> Source m a pageToSource (PDone as) = C.sourceList as pageToSource (PMore as m) = C.sourceList as >> lift m >>= pageToSource @@ -456,7 +457,7 @@ ------------------------------------------------------------------------------- -- | Just like 'paginate', but we instead return a conduit 'Source'. paginateSource-    :: (CasType k, MonadCatchIO m, MonadCassandra m)+    :: (CasType k, MonadBaseControl IO m, MonadCassandra m)     => Marshall a     -> ColumnFamily     -> RowKey
src/Database/Cassandra/Pack.hs view
@@ -10,8 +10,8 @@     , TAscii (..)     , TBytes (..)     , TCounter (..)-    , TInt (..)     , TInt32 (..)+    , TInt64 (..)     , TUtf8 (..)     , TUUID (..)     , TLong (..)@@ -42,6 +42,7 @@ import           Data.Time import           Data.Time import           Data.Time.Clock.POSIX+import           GHC.Int -------------------------------------------------------------------------------  @@ -51,9 +52,11 @@ newtype TBytes = TBytes { getTBytes :: ByteString } deriving (Eq,Show,Read,Ord) newtype TCounter = TCounter { getCounter :: ByteString } deriving (Eq,Show,Read,Ord) newtype TInt32 = TInt32 { getInt32 :: Int32 } deriving (Eq,Show,Read,Ord)-newtype TInt = TInt { getInt :: Integer } deriving (Eq,Show,Read,Ord,Enum,Real,Integral,Num)+newtype TInt64 = TInt64 { getInt64 :: Int64 }+    deriving (Eq,Show,Read,Ord,Enum,Real,Integral,Num) newtype TUUID = TUUID { getUUID :: ByteString } deriving (Eq,Show,Read,Ord)-newtype TLong = TLong { getLong :: Integer } deriving (Eq,Show,Read,Ord,Enum,Real,Integral,Num)+newtype TLong = TLong { getLong :: Integer }+    deriving (Eq,Show,Read,Ord,Enum,Real,Integral,Num) newtype TUtf8 = TUtf8 { getUtf8 :: Text } deriving (Eq,Show,Read,Ord)  @@ -156,15 +159,28 @@  ------------------------------------------------------------------------------- -- | Pack as an 8 byte number - same as 'TLong'-instance CasType TInt where-    encodeCas = runPut . putWord64be . fromIntegral . getInt-    decodeCas = TInt . fromIntegral . runGet getWord64be+instance CasType TInt64 where+    encodeCas = runPut . putWord64be . fromIntegral . getInt64+    decodeCas = TInt64 . fromIntegral . runGet getWord64be   -------------------------------------------------------------------------------+instance CasType Int32 where+    encodeCas = encodeCas . TInt32 . fromIntegral+    decodeCas = fromIntegral . getInt32 . decodeCas+++-------------------------------------------------------------------------------+instance CasType Int64 where+    encodeCas = encodeCas . TInt64 . fromIntegral+    decodeCas = fromIntegral . getInt64 . decodeCas+++-------------------------------------------------------------------------------+-- | Assumed to be a 64-bit Int and encoded as such. instance CasType Int where-    encodeCas = encodeCas . TInt . fromIntegral-    decodeCas = fromIntegral . getInt . decodeCas+    encodeCas = encodeCas . TInt64 . fromIntegral+    decodeCas = fromIntegral . getInt64 . decodeCas   -------------------------------------------------------------------------------
src/Database/Cassandra/Types.hs view
@@ -12,8 +12,8 @@  ------------------------------------------------------------------------------- import           Control.Exception+import           Control.Exception.Lifted                  as E import           Control.Monad-import qualified Control.Monad.CatchIO                     as MCIO import qualified Data.ByteString.Char8                     as B import           Data.ByteString.Lazy                      (ByteString) import qualified Data.ByteString.Lazy.Char8                as LB@@ -247,8 +247,8 @@ -- | Exception handler that returns @True@ for errors that may be -- resolved after a retry. So they are good candidates for 'retrying' -- queries.-casRetryH :: Monad m => MCIO.Handler m Bool-casRetryH = MCIO.Handler $ \ e -> return $+casRetryH :: Monad m => E.Handler m Bool+casRetryH = E.Handler $ \ e -> return $     case e of       UnavailableException{} -> True       TimedOutException{} -> True@@ -257,8 +257,8 @@   -- | 'IOException's should be retried-networkRetryH :: Monad m => MCIO.Handler m Bool-networkRetryH = MCIO.Handler $ \ (_ :: IOException) -> return True+networkRetryH :: Monad m => E.Handler m Bool+networkRetryH = E.Handler $ \ (_ :: IOException) -> return True   ------------------------------------------------------------------------------