You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-haskell/esqueleto/files/esqueleto-2.4.3-persistent-...

166 lines
6.0 KiB

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