packages feed

esqueleto 1.2.3 → 1.2.4

raw patch · 5 files changed

+75/−1 lines, 5 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Database.Esqueleto: avg_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto: ceiling_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto: floor_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto: max_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto: min_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto: random_ :: (Esqueleto query expr backend, PersistField a) => expr (Value a)
+ Database.Esqueleto: round_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto: sum_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto.Internal.Language: avg_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto.Internal.Language: ceiling_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto.Internal.Language: floor_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto.Internal.Language: max_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto.Internal.Language: min_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto.Internal.Language: random_ :: (Esqueleto query expr backend, PersistField a) => expr (Value a)
+ Database.Esqueleto.Internal.Language: round_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)
+ Database.Esqueleto.Internal.Language: sum_ :: (Esqueleto query expr backend, PersistField a, PersistField b) => expr (Value a) -> expr (Value b)

Files

esqueleto.cabal view
@@ -1,5 +1,5 @@ name:                esqueleto-version:             1.2.3+version:             1.2.4 synopsis:            Bare bones, type-safe EDSL for SQL queries on persistent backends. homepage:            https://github.com/meteficha/esqueleto license:             BSD3
src/Database/Esqueleto.hs view
@@ -43,6 +43,7 @@              , val, isNothing, just, nothing, countRows, count, not_              , (==.), (>=.), (>.), (<=.), (<.), (!=.), (&&.), (||.)              , (+.), (-.), (/.), (*.)+             , random_, sum_, round_, ceiling_, floor_, avg_, min_, max_              , like, (%), concat_, (++.)              , subList_select, subList_selectDistinct, valList              , in_, notIn, exists, notExists
src/Database/Esqueleto/Internal/Language.hs view
@@ -231,6 +231,16 @@   (/.)  :: PersistField a => expr (Value a) -> expr (Value a) -> expr (Value a)   (*.)  :: PersistField a => expr (Value a) -> expr (Value a) -> expr (Value a) ++  random_  :: PersistField a => expr (Value a)+  round_   :: (PersistField a, PersistField b) => expr (Value a) -> expr (Value b)+  ceiling_ :: (PersistField a, PersistField b) => expr (Value a) -> expr (Value b)+  floor_   :: (PersistField a, PersistField b) => expr (Value a) -> expr (Value b)+  sum_     :: (PersistField a, PersistField b) => expr (Value a) -> expr (Value b)+  min_     :: (PersistField a, PersistField b) => expr (Value a) -> expr (Value b)+  max_     :: (PersistField a, PersistField b) => expr (Value a) -> expr (Value b)+  avg_     :: (PersistField a, PersistField b) => expr (Value a) -> expr (Value b)+   -- | @LIKE@ operator.   like :: (PersistField s, IsString s) => expr (Value s) -> expr (Value s) -> expr (Value Bool)   -- | The string @'%'@.  May be useful while using 'like' and
src/Database/Esqueleto/Internal/Sql.hs view
@@ -333,6 +333,15 @@   (/.)  = unsafeSqlBinOp " / "   (*.)  = unsafeSqlBinOp " * " +  random_  = unsafeSqlValue "RANDOM()"+  sum_     = unsafeSqlFunction "SUM"+  round_   = unsafeSqlFunction "ROUND"+  ceiling_ = unsafeSqlFunction "CEILING"+  floor_   = unsafeSqlFunction "FLOOR"+  avg_     = unsafeSqlFunction "AVG"+  min_     = unsafeSqlFunction "MIN"+  max_     = unsafeSqlFunction "MAX"+   like    = unsafeSqlBinOp    " LIKE "   (%)     = unsafeSqlValue    "'%'"   concat_ = unsafeSqlFunction "CONCAT"
test/Test.hs view
@@ -265,6 +265,60 @@                  return p           liftIO $ ret `shouldBe` [ p3e ] +      it "works with sum_" $+        run $ do+          _ <- insert' p1+          _ <- insert' p2+          _ <- insert' p3+          _ <- insert' p4+          ret <- select $+                 from $ \p->+                 return $ sum_ (p ^. PersonAge)+          liftIO $ ret `shouldBe` [ Value (36 + 17 + 17 :: Int) ]++      it "works with sum_" $+        run $ do+          _ <- insert' p1+          _ <- insert' p2+          _ <- insert' p3+          _ <- insert' p4+          ret <- select $+                 from $ \p->+                 return $ avg_ (p ^. PersonAge)+          liftIO $ ret `shouldBe` [ Value ((36 + 17 + 17) / 3 :: Double) ]++      it "works with min_" $+        run $ do+          _ <- insert' p1+          _ <- insert' p2+          _ <- insert' p3+          _ <- insert' p4+          ret <- select $+                 from $ \p->+                 return $ min_ (p ^. PersonAge)+          liftIO $ ret `shouldBe` [ Value (17 :: Int) ]++      it "works with max_" $+        run $ do+          _ <- insert' p1+          _ <- insert' p2+          _ <- insert' p3+          _ <- insert' p4+          ret <- select $+                 from $ \p->+                 return $ max_ (p ^. PersonAge)+          liftIO $ ret `shouldBe` [ Value (36 :: Int) ]++      it "works with random_" $+        run $ do+          ret <- select $ return (random_ :: SqlExpr (Value Int))+          return ()++      it "works with round_" $+        run $ do+          ret <- select $ return $ round_ (val (16.2 :: Double))+          liftIO $ ret `shouldBe` [ Value (16 :: Double) ]+       it "works with isNothing" $         run $ do           _   <- insert' p1