Hello community,

here is the log from the commit of package ghc-esqueleto for openSUSE:Factory 
checked in at 2017-07-06 00:02:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-esqueleto (Old)
 and      /work/SRC/openSUSE:Factory/.ghc-esqueleto.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ghc-esqueleto"

Thu Jul  6 00:02:27 2017 rev:6 rq:508021 version:2.5.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-esqueleto/ghc-esqueleto.changes      
2017-06-22 10:37:22.943089390 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-esqueleto.new/ghc-esqueleto.changes 
2017-07-06 00:02:34.505267621 +0200
@@ -1,0 +2,5 @@
+Sun Jun 25 18:41:37 UTC 2017 - [email protected]
+
+- Update to version 2.5.3.
+
+-------------------------------------------------------------------

Old:
----
  esqueleto-2.5.2.tar.gz

New:
----
  esqueleto-2.5.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ghc-esqueleto.spec ++++++
--- /var/tmp/diff_new_pack.DIZtck/_old  2017-07-06 00:02:37.000916043 +0200
+++ /var/tmp/diff_new_pack.DIZtck/_new  2017-07-06 00:02:37.000916043 +0200
@@ -19,7 +19,7 @@
 %global pkg_name esqueleto
 %bcond_with tests
 Name:           ghc-%{pkg_name}
-Version:        2.5.2
+Version:        2.5.3
 Release:        0
 Summary:        Type-safe EDSL for SQL queries on persistent backends
 License:        BSD-3-Clause

++++++ esqueleto-2.5.2.tar.gz -> esqueleto-2.5.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/esqueleto-2.5.2/esqueleto.cabal 
new/esqueleto-2.5.3/esqueleto.cabal
--- old/esqueleto-2.5.2/esqueleto.cabal 2017-05-25 18:57:00.000000000 +0200
+++ new/esqueleto-2.5.3/esqueleto.cabal 2017-06-22 06:37:41.000000000 +0200
@@ -1,5 +1,5 @@
 name:                esqueleto
-version:             2.5.2
+version:             2.5.3
 synopsis:            Type-safe EDSL for SQL queries on persistent backends.
 homepage:            https://github.com/bitemyapp/esqueleto
 license:             BSD3
@@ -66,7 +66,7 @@
       base                 >= 4.8     && < 5.0
     , bytestring
     , text                 >= 0.11    && < 1.3
-    , persistent           >= 2.5 && < 2.8
+    , persistent           >= 2.5     && < 2.8
     , transformers         >= 0.2
     , unordered-containers >= 0.2
     , tagged               >= 0.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/esqueleto-2.5.2/src/Database/Esqueleto/Internal/Sql.hs 
new/esqueleto-2.5.3/src/Database/Esqueleto/Internal/Sql.hs
--- old/esqueleto-2.5.2/src/Database/Esqueleto/Internal/Sql.hs  2017-05-25 
18:52:09.000000000 +0200
+++ new/esqueleto-2.5.3/src/Database/Esqueleto/Internal/Sql.hs  2017-06-22 
06:37:15.000000000 +0200
@@ -53,10 +53,10 @@
 
 import Control.Arrow ((***), first)
 import Control.Exception (throw, throwIO)
-import Control.Monad (ap, MonadPlus(..), join, void)
+import Control.Monad (ap, MonadPlus(..), void)
 import Control.Monad.IO.Class (MonadIO(..))
 import Control.Monad.Trans.Class (lift)
-import Control.Monad.Trans.Resource (MonadResource)
+import Control.Monad.Trans.Resource (MonadResource, release)
 import Data.Acquire (with, allocateAcquire, Acquire)
 import Data.Int (Int64)
 import Data.List (intersperse)
@@ -782,9 +782,11 @@
                 , MonadResource m )
              => SqlQuery a
              -> C.Source (SqlPersistT m) r
-selectSource query = join . lift $ do
-  res <- rawSelectSource SELECT query
-  snd <$> allocateAcquire res
+selectSource query = do
+  res <- lift $ rawSelectSource SELECT query
+  (key, src) <- lift $ allocateAcquire res
+  src
+  lift $ release key
 
 -- | Execute an @esqueleto@ @SELECT@ query inside @persistent@'s
 -- 'SqlPersistT' monad and return a list of rows.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/esqueleto-2.5.2/test/Test.hs 
new/esqueleto-2.5.3/test/Test.hs
--- old/esqueleto-2.5.2/test/Test.hs    2017-05-25 18:59:50.000000000 +0200
+++ new/esqueleto-2.5.3/test/Test.hs    2017-06-22 06:37:15.000000000 +0200
@@ -44,6 +44,8 @@
 import Database.Persist.TH
 import Test.Hspec
 
+import Data.Conduit (($$), Source, (=$=))
+import qualified Data.Conduit.List as CL
 import qualified Control.Monad.Trans.Resource as R
 import qualified Data.List as L
 import qualified Data.Set as S
@@ -168,6 +170,44 @@
           ret <- select $ return nothing
           liftIO $ ret `shouldBe` [ Value (Nothing :: Maybe Int) ]
 
+    describe "selectSource" $ do
+      it "works for a simple example" $
+        run $ do
+          let query = selectSource $
+                      from $ \person ->
+                      return person
+          p1e <- insert' p1
+          ret <- query $$ CL.consume
+          liftIO $ ret `shouldBe` [ p1e ]
+
+      it "can run a query many times" $
+        run $ do
+          let query = selectSource $
+                      from $ \person ->
+                      return person
+          p1e <- insert' p1
+          ret0 <- query $$ CL.consume
+          ret1 <- query $$ CL.consume
+          liftIO $ ret0 `shouldBe` [ p1e ]
+          liftIO $ ret1 `shouldBe` [ p1e ]
+
+      it "works on repro" $ do
+        let selectPerson :: R.MonadResource m => String -> Source (SqlPersistT 
m) (Key Person)
+            selectPerson name = do
+              let source = selectSource $ from $ \person -> do
+                           where_ $ person ^. PersonName ==. val name
+                           return $ person ^. PersonId
+              source =$= CL.map unValue
+        run $ do
+          p1e <- insert' p1
+          p2e <- insert' p2
+          r1 <- selectPerson (personName p1) $$ CL.consume
+          r2 <- selectPerson (personName p2) $$ CL.consume
+          liftIO $ do
+            r1 `shouldBe` [ entityKey p1e ]
+            r2 `shouldBe` [ entityKey p2e ]
+
+
     describe "select/from" $ do
       it "works for a simple example" $
         run $ do


Reply via email to