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.
166 lines
6.0 KiB
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
|
|
|