123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- From 675018c54227ce5db4a91a153092d5f4d06f9af0 Mon Sep 17 00:00:00 2001
- From: Paul Rouse <pgr@doynton.org>
- Date: Thu, 9 Jun 2016 20:25:34 +0100
- Subject: [PATCH 1/3] Changes for persistent-2.5
- ---
- esqueleto.cabal | 2 +-
- src/Database/Esqueleto.hs | 8 ++++----
- src/Database/Esqueleto/Internal/Language.hs | 15 +++++----------
- src/Database/Esqueleto/Internal/PersistentImport.hs | 12 +++++++++++-
- test/Test.hs | 8 ++++----
- 5 files changed, 25 insertions(+), 20 deletions(-)
- diff --git a/esqueleto.cabal b/esqueleto.cabal
- index 65aa237..1768d2d 100644
- --- a/esqueleto.cabal
- +++ b/esqueleto.cabal
- @@ -66,7 +66,7 @@ library
- base >= 4.5 && < 4.9
- , bytestring
- , text >= 0.11 && < 1.3
- - , persistent >= 2.1.1.7 && < 2.3
- + , persistent >= 2.1.1.7
- , transformers >= 0.2
- , unordered-containers >= 0.2
- , tagged >= 0.2
- diff --git a/src/Database/Esqueleto.hs b/src/Database/Esqueleto.hs
- index eb135c2..97e3211 100644
- --- a/src/Database/Esqueleto.hs
- +++ b/src/Database/Esqueleto.hs
- @@ -430,8 +430,8 @@ valJ = val . unValue
-
- -- | Synonym for 'Database.Persist.Store.delete' that does not
- -- clash with @esqueleto@'s 'delete'.
- -deleteKey :: ( PersistStore (PersistEntityBackend val)
- - , MonadIO m
- - , PersistEntity val )
- - => Key val -> ReaderT (PersistEntityBackend val) m ()
- +deleteKey :: ( PersistStore backend
- + , PersistRecordBackend val backend
- + , MonadIO m )
- + => Key val -> ReaderT backend m ()
- deleteKey = Database.Persist.delete
- diff --git a/src/Database/Esqueleto/Internal/Language.hs b/src/Database/Esqueleto/Internal/Language.hs
- index fbe88e2..ab18999 100644
- --- a/src/Database/Esqueleto/Internal/Language.hs
- +++ b/src/Database/Esqueleto/Internal/Language.hs
- @@ -74,13 +74,11 @@ class (Functor query, Applicative query, Monad query) =>
- -- In the end, 'fromFinish' is called to materialize the
- -- @JOIN@.
- fromStart
- - :: ( PersistEntity a
- - , PersistEntityBackend a ~ backend )
- + :: PersistRecordBackend a backend
- => query (expr (PreprocessedFrom (expr (Entity a))))
- -- | (Internal) Same as 'fromStart', but entity may be missing.
- fromStartMaybe
- - :: ( PersistEntity a
- - , PersistEntityBackend a ~ backend )
- + :: PersistRecordBackend a backend
- => query (expr (PreprocessedFrom (expr (Maybe (Entity a)))))
- -- | (Internal) Do a @JOIN@.
- fromJoin
- @@ -926,8 +924,7 @@ class ToBaseId ent where
- -- @
- -- person
- -- :: ( Esqueleto query expr backend
- --- , PersistEntity Person
- --- , PersistEntityBackend Person ~ backend
- +-- , PersistRecordBackend Person backend
- -- ) => expr (Entity Person)
- -- (person, blogPost)
- -- :: (...) => (expr (Entity Person), expr (Entity BlogPost))
- @@ -1054,14 +1051,12 @@ class Esqueleto query expr backend => FromPreprocess query expr backend a where
- fromPreprocess :: query (expr (PreprocessedFrom a))
-
- instance ( Esqueleto query expr backend
- - , PersistEntity val
- - , PersistEntityBackend val ~ backend
- + , PersistRecordBackend val backend
- ) => FromPreprocess query expr backend (expr (Entity val)) where
- fromPreprocess = fromStart
-
- instance ( Esqueleto query expr backend
- - , PersistEntity val
- - , PersistEntityBackend val ~ backend
- + , PersistRecordBackend val backend
- ) => FromPreprocess query expr backend (expr (Maybe (Entity val))) where
- fromPreprocess = fromStartMaybe
-
- diff --git a/src/Database/Esqueleto/Internal/PersistentImport.hs b/src/Database/Esqueleto/Internal/PersistentImport.hs
- index ad193e0..02fbd20 100644
- --- a/src/Database/Esqueleto/Internal/PersistentImport.hs
- +++ b/src/Database/Esqueleto/Internal/PersistentImport.hs
- @@ -1,7 +1,13 @@
- +{-# LANGUAGE CPP #-}
- +{-# LANGUAGE ConstraintKinds #-}
- +{-# LANGUAGE TypeFamilies #-}
- -- | Re-export "Database.Persist.Sql" without any clashes with
- -- @esqueleto@.
- module Database.Esqueleto.Internal.PersistentImport
- ( module Database.Persist.Sql
- +#if ! MIN_VERSION_persistent(2,5,0)
- + , PersistRecordBackend
- +#endif
- ) where
-
- import Database.Persist.Sql hiding
- @@ -10,4 +16,8 @@ import Database.Persist.Sql hiding
- , selectKeysList, deleteCascadeWhere, (=.), (+=.), (-=.), (*=.), (/=.)
- , (==.), (!=.), (<.), (>.), (<=.), (>=.), (<-.), (/<-.), (||.)
- , listToJSON, mapToJSON, getPersistMap, limitOffsetOrder, selectSource
- - , update )
- + , update, count )
- +
- +#if ! MIN_VERSION_persistent(2,5,0)
- +type PersistRecordBackend record backend = (PersistEntity record, PersistEntityBackend record ~ backend)
- +#endif
- diff --git a/test/Test.hs b/test/Test.hs
- index 80c6784..524bd7c 100644
- --- a/test/Test.hs
- +++ b/test/Test.hs
- @@ -1396,10 +1396,10 @@ main = do
-
-
- insert' :: ( Functor m
- - , PersistStore (PersistEntityBackend val)
- - , MonadIO m
- - , PersistEntity val )
- - => val -> ReaderT (PersistEntityBackend val) m (Entity val)
- + , PersistStore backend
- + , PersistRecordBackend val backend
- + , MonadIO m )
- + => val -> ReaderT backend m (Entity val)
- insert' v = flip Entity v <$> insert v
-
-
- --
- 2.9.0
- From 4c9ecd94f2748be52c50c85ca8ed7314e21b9e82 Mon Sep 17 00:00:00 2001
- From: Paul Rouse <pgr@doynton.org>
- Date: Thu, 9 Jun 2016 20:29:45 +0100
- Subject: [PATCH 2/3] Allow base-4.9 for GHC 8
- ---
- esqueleto.cabal | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
- diff --git a/esqueleto.cabal b/esqueleto.cabal
- index 1768d2d..3b9efb9 100644
- --- a/esqueleto.cabal
- +++ b/esqueleto.cabal
- @@ -63,7 +63,7 @@ library
- other-modules:
- Database.Esqueleto.Internal.PersistentImport
- build-depends:
- - base >= 4.5 && < 4.9
- + base >= 4.5 && < 5
- , bytestring
- , text >= 0.11 && < 1.3
- , persistent >= 2.1.1.7 && < 2.6
- --
- 2.9.0
|