on dev help sign in
maybe arrays
commitebe887dea82629e48fa9c6f560b5094989e8a489 authorEitan Chatav <eitan.chatav@gmail.com> dateFri 31 Aug 2018, 17:28 (8 years ago) parent77305f5
1 file changed+10−10
squeal-postgresql/src/Squeal/PostgreSQL/Binary.hs+10−10
squeal-postgresql/src/Squeal/PostgreSQL/Binary.hs+10−10
@@ -398,9 +398,9 @@ instance {-# OVERLAPPING #-} ToArray x array
398398 (unK . toArray @x @array)
399399 baseOid = baseOid @x @array
400400instance {-# OVERLAPPING #-} ToArray x array
401− => ToArray (Vector x) ('Null ('PGvararray array)) where
402− toArray = K . Encoding.dimensionArray Vector.foldl'
403− (unK . toArray @x @array)
401+ => ToArray (Maybe (Vector x)) ('Null ('PGvararray array)) where
402+ toArray = K . maybe Encoding.nullArray
403+ (Encoding.dimensionArray Vector.foldl' (unK . toArray @x @array))
404404 baseOid = baseOid @x @array
405405instance {-# OVERLAPPING #-}
406406 ( IsProductType product xs
@@ -416,9 +416,9 @@ instance {-# OVERLAPPING #-}
416416 , Length xs ~ n
417417 , All ((~) x) xs
418418 , ToArray x array )
419− => ToArray product ('Null ('PGfixarray n array)) where
420− toArray = K . Encoding.dimensionArray foldlN
421− (unK . toArray @x @array) . unZ . unSOP . from
419+ => ToArray (Maybe product) ('Null ('PGfixarray n array)) where
420+ toArray = K . maybe Encoding.nullArray
421+ (Encoding.dimensionArray foldlN (unK . toArray @x @array) . unZ . unSOP . from)
422422 baseOid = baseOid @x @array
423423
424424-- | A `ToParams` constraint generically sequences the encodings of `Type`s
@@ -573,8 +573,8 @@ instance {-# OVERLAPPING #-} FromArray array y
573573 fromArray =
574574 Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
575575instance {-# OVERLAPPING #-} FromArray array y
576− => FromArray ('Null ('PGvararray array)) (Vector y) where
577− fromArray =
576+ => FromArray ('Null ('PGvararray array)) (Maybe (Vector y)) where
577+ fromArray = Just <$>
578578 Decoding.dimensionArray Vector.replicateM (fromArray @array @y)
579579instance {-# OVERLAPPING #-}
580580 ( FromArray array y
@@ -592,12 +592,12 @@ instance {-# OVERLAPPING #-}
592592 , All ((~) y) ys
593593 , SListI ys
594594 , IsProductType product ys )
595− => FromArray ('Null ('PGfixarray n array)) product where
595+ => FromArray ('Null ('PGfixarray n array)) (Maybe product) where
596596 fromArray =
597597 let
598598 rep _ = fmap (to . SOP . Z) . replicateMN
599599 in
600− Decoding.dimensionArray rep (fromArray @array @y)
600+ Just <$> Decoding.dimensionArray rep (fromArray @array @y)
601601
602602-- | A `FromRow` constraint generically sequences the parsings of the columns
603603-- of a `RowType` into the fields of a record `Type` provided they have