packages feed

beam-core 0.9.1.0 → 0.9.2.0

raw patch · 5 files changed

+58/−17 lines, 5 filesdep ~bytestringdep ~dlistdep ~ghc-primPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: bytestring, dlist, ghc-prim, hashable, time, vector-sized

API changes (from Hackage documentation)

+ Database.Beam.Query: like_' :: (BeamSqlBackendIsString be left, BeamSqlBackendIsString be right, BeamSqlBackend be) => QGenExpr ctxt be s left -> QGenExpr ctxt be s right -> QGenExpr ctxt be s Bool
+ Database.Beam.Query: similarTo_' :: (BeamSqlBackendIsString be left, BeamSqlBackendIsString be right, BeamSql99ExpressionBackend be) => QGenExpr ctxt be s left -> QGenExpr ctxt be s right -> QGenExpr ctxt be s left

Files

ChangeLog.md view
@@ -1,3 +1,10 @@+# 0.9.2.0++## Added features++ * Heterogeneous variants of `like_` and `similarTo_`: `like_'` and `similarTo_'`+ * GHC 9.2 and 9.0 support+ # 0.9.1.0  ## Added features
Database/Beam/Backend/SQL/Row.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE PolyKinds #-}  module Database.Beam.Backend.SQL.Row@@ -57,7 +58,11 @@   ParseOneField :: (BackendFromField be a, Typeable a) => (a -> f) -> FromBackendRowF be f   Alt :: FromBackendRowM be a -> FromBackendRowM be a -> (a -> f) -> FromBackendRowF be f   FailParseWith :: BeamRowReadError -> FromBackendRowF be f-deriving instance Functor (FromBackendRowF be)+instance Functor (FromBackendRowF be) where+  fmap f = \case+    ParseOneField p -> ParseOneField $ f . p+    Alt a b p -> Alt a b $ f . p+    FailParseWith e -> FailParseWith e newtype FromBackendRowM be a = FromBackendRowM (F (FromBackendRowF be) a)   deriving (Functor, Applicative) @@ -192,7 +197,9 @@                       pure ()))   valuesNeeded be _ = valuesNeeded be (Proxy @x) +#if !MIN_VERSION_base(4, 16, 0) deriving instance Generic (a, b, c, d, e, f, g, h)+#endif  instance (BeamBackend be, FromBackendRow be t) => FromBackendRow be (Tagged tag t) where   fromBackendRow = Tagged <$> fromBackendRow
Database/Beam/Query/Operator.hs view
@@ -6,6 +6,7 @@   , (&&?.), (||?.), sqlNot_    , like_, similarTo_+  , like_', similarTo_'    , concat_   ) where@@ -59,17 +60,43 @@ infixr 2 ||., ||?.  -- | SQL @LIKE@ operator-like_ :: ( BeamSqlBackendIsString be text-         , BeamSqlBackend be )-      => QGenExpr ctxt be s text -> QGenExpr ctxt be s text -> QGenExpr ctxt be s Bool-like_ (QExpr scrutinee) (QExpr search) =+like_+  :: (BeamSqlBackendIsString be text, BeamSqlBackend be)+  => QGenExpr ctxt be s text+  -> QGenExpr ctxt be s text+  -> QGenExpr ctxt be s Bool+like_ = like_'++-- | SQL @LIKE@ operator but heterogeneous over the text type+like_'+  :: ( BeamSqlBackendIsString be left+     , BeamSqlBackendIsString be right+     , BeamSqlBackend be+     )+  => QGenExpr ctxt be s left+  -> QGenExpr ctxt be s right+  -> QGenExpr ctxt be s Bool+like_' (QExpr scrutinee) (QExpr search) =   QExpr (liftA2 likeE scrutinee search)  -- | SQL99 @SIMILAR TO@ operator-similarTo_ :: ( BeamSqlBackendIsString be text-              , BeamSql99ExpressionBackend be )-           => QGenExpr ctxt be s text -> QGenExpr ctxt be s text -> QGenExpr ctxt be s text-similarTo_ (QExpr scrutinee) (QExpr search) =+similarTo_+  :: (BeamSqlBackendIsString be text, BeamSql99ExpressionBackend be)+  => QGenExpr ctxt be s text+  -> QGenExpr ctxt be s text+  -> QGenExpr ctxt be s text+similarTo_ = similarTo_'++-- | SQL99 @SIMILAR TO@ operator but heterogeneous over the text type+similarTo_'+  :: ( BeamSqlBackendIsString be left+     , BeamSqlBackendIsString be right+     , BeamSql99ExpressionBackend be+     )+  => QGenExpr ctxt be s left+  -> QGenExpr ctxt be s right+  -> QGenExpr ctxt be s left+similarTo_' (QExpr scrutinee) (QExpr search) =   QExpr (liftA2 similarToE scrutinee search)  infix 4 `like_`, `similarTo_`
beam-core.cabal view
@@ -2,7 +2,7 @@ -- see http://haskell.org/cabal/users-guide/  name:                beam-core-version:             0.9.1.0+version:             0.9.2.0 synopsis:            Type-safe, feature-complete SQL query and manipulation interface for Haskell description:         Beam is a Haskell library for type-safe querying and manipulation of SQL databases.                      Beam is modular and supports various backends. In order to use beam, you will need to use@@ -63,19 +63,19 @@   build-depends:       base         >=4.9     && <5.0,                        aeson        >=0.11    && <1.6,                        text         >=1.2.2.0 && <1.3,-                       bytestring   >=0.10    && <0.11,+                       bytestring   >=0.10    && <0.12,                        mtl          >=2.2.1   && <2.3,                        microlens    >=0.4     && <0.5,-                       ghc-prim     >=0.5     && <0.7,+                       ghc-prim     >=0.5     && <0.9,                        free         >=4.12    && <5.2,-                       dlist        >=0.7.1.2 && <0.9,-                       time         >=1.6     && <1.10,-                       hashable     >=1.2.4.0 && <1.4,+                       dlist        >=0.7.1.2 && <1.1,+                       time         >=1.6     && <1.12,+                       hashable     >=1.2.4.0 && <1.5,                        network-uri  >=2.6     && <2.7,                        containers   >=0.5     && <0.7,                        scientific   >=0.3     && <0.4,                        vector       >=0.11    && <0.13,-                       vector-sized >=0.5     && <1.5,+                       vector-sized >=0.5     && <1.6,                        tagged       >=0.8     && <0.9    Default-language:    Haskell2010
test/Database/Beam/Test/SQL.hs view
@@ -868,7 +868,7 @@ related :: TestTree related =   testCase "related_ generate the correct ON conditions" $-  do SqlSelect Select { .. } <-+  do SqlSelect Select{} <-        pure $ selectMock $        do r <- all_ (_roles employeeDbSettings)           e <- related_ (_employees employeeDbSettings) (_roleForEmployee r)