Don't cast in tableFields

This commit is contained in:
Shane O'Brien 2021-04-01 17:40:32 +01:00
parent 5e1c9652da
commit 61ac6c73bf
No known key found for this signature in database
GPG Key ID: 35A00ED1B695C1A1

View File

@ -35,8 +35,7 @@ import Data.Profunctor ( dimap, lmap )
import Rel8.Aggregate ( Aggregate( Aggregate ) )
import Rel8.Expr ( Expr, Col(..) )
import Rel8.Expr.Opaleye
( scastExpr
, fromPrimExpr, toPrimExpr
( fromPrimExpr, toPrimExpr
, traversePrimExpr
, fromColumn, toColumn
)
@ -94,14 +93,14 @@ tableFields (toColumns -> names) = dimap toColumns fromColumns $
name -> lmap (`hfield` field) (go specs name)
where
go :: SSpec spec -> Col Name spec -> Opaleye.TableFields (Col Insert spec) (Col Expr spec)
go SSpec {necessity, info} (NameCol name) = case necessity of
go SSpec {necessity} (NameCol name) = case necessity of
SRequired ->
lmap (\(RequiredInsert a) -> toColumn $ toPrimExpr a) $
DB . scastExpr info . fromPrimExpr . fromColumn <$>
DB . fromPrimExpr . fromColumn <$>
Opaleye.requiredTableField name
SOptional ->
lmap (\(OptionalInsert ma) -> toColumn . toPrimExpr <$> ma) $
DB . scastExpr info . fromPrimExpr . fromColumn <$>
DB . fromPrimExpr . fromColumn <$>
Opaleye.optionalTableField name