persistent-sql-lifted 0.4.3.1 → 0.4.4.0
raw patch · 4 files changed
+33/−4 lines, 4 files
Files
- CHANGELOG.md +5/−1
- library/Database/Persist/Sql/Lifted.hs +26/−1
- package.yaml +1/−1
- persistent-sql-lifted.cabal +1/−1
CHANGELOG.md view
@@ -1,4 +1,8 @@-## [_Unreleased_](https://github.com/freckle/persistent-sql-lifted/compare/persistent-sql-lifted-v0.4.3.1...main)+## [_Unreleased_](https://github.com/freckle/persistent-sql-lifted/compare/persistent-sql-lifted-v0.4.4.0...main)++## [v0.4.4.0](https://github.com/freckle/persistent-sql-lifted/compare/persistent-sql-lifted-v0.4.3.1...persistent-sql-lifted-v0.4.4.0)++Add `selectCount` and `selectExists` ## [v0.4.3.1](https://github.com/freckle/persistent-sql-lifted/compare/persistent-sql-lifted-v0.4.3.0...persistent-sql-lifted-v0.4.3.1)
library/Database/Persist/Sql/Lifted.hs view
@@ -38,6 +38,8 @@ , selectList -- * Selecting counts/existence+ , selectCount+ , selectExists , count , exists , existsBy@@ -115,12 +117,21 @@ #if MIN_VERSION_base(4,17,0) import Data.Type.Equality (type (~)) #endif-import Data.Functor ((<$>))+import Prelude (Integral)++import Control.Applicative (pure)+import Data.Bool (Bool (..))+import Data.Function (($))+import Data.Functor (($>), (<$>))+import Data.Maybe (maybe)+import Database.Esqueleto.Experimental (PersistField, Value (..), countRows) import Database.Persist (Key, PersistEntity (PersistEntityBackend), Update) import Database.Persist.Sql.Lifted.Core import Database.Persist.Sql.Lifted.Esqueleto+import Database.Persist.Sql.Lifted.Expression qualified as SqlExpr import Database.Persist.Sql.Lifted.Persistent hiding (delete, update) import Database.Persist.Sql.Lifted.Persistent qualified as Persistent+import Database.Persist.Sql.Lifted.Query (SqlQuery) import Database.Persist.Types (Entity (..)) import GHC.Stack (HasCallStack) @@ -151,3 +162,17 @@ -> [Update a] -> m (Entity a) updateGetEntity k us = Entity k <$> updateGet k us++-- | Get only the number of rows that a 'SqlQuery' would select+selectCount+ :: forall a m+ . (HasCallStack, Integral a, MonadSqlBackend m, PersistField a)+ => SqlQuery ()+ -> m a+selectCount q =+ maybe 0 unValue <$> selectOne (q $> countRows)++-- | Get whether a 'SqlQuery' would select anything+selectExists+ :: forall m. (HasCallStack, MonadSqlBackend m) => SqlQuery () -> m Bool+selectExists q = maybe False unValue <$> selectOne (pure $ SqlExpr.exists q)
package.yaml view
@@ -1,5 +1,5 @@ name: persistent-sql-lifted-version: 0.4.3.1+version: 0.4.4.0 maintainer: Freckle Education category: Database
persistent-sql-lifted.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: persistent-sql-lifted-version: 0.4.3.1+version: 0.4.4.0 license: MIT license-file: LICENSE maintainer: Freckle Education