packages feed

opaleye 0.9.1.0 → 0.9.2.0

raw patch · 4 files changed

+43/−7 lines, 4 filesdep ~aesonPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: aeson

API changes (from Hackage documentation)

+ Opaleye.Internal.MaybeFields: maybeFieldsToNullable :: MaybeFields (Field a) -> FieldNullable a
+ Opaleye.Internal.MaybeFields: nullableToMaybeFields :: FieldNullable a -> MaybeFields (Field a)
+ Opaleye.MaybeFields: maybeFieldsToNullable :: MaybeFields (Field a) -> FieldNullable a
+ Opaleye.MaybeFields: nullableToMaybeFields :: FieldNullable a -> MaybeFields (Field a)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+## 0.9.2.0++* Added `nullableToMaybeFields` and `maybeFieldsToNullable`+ ## 0.9.1.0  * Added `distinctOnExplicit` and `distinctOnByExplicit`
opaleye.cabal view
@@ -1,6 +1,6 @@ name:            opaleye copyright:       Copyright (c) 2014-2018 Purely Agile Limited; 2019-2022 Tom Ellis-version:         0.9.1.0+version:         0.9.2.0 synopsis:        An SQL-generating DSL targeting PostgreSQL description:     An SQL-generating DSL targeting PostgreSQL.  Allows                  Postgres queries to be written within Haskell in a
src/Opaleye/Internal/MaybeFields.hs view
@@ -42,7 +42,9 @@  import qualified Database.PostgreSQL.Simple.FromRow as PGSR --- | The Opaleye analogue of 'Data.Maybe.Maybe'+-- | The Opaleye analogue of 'Data.Maybe.Maybe'.  A value of type+-- @MaybeFields a@ either contains a value of type @a@, or it contains+-- nothing. data MaybeFields fields =   MaybeFields {     mfPresent :: Opaleye.Column.Column Opaleye.SqlTypes.SqlBool@@ -105,13 +107,20 @@ fromMaybeFields :: PP.Default IfPP b b => b -> MaybeFields b -> b fromMaybeFields = fromMaybeFieldsExplicit PP.def --- | The Opaleye analogue of 'Data.Maybe.maybeToList'+-- | The Opaleye analogue of 'Data.Maybe.maybeToList'. Unless you are+-- using arrow notation you'll probably find 'catMaybeFields' easier+-- to use. maybeFieldsToSelect :: SelectArr (MaybeFields a) a maybeFieldsToSelect = proc mf -> do   restrict -< mfPresent mf   returnA -< mfFields mf --- | The Opaleye analogue of 'Data.Maybe.catMaybes'+-- | The Opaleye analogue of 'Data.Maybe.catMaybes'.  Most commonly+-- you will want to use this at type+--+-- @+-- catMaybeFields :: Select (MaybeFields a) -> Select a+-- @ catMaybeFields :: SelectArr i (MaybeFields a) -> SelectArr i a catMaybeFields = (>>> maybeFieldsToSelect) @@ -172,6 +181,22 @@   a <- q -< ()   restrict -< cond a   returnA -< a++-- | Convert @NULL@ to 'nothingFields' and non-@NULL@ to a 'justFields'+nullableToMaybeFields :: Opaleye.Field.FieldNullable a -> MaybeFields (Field a)+nullableToMaybeFields x = MaybeFields+  { mfPresent = Opaleye.Internal.Operators.not (Opaleye.Field.isNull x)+  , mfFields = unsafeFromNonNull x+  }+  where unsafeFromNonNull :: Opaleye.Field.FieldNullable a -> Field a+        unsafeFromNonNull = Opaleye.Field.unsafeCoerceField++-- | Convert 'nothingFields' to @NULL@ to a 'justFields' to non-@NULL@+maybeFieldsToNullable :: MaybeFields (Field a) -> Opaleye.Field.FieldNullable a+maybeFieldsToNullable x =+  IC.unsafeIfThenElse (mfPresent x)+                      (Opaleye.Field.toNullable (mfFields x))+                      Opaleye.Field.null  fromFieldsMaybeFields :: RQ.FromFields fields haskells                       -> RQ.FromFields (MaybeFields fields) (Maybe haskells)
src/Opaleye/MaybeFields.hs view
@@ -7,17 +7,24 @@ -- 'Opaleye.Join.optionalRestrict' and 'Opaleye.Join.optional'.  module Opaleye.MaybeFields (+  -- * 'MaybeFields' type   MaybeFields,+  -- * Creating a 'MaybeFields'   nothingFields,+  nothingFieldsOfTypeOf,   justFields,+  nullableToMaybeFields,+  -- * Using a 'MaybeFields'   matchMaybe,   fromMaybeFields,   maybeFields,-  maybeFieldsToSelect,-  nothingFieldsOfTypeOf,-  catMaybeFields,+  maybeFieldsToNullable,+  -- * Creating a 'Select' which returns 'MaybeFields'   Opaleye.Join.optional,   Opaleye.MaybeFields.traverseMaybeFields,+  -- * Using a 'Select' which returns 'MaybeFields'+  catMaybeFields,+  maybeFieldsToSelect,   -- * Adaptors   Nullspec,   nullspecField,