Safe Haskell | None |
---|---|
Language | Haskell2010 |
Module which provides utilities for processing updates using Opaleye and Composite
Synopsis
- class RecordToUpdate (rs :: [*]) (ss :: [*])
- recordToUpdate :: RecordToUpdate rs ss => Record rs -> Record ss
Documentation
class RecordToUpdate (rs :: [*]) (ss :: [*]) Source #
Typeclass which allows transformation of a record from its select form to neutral update form, which boils down to wrapping fields that have defaults
with Just
.
Instances
RecordToUpdate ([] :: [Type]) ([] :: [Type]) Source # | For an empty record, just act as |
Defined in Composite.Opaleye.Update recordToUpdate :: Record [] -> Record [] Source # | |
RecordToUpdate rs ss => RecordToUpdate (r ': rs) (r ': ss) Source # | For a field whose type doesn't change between selection and update, just pass the field unchanged and then recurse. |
Defined in Composite.Opaleye.Update recordToUpdate :: Record (r ': rs) -> Record (r ': ss) Source # | |
RecordToUpdate rs ss => RecordToUpdate ((s :-> a) ': rs) ((s :-> Maybe a) ': ss) Source # | For a field whose type at selection is |
Defined in Composite.Opaleye.Update |
recordToUpdate :: RecordToUpdate rs ss => Record rs -> Record ss Source #
Transform a
obtained from the database to a Record
rs
representing an updated version of the row.Record
ss
Opaleye's runUpdate
family of functions all take an update function of the type columnsR -> columnsW
, which this function implements generically
for a no-op update.
Typically this function is composed with one or more lens set
s which update the fields after the transformation.